Sat, 21 Jun 2008 10:03:31 -0700
Merge
1.1 --- a/src/share/tools/MakeDeps/Database.java Fri Jun 20 13:59:55 2008 -0700 1.2 +++ b/src/share/tools/MakeDeps/Database.java Sat Jun 21 10:03:31 2008 -0700 1.3 @@ -36,6 +36,7 @@ 1.4 private FileList outerFiles; 1.5 private FileList indivIncludes; 1.6 private FileList grandInclude; // the results for the grand include file 1.7 + private HashMap<String,String> platformDepFiles; 1.8 private long threshold; 1.9 private int nOuterFiles; 1.10 private int nPrecompiledFiles; 1.11 @@ -57,6 +58,7 @@ 1.12 outerFiles = new FileList("outerFiles", plat); 1.13 indivIncludes = new FileList("IndivIncludes", plat); 1.14 grandInclude = new FileList(plat.getGIFileTemplate().nameOfList(), plat); 1.15 + platformDepFiles = new HashMap<String,String>(); 1.16 1.17 threshold = t; 1.18 nOuterFiles = 0; 1.19 @@ -209,6 +211,10 @@ 1.20 FileList p = allFiles.listForFile(includer); 1.21 p.setPlatformDependentInclude(pdName.dirPreStemSuff()); 1.22 1.23 + // Record the implicit include of this file so that the 1.24 + // dependencies for precompiled headers can mention it. 1.25 + platformDepFiles.put(newIncluder, includer); 1.26 + 1.27 // Add an implicit dependency on platform 1.28 // specific file for the generic file 1.29 1.30 @@ -408,6 +414,12 @@ 1.31 for (Iterator iter = grandInclude.iterator(); iter.hasNext(); ) { 1.32 FileList list = (FileList) iter.next(); 1.33 gd.println(list.getName() + " \\"); 1.34 + String platformDep = platformDepFiles.get(list.getName()); 1.35 + if (platformDep != null) { 1.36 + // make sure changes to the platform dependent file will 1.37 + // cause regeneration of the pch file. 1.38 + gd.println(platformDep + " \\"); 1.39 + } 1.40 } 1.41 gd.println(); 1.42 gd.println();
2.1 --- a/src/share/vm/adlc/formssel.cpp Fri Jun 20 13:59:55 2008 -0700 2.2 +++ b/src/share/vm/adlc/formssel.cpp Sat Jun 21 10:03:31 2008 -0700 2.3 @@ -729,6 +729,7 @@ 2.4 !strcmp(_matrule->_rChild->_opType,"DecodeN") || 2.5 !strcmp(_matrule->_rChild->_opType,"EncodeP") || 2.6 !strcmp(_matrule->_rChild->_opType,"LoadN") || 2.7 + !strcmp(_matrule->_rChild->_opType,"LoadNKlass") || 2.8 !strcmp(_matrule->_rChild->_opType,"CreateEx") || // type of exception 2.9 !strcmp(_matrule->_rChild->_opType,"CheckCastPP")) ) return true; 2.10 else if ( is_ideal_load() == Form::idealP ) return true;
3.1 --- a/src/share/vm/opto/connode.cpp Fri Jun 20 13:59:55 2008 -0700 3.2 +++ b/src/share/vm/opto/connode.cpp Sat Jun 21 10:03:31 2008 -0700 3.3 @@ -565,10 +565,12 @@ 3.4 } 3.5 3.6 const Type *DecodeNNode::Value( PhaseTransform *phase ) const { 3.7 - if (phase->type( in(1) ) == TypeNarrowOop::NULL_PTR) { 3.8 - return TypePtr::NULL_PTR; 3.9 - } 3.10 - return bottom_type(); 3.11 + const Type *t = phase->type( in(1) ); 3.12 + if (t == Type::TOP) return Type::TOP; 3.13 + if (t == TypeNarrowOop::NULL_PTR) return TypePtr::NULL_PTR; 3.14 + 3.15 + assert(t->isa_narrowoop(), "only narrowoop here"); 3.16 + return t->is_narrowoop()->make_oopptr(); 3.17 } 3.18 3.19 Node* DecodeNNode::decode(PhaseTransform* phase, Node* value) { 3.20 @@ -599,10 +601,12 @@ 3.21 } 3.22 3.23 const Type *EncodePNode::Value( PhaseTransform *phase ) const { 3.24 - if (phase->type( in(1) ) == TypePtr::NULL_PTR) { 3.25 - return TypeNarrowOop::NULL_PTR; 3.26 - } 3.27 - return bottom_type(); 3.28 + const Type *t = phase->type( in(1) ); 3.29 + if (t == Type::TOP) return Type::TOP; 3.30 + if (t == TypePtr::NULL_PTR) return TypeNarrowOop::NULL_PTR; 3.31 + 3.32 + assert(t->isa_oopptr(), "only oopptr here"); 3.33 + return t->is_oopptr()->make_narrowoop(); 3.34 } 3.35 3.36 Node* EncodePNode::encode(PhaseTransform* phase, Node* value) {
4.1 --- a/src/share/vm/opto/connode.hpp Fri Jun 20 13:59:55 2008 -0700 4.2 +++ b/src/share/vm/opto/connode.hpp Sat Jun 21 10:03:31 2008 -0700 4.3 @@ -549,10 +549,18 @@ 4.4 virtual uint hash() const ; // { return NO_HASH; } 4.5 virtual uint cmp( const Node &n ) const; 4.6 public: 4.7 - Opaque1Node( Node *n ) : Node(0,n) {} 4.8 + Opaque1Node( Compile* C, Node *n ) : Node(0,n) { 4.9 + // Put it on the Macro nodes list to removed during macro nodes expansion. 4.10 + init_flags(Flag_is_macro); 4.11 + C->add_macro_node(this); 4.12 + } 4.13 // Special version for the pre-loop to hold the original loop limit 4.14 // which is consumed by range check elimination. 4.15 - Opaque1Node( Node *n, Node* orig_limit ) : Node(0,n,orig_limit) {} 4.16 + Opaque1Node( Compile* C, Node *n, Node* orig_limit ) : Node(0,n,orig_limit) { 4.17 + // Put it on the Macro nodes list to removed during macro nodes expansion. 4.18 + init_flags(Flag_is_macro); 4.19 + C->add_macro_node(this); 4.20 + } 4.21 Node* original_loop_limit() { return req()==3 ? in(2) : NULL; } 4.22 virtual int Opcode() const; 4.23 virtual const Type *bottom_type() const { return TypeInt::INT; } 4.24 @@ -572,7 +580,11 @@ 4.25 virtual uint hash() const ; // { return NO_HASH; } 4.26 virtual uint cmp( const Node &n ) const; 4.27 public: 4.28 - Opaque2Node( Node *n ) : Node(0,n) {} 4.29 + Opaque2Node( Compile* C, Node *n ) : Node(0,n) { 4.30 + // Put it on the Macro nodes list to removed during macro nodes expansion. 4.31 + init_flags(Flag_is_macro); 4.32 + C->add_macro_node(this); 4.33 + } 4.34 virtual int Opcode() const; 4.35 virtual const Type *bottom_type() const { return TypeInt::INT; } 4.36 };
5.1 --- a/src/share/vm/opto/gcm.cpp Fri Jun 20 13:59:55 2008 -0700 5.2 +++ b/src/share/vm/opto/gcm.cpp Sat Jun 21 10:03:31 2008 -0700 5.3 @@ -307,7 +307,6 @@ 5.4 5.5 // Test and set the visited bit. 5.6 if (mid->raise_LCA_visited() == mark) continue; // already visited 5.7 - mid->set_raise_LCA_visited(mark); 5.8 5.9 // Don't process the current LCA, otherwise the search may terminate early 5.10 if (mid != LCA && mid->raise_LCA_mark() == mark) { 5.11 @@ -317,6 +316,8 @@ 5.12 assert(early->dominates(LCA), "early is high enough"); 5.13 // Resume searching at that point, skipping intermediate levels. 5.14 worklist.push(LCA); 5.15 + if (LCA == mid) 5.16 + continue; // Don't mark as visited to avoid early termination. 5.17 } else { 5.18 // Keep searching through this block's predecessors. 5.19 for (uint j = 1, jmax = mid->num_preds(); j < jmax; j++) { 5.20 @@ -324,6 +325,7 @@ 5.21 worklist.push(mid_parent); 5.22 } 5.23 } 5.24 + mid->set_raise_LCA_visited(mark); 5.25 } 5.26 return LCA; 5.27 }
6.1 --- a/src/share/vm/opto/loopTransform.cpp Fri Jun 20 13:59:55 2008 -0700 6.2 +++ b/src/share/vm/opto/loopTransform.cpp Sat Jun 21 10:03:31 2008 -0700 6.3 @@ -690,7 +690,7 @@ 6.4 // (the main-loop trip-counter exit value) because we will be changing 6.5 // the exit value (via unrolling) so we cannot constant-fold away the zero 6.6 // trip guard until all unrolling is done. 6.7 - Node *zer_opaq = new (C, 2) Opaque1Node(incr); 6.8 + Node *zer_opaq = new (C, 2) Opaque1Node(C, incr); 6.9 Node *zer_cmp = new (C, 3) CmpINode( zer_opaq, limit ); 6.10 Node *zer_bol = new (C, 2) BoolNode( zer_cmp, b_test ); 6.11 register_new_node( zer_opaq, new_main_exit ); 6.12 @@ -760,7 +760,7 @@ 6.13 // pre-loop, the main-loop may not execute at all. Later in life this 6.14 // zero-trip guard will become the minimum-trip guard when we unroll 6.15 // the main-loop. 6.16 - Node *min_opaq = new (C, 2) Opaque1Node(limit); 6.17 + Node *min_opaq = new (C, 2) Opaque1Node(C, limit); 6.18 Node *min_cmp = new (C, 3) CmpINode( pre_incr, min_opaq ); 6.19 Node *min_bol = new (C, 2) BoolNode( min_cmp, b_test ); 6.20 register_new_node( min_opaq, new_pre_exit ); 6.21 @@ -810,7 +810,7 @@ 6.22 6.23 // Save the original loop limit in this Opaque1 node for 6.24 // use by range check elimination. 6.25 - Node *pre_opaq = new (C, 3) Opaque1Node(pre_limit, limit); 6.26 + Node *pre_opaq = new (C, 3) Opaque1Node(C, pre_limit, limit); 6.27 6.28 register_new_node( pre_limit, pre_head->in(0) ); 6.29 register_new_node( pre_opaq , pre_head->in(0) );
7.1 --- a/src/share/vm/opto/loopUnswitch.cpp Fri Jun 20 13:59:55 2008 -0700 7.2 +++ b/src/share/vm/opto/loopUnswitch.cpp Sat Jun 21 10:03:31 2008 -0700 7.3 @@ -205,7 +205,7 @@ 7.4 7.5 Node *cont = _igvn.intcon(1); 7.6 set_ctrl(cont, C->root()); 7.7 - Node* opq = new (C, 2) Opaque1Node(cont); 7.8 + Node* opq = new (C, 2) Opaque1Node(C, cont); 7.9 register_node(opq, outer_loop, entry, dom_depth(entry)); 7.10 Node *bol = new (C, 2) Conv2BNode(opq); 7.11 register_node(bol, outer_loop, entry, dom_depth(entry));
8.1 --- a/src/share/vm/opto/loopopts.cpp Fri Jun 20 13:59:55 2008 -0700 8.2 +++ b/src/share/vm/opto/loopopts.cpp Sat Jun 21 10:03:31 2008 -0700 8.3 @@ -2685,7 +2685,7 @@ 8.4 if( !cle->stride_is_con() ) continue; 8.5 // Hit! Refactor use to use the post-incremented tripcounter. 8.6 // Compute a post-increment tripcounter. 8.7 - Node *opaq = new (C, 2) Opaque2Node( cle->incr() ); 8.8 + Node *opaq = new (C, 2) Opaque2Node( C, cle->incr() ); 8.9 register_new_node( opaq, u_ctrl ); 8.10 Node *neg_stride = _igvn.intcon(-cle->stride_con()); 8.11 set_ctrl(neg_stride, C->root());
9.1 --- a/src/share/vm/opto/machnode.cpp Fri Jun 20 13:59:55 2008 -0700 9.2 +++ b/src/share/vm/opto/machnode.cpp Sat Jun 21 10:03:31 2008 -0700 9.3 @@ -262,14 +262,16 @@ 9.4 // Now we have collected every part of the ADLC MEMORY_INTER. 9.5 // See if it adds up to a base + offset. 9.6 if (index != NULL) { 9.7 - if (!index->is_Con()) { 9.8 - const TypeNarrowOop* narrowoop = index->bottom_type()->isa_narrowoop(); 9.9 - if (narrowoop != NULL) { 9.10 - // Memory references through narrow oops have a 9.11 - // funny base so grab the type from the index. 9.12 - adr_type = narrowoop->make_oopptr(); 9.13 - return NULL; 9.14 - } 9.15 + const TypeNarrowOop* narrowoop = index->bottom_type()->isa_narrowoop(); 9.16 + if (narrowoop != NULL) { // EncodeN, LoadN, LoadConN, LoadNKlass. 9.17 + // Memory references through narrow oops have a 9.18 + // funny base so grab the type from the index: 9.19 + // [R12 + narrow_oop_reg<<3 + offset] 9.20 + assert(base == NULL, "Memory references through narrow oops have no base"); 9.21 + offset = disp; 9.22 + adr_type = narrowoop->make_oopptr()->add_offset(offset); 9.23 + return NULL; 9.24 + } else if (!index->is_Con()) { 9.25 disp = Type::OffsetBot; 9.26 } else if (disp != Type::OffsetBot) { 9.27 const TypeX* ti = index->bottom_type()->isa_intptr_t();
10.1 --- a/src/share/vm/opto/macro.cpp Fri Jun 20 13:59:55 2008 -0700 10.2 +++ b/src/share/vm/opto/macro.cpp Sat Jun 21 10:03:31 2008 -0700 10.3 @@ -1674,7 +1674,14 @@ 10.4 success = eliminate_locking_node(n->as_AbstractLock()); 10.5 break; 10.6 default: 10.7 - assert(false, "unknown node type in macro list"); 10.8 + if (n->Opcode() == Op_Opaque1 || n->Opcode() == Op_Opaque2) { 10.9 + _igvn.add_users_to_worklist(n); 10.10 + _igvn.hash_delete(n); 10.11 + _igvn.subsume_node(n, n->in(1)); 10.12 + success = true; 10.13 + } else { 10.14 + assert(false, "unknown node type in macro list"); 10.15 + } 10.16 } 10.17 assert(success == (C->macro_count() < old_macro_count), "elimination reduces macro count"); 10.18 progress = progress || success;
11.1 --- a/src/share/vm/opto/matcher.cpp Fri Jun 20 13:59:55 2008 -0700 11.2 +++ b/src/share/vm/opto/matcher.cpp Sat Jun 21 10:03:31 2008 -0700 11.3 @@ -82,6 +82,7 @@ 11.4 idealreg2debugmask[Op_RegF] = NULL; 11.5 idealreg2debugmask[Op_RegD] = NULL; 11.6 idealreg2debugmask[Op_RegP] = NULL; 11.7 + debug_only(_mem_node = NULL;) // Ideal memory node consumed by mach node 11.8 } 11.9 11.10 //------------------------------warp_incoming_stk_arg------------------------ 11.11 @@ -1153,7 +1154,10 @@ 11.12 11.13 // StoreNodes require their Memory input to match any LoadNodes 11.14 Node *mem = n->is_Store() ? n->in(MemNode::Memory) : (Node*)1 ; 11.15 - 11.16 +#ifdef ASSERT 11.17 + Node* save_mem_node = _mem_node; 11.18 + _mem_node = n->is_Store() ? (Node*)n : NULL; 11.19 +#endif 11.20 // State object for root node of match tree 11.21 // Allocate it on _states_arena - stack allocation can cause stack overflow. 11.22 State *s = new (&_states_arena) State; 11.23 @@ -1205,6 +1209,7 @@ 11.24 } 11.25 } 11.26 11.27 + debug_only( _mem_node = save_mem_node; ) 11.28 return m; 11.29 } 11.30 11.31 @@ -1445,8 +1450,30 @@ 11.32 } 11.33 11.34 // If a Memory was used, insert a Memory edge 11.35 - if( mem != (Node*)1 ) 11.36 + if( mem != (Node*)1 ) { 11.37 mach->ins_req(MemNode::Memory,mem); 11.38 +#ifdef ASSERT 11.39 + // Verify adr type after matching memory operation 11.40 + const MachOper* oper = mach->memory_operand(); 11.41 + if (oper != NULL && oper != (MachOper*)-1 && 11.42 + mach->adr_type() != TypeRawPtr::BOTTOM) { // non-direct addressing mode 11.43 + // It has a unique memory operand. Find corresponding ideal mem node. 11.44 + Node* m = NULL; 11.45 + if (leaf->is_Mem()) { 11.46 + m = leaf; 11.47 + } else { 11.48 + m = _mem_node; 11.49 + assert(m != NULL && m->is_Mem(), "expecting memory node"); 11.50 + } 11.51 + if (m->adr_type() != mach->adr_type()) { 11.52 + m->dump(); 11.53 + tty->print_cr("mach:"); 11.54 + mach->dump(1); 11.55 + } 11.56 + assert(m->adr_type() == mach->adr_type(), "matcher should not change adr type"); 11.57 + } 11.58 +#endif 11.59 + } 11.60 11.61 // If the _leaf is an AddP, insert the base edge 11.62 if( leaf->is_AddP() ) 11.63 @@ -1510,7 +1537,9 @@ 11.64 assert( newrule >= _LAST_MACH_OPER, "Do NOT chain from internal operand"); 11.65 mach->_opnds[1] = s->MachOperGenerator( _reduceOp[catch_op], C ); 11.66 Node *mem1 = (Node*)1; 11.67 + debug_only(Node *save_mem_node = _mem_node;) 11.68 mach->add_req( ReduceInst(s, newrule, mem1) ); 11.69 + debug_only(_mem_node = save_mem_node;) 11.70 } 11.71 return; 11.72 } 11.73 @@ -1520,6 +1549,7 @@ 11.74 if( s->_leaf->is_Load() ) { 11.75 Node *mem2 = s->_leaf->in(MemNode::Memory); 11.76 assert( mem == (Node*)1 || mem == mem2, "multiple Memories being matched at once?" ); 11.77 + debug_only( if( mem == (Node*)1 ) _mem_node = s->_leaf;) 11.78 mem = mem2; 11.79 } 11.80 if( s->_leaf->in(0) != NULL && s->_leaf->req() > 1) { 11.81 @@ -1563,7 +1593,9 @@ 11.82 // --> ReduceInst( newrule ) 11.83 mach->_opnds[num_opnds++] = s->MachOperGenerator( _reduceOp[catch_op], C ); 11.84 Node *mem1 = (Node*)1; 11.85 + debug_only(Node *save_mem_node = _mem_node;) 11.86 mach->add_req( ReduceInst( newstate, newrule, mem1 ) ); 11.87 + debug_only(_mem_node = save_mem_node;) 11.88 } 11.89 } 11.90 assert( mach->_opnds[num_opnds-1], "" ); 11.91 @@ -1594,6 +1626,7 @@ 11.92 if( s->_leaf->is_Load() ) { 11.93 assert( mem == (Node*)1, "multiple Memories being matched at once?" ); 11.94 mem = s->_leaf->in(MemNode::Memory); 11.95 + debug_only(_mem_node = s->_leaf;) 11.96 } 11.97 if( s->_leaf->in(0) && s->_leaf->req() > 1) { 11.98 if( !mach->in(0) ) 11.99 @@ -1618,7 +1651,9 @@ 11.100 // Reduce the instruction, and add a direct pointer from this 11.101 // machine instruction to the newly reduced one. 11.102 Node *mem1 = (Node*)1; 11.103 + debug_only(Node *save_mem_node = _mem_node;) 11.104 mach->add_req( ReduceInst( kid, newrule, mem1 ) ); 11.105 + debug_only(_mem_node = save_mem_node;) 11.106 } 11.107 } 11.108 }
12.1 --- a/src/share/vm/opto/matcher.hpp Fri Jun 20 13:59:55 2008 -0700 12.2 +++ b/src/share/vm/opto/matcher.hpp Sat Jun 21 10:03:31 2008 -0700 12.3 @@ -104,6 +104,8 @@ 12.4 #ifdef ASSERT 12.5 // Make sure only new nodes are reachable from this node 12.6 void verify_new_nodes_only(Node* root); 12.7 + 12.8 + Node* _mem_node; // Ideal memory node consumed by mach node 12.9 #endif 12.10 12.11 public:
13.1 --- a/src/share/vm/opto/subnode.cpp Fri Jun 20 13:59:55 2008 -0700 13.2 +++ b/src/share/vm/opto/subnode.cpp Sat Jun 21 10:03:31 2008 -0700 13.3 @@ -45,10 +45,13 @@ 13.4 return in(2)->in(2); 13.5 } 13.6 13.7 - // Convert "(X+Y) - Y" into X 13.8 + // Convert "(X+Y) - Y" into X and "(X+Y) - X" into Y 13.9 if( in(1)->Opcode() == Op_AddI ) { 13.10 if( phase->eqv(in(1)->in(2),in(2)) ) 13.11 return in(1)->in(1); 13.12 + if (phase->eqv(in(1)->in(1),in(2))) 13.13 + return in(1)->in(2); 13.14 + 13.15 // Also catch: "(X + Opaque2(Y)) - Y". In this case, 'Y' is a loop-varying 13.16 // trip counter and X is likely to be loop-invariant (that's how O2 Nodes 13.17 // are originally used, although the optimizer sometimes jiggers things).
14.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 14.2 +++ b/test/compiler/6714694/Tester.java Sat Jun 21 10:03:31 2008 -0700 14.3 @@ -0,0 +1,820 @@ 14.4 +/* 14.5 + * Copyright 2008 Sun Microsystems, Inc. All Rights Reserved. 14.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 14.7 + * 14.8 + * This code is free software; you can redistribute it and/or modify it 14.9 + * under the terms of the GNU General Public License version 2 only, as 14.10 + * published by the Free Software Foundation. 14.11 + * 14.12 + * This code is distributed in the hope that it will be useful, but WITHOUT 14.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 14.14 + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14.15 + * version 2 for more details (a copy is included in the LICENSE file that 14.16 + * accompanied this code). 14.17 + * 14.18 + * You should have received a copy of the GNU General Public License version 14.19 + * 2 along with this work; if not, write to the Free Software Foundation, 14.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 14.21 + * 14.22 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, 14.23 + * CA 95054 USA or visit www.sun.com if you need additional information or 14.24 + * have any questions. 14.25 + */ 14.26 + 14.27 +/* 14.28 + * @test 14.29 + * @bug 6714694 14.30 + * @summary assertion in 64bit server vm (store->find_edge(load) != -1,"missing precedence edge") with COOPs 14.31 + * @run main/othervm -Xcomp Tester 14.32 + */ 14.33 + 14.34 +/* Complexity upper bound: 38602 ops */ 14.35 + 14.36 +interface Tester_Interface_0 { 14.37 +} 14.38 + 14.39 + 14.40 +abstract class Tester_Class_1 implements Tester_Interface_0 { 14.41 + static int var_1 = (false ? (short)'b' : (short)-2.4256387E38F) | (byte)('g' * -7.660532860983624E307); 14.42 + float var_2; 14.43 + byte var_3; 14.44 + static boolean var_4 = true; 14.45 + double var_5 = 8.818325751338691E307; 14.46 + Object var_6; 14.47 + static short var_7; 14.48 + final static char var_8 = 'x'; 14.49 + final static float var_9 = 2.2030989E38F; 14.50 + 14.51 + 14.52 + public Tester_Class_1() 14.53 + { 14.54 + var_6 = (var_6 = (var_6 = "xkx")); 14.55 + switch (var_7 = (var_3 = (byte)var_5)) 14.56 + { 14.57 + case 113: 14.58 + 14.59 + case 114: 14.60 + Object var_12; 14.61 + var_4 = 4.9121917E37F < 1957795258; 14.62 + var_4 |= (var_4 ^= !var_4) ^ (var_4 |= var_4); 14.63 + var_3 = (var_3 = (var_3 = (byte)+6010964363045275648L)); 14.64 + break; 14.65 + 14.66 + case 102: 14.67 + 14.68 + } 14.69 + final float var_13 = 1.2443151E38F; 14.70 + var_3 = (byte)(var_1 |= (var_7 = (var_3 = (byte)var_5))); 14.71 + var_2 = (long)(var_7 = (var_3 = (byte)var_8)) - (var_7 = (byte)386742565); 14.72 + var_4 &= var_4; 14.73 + 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)); 14.74 + var_6 = "uqflj"; 14.75 + { 14.76 + switch (((new String[var_3 = (byte)var_5])[var_3 = (byte)8097442298927900672L]).charAt(1540148550)) 14.77 + { 14.78 + case 'l': 14.79 + 14.80 + } 14.81 + var_2 = (var_7 = (byte)2.9859440663042714E307); 14.82 + { 14.83 + Object var_14; 14.84 + } 14.85 + var_3 = (var_3 = (var_3 = (byte)3.3634427195550136E307)); 14.86 + var_5 += '_'; 14.87 + } 14.88 + var_6 = "tempfdjen"; 14.89 + 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)); 14.90 + var_4 ^= false; 14.91 + if (1.6435436003809043E307 != var_9) 14.92 + { 14.93 + boolean var_15 = true; 14.94 + } 14.95 + else 14.96 + { 14.97 + var_4 = false; 14.98 + } 14.99 + { 14.100 + 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]; 14.101 + } 14.102 + var_7 = (var_4 = var_4) ? (short)2.756967E37F : (short)'K'; 14.103 + byte var_17; 14.104 + } 14.105 + 14.106 + 14.107 + 14.108 + abstract public Tester_Interface_0 func_0(double[][] arg_0, final Object arg_1); 14.109 + 14.110 + 14.111 + final double func_0(final float arg_0, final short arg_1, final boolean arg_2) 14.112 + { 14.113 + var_6 = (var_6 = "lmshbl"); 14.114 + 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))]); 14.115 + var_5 %= (var_3 = (byte)1909375874); 14.116 + var_1 /= (char)(short)'i'; 14.117 + { 14.118 + "vgar".length(); 14.119 + } 14.120 + int var_10; 14.121 + { 14.122 + var_3 = (var_4 &= true) ? (byte)(var_5 *= 6375499657746206720L) : (byte)+ (var_5 /= var_9); 14.123 + var_7 = (var_4 = true) ? (byte)(false ? (short)749593632 : (byte)8.692758043260743E307) : (byte)var_1; 14.124 + ((new Tester_Class_1[(byte)1.2890904018345944E308])[(byte)var_1]).var_3 = (var_3 = (byte)arg_0); 14.125 + var_4 = true ^ var_4; 14.126 + } 14.127 + { 14.128 + var_1 ^= (var_3 = (var_3 = (var_3 = (byte)'U'))); 14.129 + } 14.130 + var_3 = (var_3 = (var_3 = (var_3 = (byte)arg_1))); 14.131 + char var_11; 14.132 + var_1 += (var_2 = (var_7 = arg_1)); 14.133 + { 14.134 + var_7 = (var_7 = arg_1); 14.135 + } 14.136 + var_7 = arg_1; 14.137 + var_6 = (new char[(byte)1985094111797788672L][var_3 = (byte)3112604683090268160L])[var_3 = (byte)~ (var_3 = (byte)(var_5 += var_1))]; 14.138 + var_3 = (var_3 = (var_3 = (var_3 = (byte)3694858000202921984L))); 14.139 + var_1 /= ~ ((byte)1311538336); 14.140 + (((var_4 |= arg_2 ? !true && arg_2 : false) ? arg_2 : arg_2) ? "iih".substring(~ (var_3 = (byte)3.5401308E37F), 'g' * arg_1) : "gynskmvoj").trim(); 14.141 + var_3 = (var_3 = arg_2 ? (byte)+ ~5247392660383928320L : (byte)8392160279007184896L); 14.142 + var_3 = (var_3 = (var_3 = (byte)var_8)); 14.143 + return (var_5 += 7.157559E37F) + (var_11 = 'V'); 14.144 + } 14.145 + 14.146 + public String toString() 14.147 + { 14.148 + String result = "[\n"; 14.149 + result += "Tester_Class_1.var_7 = "; result += Tester.Printer.print(var_7); 14.150 + result += "\n"; 14.151 + result += "Tester_Class_1.var_3 = "; result += Tester.Printer.print(var_3); 14.152 + result += "\n"; 14.153 + result += "Tester_Class_1.var_8 = "; result += Tester.Printer.print(var_8); 14.154 + result += "\n"; 14.155 + result += "Tester_Class_1.var_1 = "; result += Tester.Printer.print(var_1); 14.156 + result += "\n"; 14.157 + result += "Tester_Class_1.var_4 = "; result += Tester.Printer.print(var_4); 14.158 + result += "\n"; 14.159 + result += "Tester_Class_1.var_5 = "; result += Tester.Printer.print(var_5); 14.160 + result += "\n"; 14.161 + result += "Tester_Class_1.var_2 = "; result += Tester.Printer.print(var_2); 14.162 + result += "\n"; 14.163 + result += "Tester_Class_1.var_9 = "; result += Tester.Printer.print(var_9); 14.164 + result += "\n"; 14.165 + result += "Tester_Class_1.var_6 = "; result += Tester.Printer.print(var_6); 14.166 + result += ""; 14.167 + result += "\n]"; 14.168 + return result; 14.169 + } 14.170 +} 14.171 + 14.172 + 14.173 +class Tester_Class_2 extends Tester_Class_1 implements Tester_Interface_0 { 14.174 + 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" : ""; 14.175 + static String var_19 = "acxfj"; 14.176 + 14.177 + 14.178 + public Tester_Class_2() 14.179 + { 14.180 + Tester_Class_1.var_4 = !Tester_Class_1.var_4; 14.181 + var_1++; 14.182 + var_2 = (byte)2.4009747E38F; 14.183 + new String(); 14.184 + var_6 = (var_19 = "hsshyw"); 14.185 + var_19 = var_19; 14.186 + } 14.187 + 14.188 + 14.189 + public Tester_Interface_0 func_0(double[][] arg_0, final Object arg_1) 14.190 + { 14.191 + var_5 = 4.0352057E37F; 14.192 + (((false && ! ((Tester_Class_1.var_4 |= !true) ^ (Tester_Class_1.var_4 ^ false))) ^ (var_4 &= true) ? var_4 : (var_4 ^= true)) ? "spskwj" : "xcqianm").length(); 14.193 + ((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; 14.194 + var_7 = (short)(byte)(short)8775325134193811456L; 14.195 + var_4 ^= (var_4 &= !false); 14.196 + ((Tester_Class_1)arg_1).var_3 = (var_3 = (byte)(var_5 %= 8.933448E37F)); 14.197 + Tester_Class_1 var_20 = Tester_Class_1.var_4 ? (Tester_Class_1)arg_1 : (Tester_Class_1)arg_1; 14.198 + { 14.199 + var_19.endsWith(var_19); 14.200 + var_6 = var_20; 14.201 + (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)); 14.202 + } 14.203 + final boolean var_21 = Tester_Class_1.var_4; 14.204 + var_20.var_3 = (var_3 = (var_20.var_3 = (byte)'t')); 14.205 + boolean var_22 = true; 14.206 + Tester_Class_1.var_4 |= (var_4 = var_21); 14.207 + var_19 = "ocn"; 14.208 + var_19 = var_19; 14.209 + var_1 *= Tester_Class_1.var_8; 14.210 + var_20 = var_22 ? var_20 : var_20; 14.211 + var_7 = var_21 ? (byte)+ ((byte)var_1) : ((var_20 = (var_20 = var_20)).var_3 = (var_3 = (var_3 = (byte)'L'))); 14.212 + return true ? (var_20 = var_20) : (new Tester_Interface_0[(byte)5618282952859970560L])[var_3 = (byte)Tester_Class_1.var_8]; 14.213 + } 14.214 + 14.215 + 14.216 + public boolean equals(Object obj) 14.217 + { 14.218 + Tester_Class_1.var_7 = (var_7 = (((Tester_Class_1)obj).var_3 = (byte)var_9)); 14.219 + { 14.220 + final Tester_Class_1 var_23 = (Tester_Class_1)obj; 14.221 + } 14.222 + ++Tester_Class_1.var_1; 14.223 + 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)); 14.224 + ((Tester_Class_1)obj).var_6 = var_18.replace(Tester_Class_1.var_8, Tester_Class_1.var_8); 14.225 + ((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); 14.226 + var_1 &= var_8; 14.227 + var_7 = var_4 ? (var_3 = (byte)var_8) : (byte)var_5; 14.228 + var_19 = var_18; 14.229 + ("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))); 14.230 + return true; 14.231 + } 14.232 + 14.233 + 14.234 + public String toString() 14.235 + { 14.236 + String result = "[\n"; 14.237 + result += "Tester_Class_2.var_7 = "; result += Tester.Printer.print(var_7); 14.238 + result += "\n"; 14.239 + result += "Tester_Class_2.var_8 = "; result += Tester.Printer.print(var_8); 14.240 + result += "\n"; 14.241 + result += "Tester_Class_2.var_3 = "; result += Tester.Printer.print(var_3); 14.242 + result += "\n"; 14.243 + result += "Tester_Class_2.var_18 = "; result += Tester.Printer.print(var_18); 14.244 + result += "\n"; 14.245 + result += "Tester_Class_2.var_19 = "; result += Tester.Printer.print(var_19); 14.246 + result += "\n"; 14.247 + result += "Tester_Class_2.var_1 = "; result += Tester.Printer.print(var_1); 14.248 + result += "\n"; 14.249 + result += "Tester_Class_2.var_4 = "; result += Tester.Printer.print(var_4); 14.250 + result += "\n"; 14.251 + result += "Tester_Class_2.var_5 = "; result += Tester.Printer.print(var_5); 14.252 + result += "\n"; 14.253 + result += "Tester_Class_2.var_2 = "; result += Tester.Printer.print(var_2); 14.254 + result += "\n"; 14.255 + result += "Tester_Class_2.var_9 = "; result += Tester.Printer.print(var_9); 14.256 + result += "\n"; 14.257 + result += "Tester_Class_2.var_6 = "; result += Tester.Printer.print(var_6); 14.258 + result += ""; 14.259 + result += "\n]"; 14.260 + return result; 14.261 + } 14.262 +} 14.263 + 14.264 + 14.265 +class Tester_Class_3 extends Tester_Class_2 implements Tester_Interface_0 { 14.266 + long var_24 = 9026266006808413184L; 14.267 + char var_25; 14.268 + 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))); 14.269 + static Tester_Class_2 var_27; 14.270 + 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)))); 14.271 + static boolean var_29 = false; 14.272 + static Object[][] var_30; 14.273 + int var_31 = 750583762; 14.274 + Tester_Class_2 var_32; 14.275 + final static long var_33 = 3050784555932008448L; 14.276 + 14.277 + 14.278 + public Tester_Class_3() 14.279 + { 14.280 + byte[] var_34; 14.281 + var_4 &= (Tester_Class_1.var_4 = true); 14.282 + Tester_Class_1.var_1--; 14.283 + switch (var_28 >>= ~ ((byte)var_28)) 14.284 + { 14.285 + case 9: 14.286 + 14.287 + case 26: 14.288 + Tester_Class_1.var_4 ^= Tester_Class_1.var_4; 14.289 + (Tester_Class_2.var_19 = "pwtic").indexOf(Tester_Class_2.var_18); 14.290 + var_26.indexOf(var_19); 14.291 + ((Tester_Class_1)(new Tester_Interface_0[(byte)var_5])[var_24 <= var_31 ? (byte)'^' : (byte)var_24]).var_2 = 5611775846881101824L; 14.292 + var_29 |= (Tester_Class_2.var_4 ^= var_29); 14.293 + Tester_Class_2 var_35; 14.294 + var_24 <<= (var_31 >>= (var_25 = var_8)); 14.295 + break; 14.296 + 14.297 + case 28: 14.298 + 14.299 + } 14.300 + new String(); 14.301 + var_5 %= (var_25 = 'n'); 14.302 + ((Tester_Class_2)(Tester_Class_1)(((Tester_Class_1)(var_6 = Tester_Class_2.var_18)).var_6 = (var_26 = ""))).var_2 = var_31; 14.303 + --var_1; 14.304 + } 14.305 + 14.306 + 14.307 + 14.308 + 14.309 + public String toString() 14.310 + { 14.311 + String result = "[\n"; 14.312 + result += "Tester_Class_3.var_8 = "; result += Tester.Printer.print(var_8); 14.313 + result += "\n"; 14.314 + result += "Tester_Class_3.var_25 = "; result += Tester.Printer.print(var_25); 14.315 + result += "\n"; 14.316 + result += "Tester_Class_3.var_1 = "; result += Tester.Printer.print(var_1); 14.317 + result += "\n"; 14.318 + result += "Tester_Class_3.var_31 = "; result += Tester.Printer.print(var_31); 14.319 + result += "\n"; 14.320 + result += "Tester_Class_3.var_30 = "; result += Tester.Printer.print(var_30); 14.321 + result += "\n"; 14.322 + result += "Tester_Class_3.var_24 = "; result += Tester.Printer.print(var_24); 14.323 + result += "\n"; 14.324 + result += "Tester_Class_3.var_33 = "; result += Tester.Printer.print(var_33); 14.325 + result += "\n"; 14.326 + result += "Tester_Class_3.var_5 = "; result += Tester.Printer.print(var_5); 14.327 + result += "\n"; 14.328 + result += "Tester_Class_3.var_2 = "; result += Tester.Printer.print(var_2); 14.329 + result += "\n"; 14.330 + result += "Tester_Class_3.var_9 = "; result += Tester.Printer.print(var_9); 14.331 + result += "\n"; 14.332 + result += "Tester_Class_3.var_7 = "; result += Tester.Printer.print(var_7); 14.333 + result += "\n"; 14.334 + result += "Tester_Class_3.var_28 = "; result += Tester.Printer.print(var_28); 14.335 + result += "\n"; 14.336 + result += "Tester_Class_3.var_3 = "; result += Tester.Printer.print(var_3); 14.337 + result += "\n"; 14.338 + result += "Tester_Class_3.var_18 = "; result += Tester.Printer.print(var_18); 14.339 + result += "\n"; 14.340 + result += "Tester_Class_3.var_19 = "; result += Tester.Printer.print(var_19); 14.341 + result += "\n"; 14.342 + result += "Tester_Class_3.var_26 = "; result += Tester.Printer.print(var_26); 14.343 + result += "\n"; 14.344 + result += "Tester_Class_3.var_4 = "; result += Tester.Printer.print(var_4); 14.345 + result += "\n"; 14.346 + result += "Tester_Class_3.var_29 = "; result += Tester.Printer.print(var_29); 14.347 + result += "\n"; 14.348 + result += "Tester_Class_3.var_27 = "; result += Tester.Printer.print(var_27); 14.349 + result += "\n"; 14.350 + result += "Tester_Class_3.var_32 = "; result += Tester.Printer.print(var_32); 14.351 + result += "\n"; 14.352 + result += "Tester_Class_3.var_6 = "; result += Tester.Printer.print(var_6); 14.353 + result += ""; 14.354 + result += "\n]"; 14.355 + return result; 14.356 + } 14.357 +} 14.358 + 14.359 +public class Tester { 14.360 + static double var_36 = 2.679028326789642E307; 14.361 + float var_37; 14.362 + String var_38 = Tester_Class_2.var_18; 14.363 + static Tester_Interface_0 var_39; 14.364 + static char var_40 = 'D'; 14.365 + Tester_Class_1 var_41; 14.366 + static int var_42; 14.367 + final static boolean var_43 = false; 14.368 + 14.369 + 14.370 + final static Tester_Class_2 func_0(Tester_Class_1 arg_0, final Tester_Class_2 arg_1) 14.371 + { 14.372 + "ooots".replaceFirst("rdxor", ((new Tester_Class_3[arg_1.var_3 = (byte)2.7836305E38F])[arg_0.var_3 = (byte)+ + +1.4958218616334936E307]).var_26); 14.373 + if (true) 14.374 + { 14.375 + arg_0 = (Tester_Class_3)arg_0; 14.376 + ((Tester_Class_3)arg_0).var_25 = var_40; 14.377 + 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)); 14.378 + } 14.379 + else 14.380 + { 14.381 + var_39 = (Tester_Class_3.var_27 = (Tester_Class_3)arg_1); 14.382 + } 14.383 + Tester_Class_3.var_19 = "onndgsil"; 14.384 + var_39 = arg_0; 14.385 + 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); 14.386 + } 14.387 + 14.388 + private final static float func_1(final short arg_0, int[][] arg_1, final long arg_2) 14.389 + { 14.390 + Tester_Class_2.var_1 *= arg_0; 14.391 + double var_45 = 6.841391103184752E307; 14.392 + long var_46; 14.393 + Tester_Class_2.var_1--; 14.394 + --var_40; 14.395 + ++var_40; 14.396 + ++Tester_Class_3.var_1; 14.397 + Tester_Class_1.var_4 = false; 14.398 + var_36 %= 'X'; 14.399 + ++Tester_Class_2.var_1; 14.400 + Tester_Class_1.var_1++; 14.401 + return 3.2422038E38F; 14.402 + } 14.403 + 14.404 + private final static char func_2(double arg_0, final byte arg_1, int arg_2) 14.405 + { 14.406 + --Tester_Class_3.var_1; 14.407 + if (Tester_Class_1.var_4) 14.408 + { 14.409 + if (var_43) 14.410 + { 14.411 + Tester_Class_3.var_1++; 14.412 + } 14.413 + else 14.414 + { 14.415 + var_40 <<= 1329560515532651520L; 14.416 + } 14.417 + (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; 14.418 + Tester_Class_2.var_19 = Tester_Class_3.var_19; 14.419 + --var_40; 14.420 + final long var_47 = ~Tester_Class_3.var_33 << var_40--; 14.421 + ((Tester_Class_3)(new Tester_Class_2[arg_1][arg_1])[arg_1][arg_1]).var_24 *= (var_36 *= (long)arg_1 * ~arg_1); 14.422 + Tester_Class_2.var_19 = Tester_Class_2.var_19; 14.423 + ++((new Tester_Class_3[arg_1])[arg_1]).var_24; 14.424 + } 14.425 + else 14.426 + { 14.427 + var_40++; 14.428 + } 14.429 + var_40 <<= var_40; 14.430 + if (true) 14.431 + { 14.432 + ++arg_2; 14.433 + } 14.434 + else 14.435 + { 14.436 + Tester_Class_2.var_7 = arg_1; 14.437 + } 14.438 + boolean var_48 = true; 14.439 + var_36 /= arg_1; 14.440 + final short var_49 = 15276; 14.441 + Tester_Interface_0 var_50; 14.442 + ((Tester_Class_2.var_19 = (Tester_Class_2.var_19 = Tester_Class_2.var_19)) + "xhi").toString(); 14.443 + arg_2++; 14.444 + return var_40; 14.445 + } 14.446 + 14.447 + public final static char func_4(final boolean arg_0) 14.448 + { 14.449 + float var_52 = 2.8063675E38F; 14.450 + var_40--; 14.451 + Object var_53; 14.452 + Tester_Class_3.var_29 |= (Tester_Class_3.var_29 &= true); 14.453 + if (!Tester_Class_1.var_4) 14.454 + { 14.455 + --var_40; 14.456 + } 14.457 + else 14.458 + { 14.459 + var_52 %= 2027756834; 14.460 + } 14.461 + int var_54 = Tester_Class_1.var_1++; 14.462 + var_40--; 14.463 + long var_55; 14.464 + byte var_56 = 97; 14.465 + var_36 *= 9.75628909363086E307 % + -1.9812653793936264E306; 14.466 + int var_57; 14.467 + boolean var_58 = Tester_Class_1.var_4 ^= var_43; 14.468 + return 'J'; 14.469 + } 14.470 + 14.471 + static float func_5(final Object arg_0, float arg_1, final Tester_Class_2 arg_2) 14.472 + { 14.473 + var_39 = arg_2; 14.474 + Tester_Class_3.var_27 = arg_2; 14.475 + arg_1 %= 1.7777554E38F; 14.476 + var_39 = (Tester_Class_3.var_27 = arg_2); 14.477 + Tester_Class_3 var_59; 14.478 + { 14.479 + var_40 -= arg_1 - ~ (((Tester_Class_3)arg_2).var_3 = (byte)1455854212); 14.480 + } 14.481 + 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]; 14.482 + Tester_Class_3.var_27 = (Tester_Class_2)(var_39 = arg_2); 14.483 + ((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; 14.484 + return Tester_Class_1.var_9; 14.485 + } 14.486 + 14.487 + private static void func_6(char arg_0, final Tester_Class_3 arg_1, String arg_2, final double arg_3) 14.488 + { 14.489 + ((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; 14.490 + double var_61; 14.491 + (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); 14.492 + } 14.493 + 14.494 + private final char func_7(int arg_0) 14.495 + { 14.496 + Tester_Class_2.var_4 &= var_43; 14.497 + float var_62 = Tester_Class_3.var_9; 14.498 + --var_40; 14.499 + int var_63 = Tester_Class_1.var_1++; 14.500 + { 14.501 + "nncjfoit".indexOf((new int[(byte)'\\'])[(byte)var_36]); 14.502 + if (var_43) 14.503 + { 14.504 + ((new Tester_Class_3[(byte)var_40][(byte)Tester_Class_2.var_1])[(byte)5046997225818337280L][(byte)var_63]).var_24 >>>= var_40; 14.505 + } 14.506 + else 14.507 + { 14.508 + --var_40; 14.509 + } 14.510 + --Tester_Class_2.var_1; 14.511 + --var_63; 14.512 + } 14.513 + { 14.514 + final byte var_64 = Tester_Class_1.var_4 ? (byte)'M' : (byte)(var_62 -= + ((byte)Tester_Class_1.var_8)); 14.515 + float var_65; 14.516 + var_62 *= ((Tester_Class_3)(new Tester_Interface_0[var_64])[var_64]).var_24++; 14.517 + var_36 /= var_64; 14.518 + { 14.519 + double var_66; 14.520 + } 14.521 + var_40 += 3500240160155094016L; 14.522 + ((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)))); 14.523 + ++Tester_Class_3.var_1; 14.524 + } 14.525 + --arg_0; 14.526 + { 14.527 + arg_0++; 14.528 + } 14.529 + Tester_Class_2.var_1++; 14.530 + 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))); 14.531 + var_36 %= (var_62 = (byte)900943133); 14.532 + var_36 = Tester_Class_3.var_33; 14.533 + var_62 += (var_40 /= (byte)6766658341842315264L % (byte)'p') * (short)2019461672; 14.534 + --var_40; 14.535 + if (true) 14.536 + { 14.537 + var_62 *= 365879806965555200L; 14.538 + } 14.539 + else 14.540 + { 14.541 + var_36 -= ~9163555887358003200L; 14.542 + } 14.543 + Tester_Class_1.var_4 = Tester_Class_1.var_4; 14.544 + { 14.545 + var_40 <<= var_63; 14.546 + } 14.547 + var_40++; 14.548 + String var_67; 14.549 + return Tester_Class_1.var_8; 14.550 + } 14.551 + 14.552 + private final static Tester_Interface_0 func_8(char arg_0, final Tester_Class_2 arg_1, final String arg_2) 14.553 + { 14.554 + ((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); 14.555 + 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)'['))))]; 14.556 + } 14.557 + 14.558 + private final int func_9(Tester_Class_3 arg_0, char arg_1) 14.559 + { 14.560 + final float var_68 = Tester_Class_3.var_9; 14.561 + Tester_Class_2.var_18.toLowerCase(); 14.562 + double var_69; 14.563 + { 14.564 + Tester_Class_3.var_29 ^= !false || Tester_Class_2.var_4; 14.565 + } 14.566 + Tester_Class_1 var_70; 14.567 + (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)); 14.568 + "hv".codePointBefore(--Tester_Class_2.var_1); 14.569 + var_41 = arg_0; 14.570 + return ~ (((arg_0 = arg_0).var_24 &= arg_1) == 3.0764282E38F ? (byte)457565863 : ((arg_0 = arg_0).var_3 = (byte)arg_0.var_28)); 14.571 + } 14.572 + 14.573 + private static void func_10(double arg_0, final Tester_Class_3 arg_1, double arg_2) 14.574 + { 14.575 + arg_1.var_32 = 'g' != 1.520646515461986E307 ? (arg_1.var_32 = arg_1) : arg_1; 14.576 + Tester_Class_2.var_19.startsWith(Tester_Class_2.var_19 = Tester_Class_3.var_18); 14.577 + Tester_Class_1.var_4 ^= true & (arg_1.var_3 = (arg_1.var_3 = (byte)- ((byte)1.4509185661781193E308))) > (arg_1.var_2 = var_40); 14.578 + var_36 += Tester_Class_3.var_9; 14.579 + } 14.580 + 14.581 + Tester_Interface_0 func_12(final Object arg_0, float arg_1) 14.582 + { 14.583 + switch (((Tester_Class_3)arg_0).var_3 = (byte)arg_1) 14.584 + { 14.585 + case 4: 14.586 + var_41 = (Tester_Class_3)(var_39 = (Tester_Class_3.var_27 = (Tester_Class_3.var_27 = (Tester_Class_3)arg_0))); 14.587 + double var_72 = (double)3858573493713776640L; 14.588 + byte var_73 = (var_41 = (Tester_Class_2)arg_0).var_3 = (((Tester_Class_3)arg_0).var_3 = (byte)var_72); 14.589 + break; 14.590 + 14.591 + case 13: 14.592 + (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; 14.593 + break; 14.594 + 14.595 + default: 14.596 + var_40 <<= (byte)157510337; 14.597 + break; 14.598 + 14.599 + case 26: 14.600 + 14.601 + case 122: 14.602 + 14.603 + } 14.604 + Tester_Interface_0 var_74; 14.605 + long var_75; 14.606 + var_41 = (var_41 = (var_41 = (Tester_Class_2)arg_0)); 14.607 + arg_1 *= 1601420762; 14.608 + var_74 = (var_41 = Tester_Class_1.var_4 ? (Tester_Class_3)arg_0 : (Tester_Class_2)arg_0); 14.609 + (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; 14.610 + var_40 >>>= (byte)6.643183E36F / - ((byte)1.277596E37F); 14.611 + { 14.612 + ((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--; 14.613 + } 14.614 + var_38 = "qad"; 14.615 + 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; 14.616 + return var_39 = (Tester_Class_3)((var_41 = (Tester_Class_3)arg_0).var_6 = Tester_Class_2.var_18); 14.617 + } 14.618 + 14.619 + protected final String func_13() 14.620 + { 14.621 + float var_77; 14.622 + var_38 = (Tester_Class_2.var_19 = var_38); 14.623 + Tester_Class_2.var_4 ^= !var_43 | (Tester_Class_3.var_29 ^= Tester_Class_1.var_4); 14.624 + Tester_Class_3.var_1--; 14.625 + Tester_Class_2.var_1++; 14.626 + return Tester_Class_2.var_18; 14.627 + } 14.628 + 14.629 + public static String execute() 14.630 + { 14.631 + try { 14.632 + Tester t = new Tester(); 14.633 + try { t.test(); } 14.634 + catch(Throwable e) { } 14.635 + try { return t.toString(); } 14.636 + catch (Throwable e) { return "Error during result conversion to String"; } 14.637 + } catch (Throwable e) { return "Error during test execution"; } 14.638 + } 14.639 + 14.640 + public static void main(String[] args) 14.641 + { 14.642 + try { 14.643 + Tester t = new Tester(); 14.644 + try { t.test(); } 14.645 + catch(Throwable e) { } 14.646 + try { System.out.println(t); } 14.647 + catch(Throwable e) { } 14.648 + } catch (Throwable e) { } 14.649 + } 14.650 + 14.651 + private void test() 14.652 + { 14.653 + int var_78 = 0; 14.654 + var_39 = (new Tester_Class_1[(byte)var_40])[(byte)Tester_Class_3.var_33]; 14.655 + while (var_43 && (var_78 < 70 && true)) 14.656 + { 14.657 + var_40 *= ~ ~Tester_Class_3.var_33 % Tester_Class_3.var_9; 14.658 + var_78++; 14.659 + var_39 = new Tester_Class_3(); 14.660 + var_39 = (var_41 = (Tester_Class_3.var_27 = new Tester_Class_2())); 14.661 + } 14.662 + 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(); 14.663 + Tester_Class_2 var_80; 14.664 + } 14.665 + public String toString() 14.666 + { 14.667 + String result = "[\n"; 14.668 + result += "Tester.var_40 = "; result += Printer.print(var_40); 14.669 + result += "\n"; 14.670 + result += "Tester.var_42 = "; result += Printer.print(var_42); 14.671 + result += "\n"; 14.672 + result += "Tester.var_36 = "; result += Printer.print(var_36); 14.673 + result += "\n"; 14.674 + result += "Tester.var_37 = "; result += Printer.print(var_37); 14.675 + result += "\n"; 14.676 + result += "Tester.var_39 = "; result += Printer.print(var_39); 14.677 + result += "\n"; 14.678 + result += "Tester.var_38 = "; result += Printer.print(var_38); 14.679 + result += "\n"; 14.680 + result += "Tester.var_43 = "; result += Printer.print(var_43); 14.681 + result += "\n"; 14.682 + result += "Tester.var_41 = "; result += Printer.print(var_41); 14.683 + result += ""; 14.684 + result += "\n]"; 14.685 + return result; 14.686 + } 14.687 + static class Printer 14.688 + { 14.689 + public static String print(boolean arg) { return String.valueOf(arg); } 14.690 + public static String print(byte arg) { return String.valueOf(arg); } 14.691 + public static String print(short arg) { return String.valueOf(arg); } 14.692 + public static String print(char arg) { return String.valueOf((int)arg); } 14.693 + public static String print(int arg) { return String.valueOf(arg); } 14.694 + public static String print(long arg) { return String.valueOf(arg); } 14.695 + public static String print(float arg) { return String.valueOf(arg); } 14.696 + public static String print(double arg) { return String.valueOf(arg); } 14.697 + 14.698 + 14.699 + public static String print(Object arg) 14.700 + { 14.701 + return print_r(new java.util.Stack(), arg); 14.702 + } 14.703 + 14.704 + private static String print_r(java.util.Stack visitedObjects, Object arg) 14.705 + { 14.706 + String result = ""; 14.707 + if (arg == null) 14.708 + result += "null"; 14.709 + else 14.710 + if (arg.getClass().isArray()) 14.711 + { 14.712 + for (int i = 0; i < visitedObjects.size(); i++) 14.713 + if (visitedObjects.elementAt(i) == arg) return "<recursive>"; 14.714 + 14.715 + visitedObjects.push(arg); 14.716 + 14.717 + final String delimiter = ", "; 14.718 + result += "["; 14.719 + 14.720 + if (arg instanceof Object[]) 14.721 + { 14.722 + Object[] array = (Object[]) arg; 14.723 + for (int i = 0; i < array.length; i++) 14.724 + { 14.725 + result += print_r(visitedObjects, array[i]); 14.726 + if (i < array.length - 1) result += delimiter; 14.727 + } 14.728 + } 14.729 + else 14.730 + if (arg instanceof boolean[]) 14.731 + { 14.732 + boolean[] array = (boolean[]) arg; 14.733 + for (int i = 0; i < array.length; i++) 14.734 + { 14.735 + result += print(array[i]); 14.736 + if (i < array.length - 1) result += delimiter; 14.737 + } 14.738 + } 14.739 + else 14.740 + if (arg instanceof byte[]) 14.741 + { 14.742 + byte[] array = (byte[]) arg; 14.743 + for (int i = 0; i < array.length; i++) 14.744 + { 14.745 + result += print(array[i]); 14.746 + if (i < array.length - 1) result += delimiter; 14.747 + } 14.748 + } 14.749 + else 14.750 + if (arg instanceof short[]) 14.751 + { 14.752 + short[] array = (short[]) arg; 14.753 + for (int i = 0; i < array.length; i++) 14.754 + { 14.755 + result += print(array[i]); 14.756 + if (i < array.length - 1) result += delimiter; 14.757 + } 14.758 + } 14.759 + else 14.760 + if (arg instanceof char[]) 14.761 + { 14.762 + char[] array = (char[]) arg; 14.763 + for (int i = 0; i < array.length; i++) 14.764 + { 14.765 + result += print(array[i]); 14.766 + if (i < array.length - 1) result += delimiter; 14.767 + } 14.768 + } 14.769 + else 14.770 + if (arg instanceof int[]) 14.771 + { 14.772 + int[] array = (int[]) arg; 14.773 + for (int i = 0; i < array.length; i++) 14.774 + { 14.775 + result += print(array[i]); 14.776 + if (i < array.length - 1) result += delimiter; 14.777 + } 14.778 + } 14.779 + else 14.780 + if (arg instanceof long[]) 14.781 + { 14.782 + long[] array = (long[]) arg; 14.783 + for (int i = 0; i < array.length; i++) 14.784 + { 14.785 + result += print(array[i]); 14.786 + if (i < array.length - 1) result += delimiter; 14.787 + } 14.788 + } 14.789 + else 14.790 + if (arg instanceof float[]) 14.791 + { 14.792 + float[] array = (float[]) arg; 14.793 + for (int i = 0; i < array.length; i++) 14.794 + { 14.795 + result += print(array[i]); 14.796 + if (i < array.length - 1) result += delimiter; 14.797 + } 14.798 + } 14.799 + else 14.800 + if (arg instanceof double[]) 14.801 + { 14.802 + double[] array = (double[]) arg; 14.803 + for (int i = 0; i < array.length; i++) 14.804 + { 14.805 + result += print(array[i]); 14.806 + if (i < array.length - 1) result += delimiter; 14.807 + } 14.808 + } 14.809 + 14.810 + result += "]"; 14.811 + visitedObjects.pop(); 14.812 + 14.813 + } else 14.814 + { 14.815 + result += arg.toString(); 14.816 + } 14.817 + 14.818 + return result; 14.819 + } 14.820 + } 14.821 +} 14.822 + 14.823 +