### Eclipse Workspace Patch 1.0 #P org.eclipse.jdt.core.tests Index: Eclipse Java Tests Compiler/org/eclipse/jdt/tests/compiler/regression/ConformTest.java =================================================================== RCS file: /home/cvs/numbat/org.eclipse.jdt.core.tests/Eclipse Java Tests Compiler/org/eclipse/jdt/tests/compiler/regression/ConformTest.java,v retrieving revision 1.143 diff -u -r1.143 ConformTest.java --- Eclipse Java Tests Compiler/org/eclipse/jdt/tests/compiler/regression/ConformTest.java 23 Nov 2006 15:31:58 -0000 1.143 +++ Eclipse Java Tests Compiler/org/eclipse/jdt/tests/compiler/regression/ConformTest.java 20 Jan 2007 03:13:35 -0000 @@ -21,6 +21,7 @@ import org.eclipse.jdt.core.tests.compiler.regression.*; import org.eclipse.jdt.core.tests.util.Util; import org.eclipse.jdt.core.util.ClassFileBytesDisassembler; +import org.eclipse.jdt.internal.compiler.classfmt.ClassFileConstants; import org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader; import org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException; import org.eclipse.jdt.internal.compiler.env.IBinaryField; @@ -6543,105 +6544,212 @@ options, null); // custom requestor - String expectedOutput = - " // Method descriptor #15 (Z)V\n" + - " // Stack: 4, Locals: 8\n" + - " private void foo(boolean delete);\n" + - " 0 aload_0 [this]\n" + - " 1 invokevirtual X.bar() : java.lang.String [16]\n" + - " 4 astore_2 [s]\n" + - " 5 new java.lang.StringBuffer [20]\n" + - " 8 dup\n" + - " 9 invokespecial java.lang.StringBuffer() [22]\n" + - " 12 astore_3 [buffer]\n" + - " 13 iconst_1\n" + - " 14 anewarray java.lang.String [23]\n" + - " 17 dup\n" + - " 18 iconst_0\n" + - " 19 ldc [25]\n" + - " 21 aastore\n" + - " 22 astore 4 [datas]\n" + - " 24 iconst_1\n" + - " 25 anewarray java.lang.Object [3]\n" + - " 28 dup\n" + - " 29 iconst_0\n" + - " 30 aload_2 [s]\n" + - " 31 aastore\n" + - " 32 astore 5 [data]\n" + - " 34 aload_3 [buffer]\n" + - " 35 aload 4 [datas]\n" + - " 37 invokevirtual java.lang.StringBuffer.append(java.lang.Object) : java.lang.StringBuffer [27]\n" + - " 40 aload 5 [data]\n" + - " 42 invokevirtual java.lang.StringBuffer.append(java.lang.Object) : java.lang.StringBuffer [27]\n" + - " 45 pop\n" + - " 46 goto 62\n" + - " 49 astore 6 [e]\n" + - " 51 aload 6 [e]\n" + - " 53 ifnull 59\n" + - " 56 aload 6 [e]\n" + - " 58 athrow\n" + - " 59 aconst_null\n" + - " 60 astore_3 [buffer]\n" + - " 61 return\n" + - " 62 iload_1 [delete]\n" + - " 63 ifeq 91\n" + - " 66 aload_3 [buffer]\n" + - " 67 iconst_0\n" + - " 68 aload_3 [buffer]\n" + - " 69 invokevirtual java.lang.StringBuffer.length() : int [31]\n" + - " 72 invokevirtual java.lang.StringBuffer.delete(int, int) : java.lang.StringBuffer [35]\n" + - " 75 pop\n" + - " 76 goto 91\n" + - " 79 astore 4\n" + - " 81 goto 96\n" + - " 84 astore 7\n" + - " 86 aconst_null\n" + - " 87 astore_3 [buffer]\n" + - " 88 aload 7\n" + - " 90 athrow\n" + - " 91 aconst_null\n" + - " 92 astore_3 [buffer]\n" + - " 93 goto 98\n" + - " 96 aconst_null\n" + - " 97 astore_3 [buffer]\n" + - " 98 return\n" + - " Exception Table:\n" + - " [pc: 34, pc: 46] -> 49 when : java.lang.Exception\n" + - " [pc: 13, pc: 59] -> 79 when : java.lang.Exception\n" + - " [pc: 62, pc: 76] -> 79 when : java.lang.Exception\n" + - " [pc: 13, pc: 59] -> 84 when : any\n" + - " [pc: 62, pc: 84] -> 84 when : any\n" + - " Line numbers:\n" + - " [pc: 0, line: 4]\n" + - " [pc: 5, line: 5]\n" + - " [pc: 13, line: 9]\n" + - " [pc: 24, line: 10]\n" + - " [pc: 34, line: 12]\n" + - " [pc: 49, line: 13]\n" + - " [pc: 51, line: 14]\n" + - " [pc: 56, line: 15]\n" + - " [pc: 59, line: 24]\n" + - " [pc: 61, line: 16]\n" + - " [pc: 62, line: 19]\n" + - " [pc: 66, line: 20]\n" + - " [pc: 79, line: 22]\n" + - " [pc: 84, line: 23]\n" + - " [pc: 86, line: 24]\n" + - " [pc: 88, line: 25]\n" + - " [pc: 91, line: 24]\n" + - " [pc: 93, line: 25]\n" + - " [pc: 96, line: 24]\n" + - " [pc: 98, line: 26]\n" + - " Local variable table:\n" + - " [pc: 0, pc: 99] local: this index: 0 type: X\n" + - " [pc: 0, pc: 99] local: delete index: 1 type: boolean\n" + - " [pc: 5, pc: 99] local: s index: 2 type: java.lang.String\n" + - " [pc: 13, pc: 99] local: buffer index: 3 type: java.lang.StringBuffer\n" + - " [pc: 24, pc: 59] local: datas index: 4 type: java.lang.String[]\n" + - " [pc: 62, pc: 79] local: datas index: 4 type: java.lang.String[]\n" + - " [pc: 34, pc: 59] local: data index: 5 type: java.lang.Object[]\n" + - " [pc: 62, pc: 79] local: data index: 5 type: java.lang.Object[]\n" + - " [pc: 51, pc: 59] local: e index: 6 type: java.lang.Exception\n"; + CompilerOptions compilerOptions = new CompilerOptions(this.getCompilerOptions()); + String expectedOutput = compilerOptions.targetJDK <= ClassFileConstants.JDK1_5 ? + " // Method descriptor #15 (Z)V\n" + + " // Stack: 4, Locals: 8\n" + + " private void foo(boolean delete);\n" + + " 0 aload_0 [this]\n" + + " 1 invokevirtual X.bar() : java.lang.String [16]\n" + + " 4 astore_2 [s]\n" + + " 5 new java.lang.StringBuffer [20]\n" + + " 8 dup\n" + + " 9 invokespecial java.lang.StringBuffer() [22]\n" + + " 12 astore_3 [buffer]\n" + + " 13 iconst_1\n" + + " 14 anewarray java.lang.String [23]\n" + + " 17 dup\n" + + " 18 iconst_0\n" + + " 19 ldc [25]\n" + + " 21 aastore\n" + + " 22 astore 4 [datas]\n" + + " 24 iconst_1\n" + + " 25 anewarray java.lang.Object [3]\n" + + " 28 dup\n" + + " 29 iconst_0\n" + + " 30 aload_2 [s]\n" + + " 31 aastore\n" + + " 32 astore 5 [data]\n" + + " 34 aload_3 [buffer]\n" + + " 35 aload 4 [datas]\n" + + " 37 invokevirtual java.lang.StringBuffer.append(java.lang.Object) : java.lang.StringBuffer [27]\n" + + " 40 aload 5 [data]\n" + + " 42 invokevirtual java.lang.StringBuffer.append(java.lang.Object) : java.lang.StringBuffer [27]\n" + + " 45 pop\n" + + " 46 goto 62\n" + + " 49 astore 6 [e]\n" + + " 51 aload 6 [e]\n" + + " 53 ifnull 59\n" + + " 56 aload 6 [e]\n" + + " 58 athrow\n" + + " 59 aconst_null\n" + + " 60 astore_3 [buffer]\n" + + " 61 return\n" + + " 62 iload_1 [delete]\n" + + " 63 ifeq 91\n" + + " 66 aload_3 [buffer]\n" + + " 67 iconst_0\n" + + " 68 aload_3 [buffer]\n" + + " 69 invokevirtual java.lang.StringBuffer.length() : int [31]\n" + + " 72 invokevirtual java.lang.StringBuffer.delete(int, int) : java.lang.StringBuffer [35]\n" + + " 75 pop\n" + + " 76 goto 91\n" + + " 79 astore 4\n" + + " 81 goto 96\n" + + " 84 astore 7\n" + + " 86 aconst_null\n" + + " 87 astore_3 [buffer]\n" + + " 88 aload 7\n" + + " 90 athrow\n" + + " 91 aconst_null\n" + + " 92 astore_3 [buffer]\n" + + " 93 goto 98\n" + + " 96 aconst_null\n" + + " 97 astore_3 [buffer]\n" + + " 98 return\n" + + " Exception Table:\n" + + " [pc: 34, pc: 46] -> 49 when : java.lang.Exception\n" + + " [pc: 13, pc: 59] -> 79 when : java.lang.Exception\n" + + " [pc: 62, pc: 76] -> 79 when : java.lang.Exception\n" + + " [pc: 13, pc: 59] -> 84 when : any\n" + + " [pc: 62, pc: 84] -> 84 when : any\n" + + " Line numbers:\n" + + " [pc: 0, line: 4]\n" + + " [pc: 5, line: 5]\n" + + " [pc: 13, line: 9]\n" + + " [pc: 24, line: 10]\n" + + " [pc: 34, line: 12]\n" + + " [pc: 49, line: 13]\n" + + " [pc: 51, line: 14]\n" + + " [pc: 56, line: 15]\n" + + " [pc: 59, line: 24]\n" + + " [pc: 61, line: 16]\n" + + " [pc: 62, line: 19]\n" + + " [pc: 66, line: 20]\n" + + " [pc: 79, line: 22]\n" + + " [pc: 84, line: 23]\n" + + " [pc: 86, line: 24]\n" + + " [pc: 88, line: 25]\n" + + " [pc: 91, line: 24]\n" + + " [pc: 93, line: 25]\n" + + " [pc: 96, line: 24]\n" + + " [pc: 98, line: 26]\n" + + " Local variable table:\n" + + " [pc: 0, pc: 99] local: this index: 0 type: X\n" + + " [pc: 0, pc: 99] local: delete index: 1 type: boolean\n" + + " [pc: 5, pc: 99] local: s index: 2 type: java.lang.String\n" + + " [pc: 13, pc: 99] local: buffer index: 3 type: java.lang.StringBuffer\n" + + " [pc: 24, pc: 59] local: datas index: 4 type: java.lang.String[]\n" + + " [pc: 62, pc: 79] local: datas index: 4 type: java.lang.String[]\n" + + " [pc: 34, pc: 59] local: data index: 5 type: java.lang.Object[]\n" + + " [pc: 62, pc: 79] local: data index: 5 type: java.lang.Object[]\n" + + " [pc: 51, pc: 59] local: e index: 6 type: java.lang.Exception\n" + : " // Method descriptor #15 (Z)V\n" + + " // Stack: 4, Locals: 8\n" + + " private void foo(boolean delete);\n" + + " 0 aload_0 [this]\n" + + " 1 invokevirtual X.bar() : java.lang.String [16]\n" + + " 4 astore_2 [s]\n" + + " 5 new java.lang.StringBuffer [20]\n" + + " 8 dup\n" + + " 9 invokespecial java.lang.StringBuffer() [22]\n" + + " 12 astore_3 [buffer]\n" + + " 13 iconst_1\n" + + " 14 anewarray java.lang.String [23]\n" + + " 17 dup\n" + + " 18 iconst_0\n" + + " 19 ldc [25]\n" + + " 21 aastore\n" + + " 22 astore 4 [datas]\n" + + " 24 iconst_1\n" + + " 25 anewarray java.lang.Object [3]\n" + + " 28 dup\n" + + " 29 iconst_0\n" + + " 30 aload_2 [s]\n" + + " 31 aastore\n" + + " 32 astore 5 [data]\n" + + " 34 aload_3 [buffer]\n" + + " 35 aload 4 [datas]\n" + + " 37 invokevirtual java.lang.StringBuffer.append(java.lang.Object) : java.lang.StringBuffer [27]\n" + + " 40 aload 5 [data]\n" + + " 42 invokevirtual java.lang.StringBuffer.append(java.lang.Object) : java.lang.StringBuffer [27]\n" + + " 45 pop\n" + + " 46 goto 62\n" + + " 49 astore 6 [e]\n" + + " 51 aload 6 [e]\n" + + " 53 ifnull 59\n" + + " 56 aload 6 [e]\n" + + " 58 athrow\n" + + " 59 aconst_null\n" + + " 60 astore_3 [buffer]\n" + + " 61 return\n" + + " 62 iload_1 [delete]\n" + + " 63 ifeq 91\n" + + " 66 aload_3 [buffer]\n" + + " 67 iconst_0\n" + + " 68 aload_3 [buffer]\n" + + " 69 invokevirtual java.lang.StringBuffer.length() : int [31]\n" + + " 72 invokevirtual java.lang.StringBuffer.delete(int, int) : java.lang.StringBuffer [35]\n" + + " 75 pop\n" + + " 76 goto 91\n" + + " 79 astore 4\n" + + " 81 goto 96\n" + + " 84 astore 7\n" + + " 86 aconst_null\n" + + " 87 astore_3 [buffer]\n" + + " 88 aload 7\n" + + " 90 athrow\n" + + " 91 aconst_null\n" + + " 92 astore_3 [buffer]\n" + + " 93 goto 98\n" + + " 96 aconst_null\n" + + " 97 astore_3 [buffer]\n" + + " 98 return\n" + + " Exception Table:\n" + + " [pc: 34, pc: 46] -> 49 when : java.lang.Exception\n" + + " [pc: 13, pc: 59] -> 79 when : java.lang.Exception\n" + + " [pc: 62, pc: 76] -> 79 when : java.lang.Exception\n" + + " [pc: 13, pc: 59] -> 84 when : any\n" + + " [pc: 62, pc: 84] -> 84 when : any\n" + + " Line numbers:\n" + + " [pc: 0, line: 4]\n" + + " [pc: 5, line: 5]\n" + + " [pc: 13, line: 9]\n" + + " [pc: 24, line: 10]\n" + + " [pc: 34, line: 12]\n" + + " [pc: 49, line: 13]\n" + + " [pc: 51, line: 14]\n" + + " [pc: 56, line: 15]\n" + + " [pc: 59, line: 24]\n" + + " [pc: 61, line: 16]\n" + + " [pc: 62, line: 19]\n" + + " [pc: 66, line: 20]\n" + + " [pc: 79, line: 22]\n" + + " [pc: 84, line: 23]\n" + + " [pc: 86, line: 24]\n" + + " [pc: 88, line: 25]\n" + + " [pc: 91, line: 24]\n" + + " [pc: 93, line: 25]\n" + + " [pc: 96, line: 24]\n" + + " [pc: 98, line: 26]\n" + + " Local variable table:\n" + + " [pc: 0, pc: 99] local: this index: 0 type: X\n" + + " [pc: 0, pc: 99] local: delete index: 1 type: boolean\n" + + " [pc: 5, pc: 99] local: s index: 2 type: java.lang.String\n" + + " [pc: 13, pc: 99] local: buffer index: 3 type: java.lang.StringBuffer\n" + + " [pc: 24, pc: 79] local: datas index: 4 type: java.lang.String[]\n" + + " [pc: 34, pc: 79] local: data index: 5 type: java.lang.Object[]\n" + + " [pc: 51, pc: 62] local: e index: 6 type: java.lang.Exception\n" + + " Stack map table: number of frames 9\n" + + " [pc: 49, full, stack: {java.lang.Exception}, locals: {X, int, java.lang.String, java.lang.StringBuffer, java.lang.String[], java.lang.Object[]}]\n" + + " [pc: 59, append: {java.lang.Exception}]\n" + + " [pc: 62, chop 1 local(s)]\n" + + " [pc: 76, chop 2 local(s)]\n" + + " [pc: 79, same_locals_1_stack_item, stack: {java.lang.Exception}]\n" + + " [pc: 84, same_locals_1_stack_item, stack: {java.lang.Throwable}]\n" + + " [pc: 91, same]\n" + + " [pc: 96, same]\n" + + " [pc: 98, same]\n"; try { File f = new File(OUTPUT_DIR + File.separator + "X.class"); #P org.eclipse.jdt.core.tests.compiler Index: src/org/eclipse/jdt/core/tests/compiler/regression/TryStatementTest.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/TryStatementTest.java,v retrieving revision 1.33 diff -u -r1.33 TryStatementTest.java --- src/org/eclipse/jdt/core/tests/compiler/regression/TryStatementTest.java 21 Nov 2006 15:41:58 -0000 1.33 +++ src/org/eclipse/jdt/core/tests/compiler/regression/TryStatementTest.java 20 Jan 2007 03:25:23 -0000 @@ -25,7 +25,7 @@ static { // TESTS_NAMES = new String[] { "test000" }; -// TESTS_NUMBERS = new int[] { 34 }; +// TESTS_NUMBERS = new int[] { 41, 43, 44, 45, 46 }; // TESTS_RANGE = new int[] { 11, -1 }; } public TryStatementTest(String name) { @@ -1924,14 +1924,58 @@ }, "done"); - String expectedOutput = new CompilerOptions(this.getCompilerOptions()).inlineJsrBytecode + CompilerOptions compilerOptions = new CompilerOptions(this.getCompilerOptions()); + String expectedOutput = !compilerOptions.inlineJsrBytecode ? " // Method descriptor #15 (Z)V\n" + + " // Stack: 2, Locals: 5\n" + + " public void foo(boolean b);\n" + + " 0 iload_1 [b]\n" + + " 1 ifeq 10\n" + + " 4 iconst_0\n" + + " 5 istore_2 [i]\n" + + " 6 jsr 23\n" + + " 9 return\n" + + " 10 aconst_null\n" + + " 11 astore_2 [o]\n" + + " 12 goto 6\n" + + " 15 astore 4\n" + + " 17 jsr 23\n" + + " 20 aload 4\n" + + " 22 athrow\n" + + " 23 astore_3\n" + + " 24 getstatic java.lang.System.out : java.io.PrintStream [16]\n" + + " 27 ldc [22]\n" + + " 29 invokevirtual java.io.PrintStream.println(java.lang.String) : void [24]\n" + + " 32 ret 3\n" + + " Exception Table:\n" + + " [pc: 0, pc: 9] -> 15 when : any\n" + + " [pc: 10, pc: 15] -> 15 when : any\n" + + " Line numbers:\n" + + " [pc: 0, line: 4]\n" + + " [pc: 4, line: 5]\n" + + " [pc: 6, line: 6]\n" + + " [pc: 10, line: 8]\n" + + " [pc: 12, line: 9]\n" + + " [pc: 15, line: 11]\n" + + " [pc: 20, line: 13]\n" + + " [pc: 23, line: 11]\n" + + " [pc: 24, line: 12]\n" + + " [pc: 32, line: 13]\n" + + " Local variable table:\n" + + " [pc: 0, pc: 34] local: this index: 0 type: X\n" + + " [pc: 0, pc: 34] local: b index: 1 type: boolean\n" + + " [pc: 6, pc: 10] local: i index: 2 type: int\n" + + " [pc: 12, pc: 15] local: o index: 2 type: java.lang.Object\n" + : null; + if (expectedOutput == null) { + if (compilerOptions.targetJDK == ClassFileConstants.JDK1_5) { + expectedOutput = " // Method descriptor #15 (Z)V\n" + " // Stack: 2, Locals: 4\n" + " public void foo(boolean b);\n" + " 0 iload_1 [b]\n" + " 1 ifeq 15\n" + " 4 iconst_0\n" + - " 5 istore_2\n" + + " 5 istore_2 [i]\n" + " 6 getstatic java.lang.System.out : java.io.PrintStream [16]\n" + " 9 ldc [22]\n" + " 11 invokevirtual java.io.PrintStream.println(java.lang.String) : void [24]\n" + @@ -1961,47 +2005,56 @@ " Local variable table:\n" + " [pc: 0, pc: 31] local: this index: 0 type: X\n" + " [pc: 0, pc: 31] local: b index: 1 type: boolean\n" + - " [pc: 17, pc: 20] local: o index: 2 type: java.lang.Object\n" - : " // Method descriptor #15 (Z)V\n" + - " // Stack: 2, Locals: 5\n" + + " [pc: 6, pc: 15] local: i index: 2 type: int\n" + + " [pc: 17, pc: 20] local: o index: 2 type: java.lang.Object\n"; + } else { + expectedOutput = " // Method descriptor #15 (Z)V\n" + + " // Stack: 2, Locals: 4\n" + " public void foo(boolean b);\n" + " 0 iload_1 [b]\n" + - " 1 ifeq 10\n" + + " 1 ifeq 15\n" + " 4 iconst_0\n" + " 5 istore_2 [i]\n" + - " 6 jsr 23\n" + - " 9 return\n" + - " 10 aconst_null\n" + - " 11 astore_2 [o]\n" + - " 12 goto 6\n" + - " 15 astore 4\n" + - " 17 jsr 23\n" + - " 20 aload 4\n" + - " 22 athrow\n" + - " 23 astore_3\n" + - " 24 getstatic java.lang.System.out : java.io.PrintStream [16]\n" + - " 27 ldc [22]\n" + - " 29 invokevirtual java.io.PrintStream.println(java.lang.String) : void [24]\n" + - " 32 ret 3\n" + + " 6 getstatic java.lang.System.out : java.io.PrintStream [16]\n" + + " 9 ldc [22]\n" + + " 11 invokevirtual java.io.PrintStream.println(java.lang.String) : void [24]\n" + + " 14 return\n" + + " 15 aconst_null\n" + + " 16 astore_2 [o]\n" + + " 17 getstatic java.lang.System.out : java.io.PrintStream [16]\n" + + " 20 ldc [22]\n" + + " 22 invokevirtual java.io.PrintStream.println(java.lang.String) : void [24]\n" + + " 25 return\n" + + " 26 astore_3\n" + + " 27 getstatic java.lang.System.out : java.io.PrintStream [16]\n" + + " 30 ldc [22]\n" + + " 32 invokevirtual java.io.PrintStream.println(java.lang.String) : void [24]\n" + + " 35 aload_3\n" + + " 36 athrow\n" + " Exception Table:\n" + - " [pc: 0, pc: 9] -> 15 when : any\n" + - " [pc: 10, pc: 15] -> 15 when : any\n" + + " [pc: 0, pc: 6] -> 26 when : any\n" + + " [pc: 15, pc: 17] -> 26 when : any\n" + " Line numbers:\n" + " [pc: 0, line: 4]\n" + " [pc: 4, line: 5]\n" + - " [pc: 6, line: 6]\n" + - " [pc: 10, line: 8]\n" + - " [pc: 12, line: 9]\n" + - " [pc: 15, line: 11]\n" + - " [pc: 20, line: 13]\n" + - " [pc: 23, line: 11]\n" + - " [pc: 24, line: 12]\n" + - " [pc: 32, line: 13]\n" + - " Local variable table:\n" + - " [pc: 0, pc: 34] local: this index: 0 type: X\n" + - " [pc: 0, pc: 34] local: b index: 1 type: boolean\n" + - " [pc: 6, pc: 10] local: i index: 2 type: int\n" + - " [pc: 12, pc: 15] local: o index: 2 type: java.lang.Object\n"; + " [pc: 6, line: 12]\n" + + " [pc: 14, line: 6]\n" + + " [pc: 15, line: 8]\n" + + " [pc: 17, line: 12]\n" + + " [pc: 25, line: 9]\n" + + " [pc: 26, line: 11]\n" + + " [pc: 27, line: 12]\n" + + " [pc: 35, line: 13]\n" + + " Local variable table:\n" + + " [pc: 0, pc: 37] local: this index: 0 type: X\n" + + " [pc: 0, pc: 37] local: b index: 1 type: boolean\n" + + " [pc: 6, pc: 15] local: i index: 2 type: int\n" + + " [pc: 17, pc: 26] local: o index: 2 type: java.lang.Object\n" + + " Stack map table: number of frames 2\n" + + " [pc: 15, same]\n" + + " [pc: 26, same_locals_1_stack_item, stack: {java.lang.Throwable}]\n"; + } + } try { File f = new File(OUTPUT_DIR + File.separator + "X.class"); @@ -2044,12 +2097,53 @@ }, "done"); - String expectedOutput = new CompilerOptions(this.getCompilerOptions()).inlineJsrBytecode + CompilerOptions compilerOptions = new CompilerOptions(this.getCompilerOptions()); + String expectedOutput = !compilerOptions.inlineJsrBytecode ? " // Method descriptor #15 (Z)V\n" + + " // Stack: 2, Locals: 5\n" + + " public void foo(boolean b);\n" + + " 0 iconst_0\n" + + " 1 istore_2 [i]\n" + + " 2 jsr 18\n" + + " 5 return\n" + + " 6 astore_2 [e]\n" + + " 7 goto 2\n" + + " 10 astore 4\n" + + " 12 jsr 18\n" + + " 15 aload 4\n" + + " 17 athrow\n" + + " 18 astore_3\n" + + " 19 getstatic java.lang.System.out : java.io.PrintStream [16]\n" + + " 22 ldc [22]\n" + + " 24 invokevirtual java.io.PrintStream.println(java.lang.String) : void [24]\n" + + " 27 ret 3\n" + + " Exception Table:\n" + + " [pc: 0, pc: 5] -> 6 when : java.lang.Exception\n" + + " [pc: 0, pc: 5] -> 10 when : any\n" + + " [pc: 6, pc: 10] -> 10 when : any\n" + + " Line numbers:\n" + + " [pc: 0, line: 4]\n" + + " [pc: 2, line: 5]\n" + + " [pc: 6, line: 6]\n" + + " [pc: 7, line: 7]\n" + + " [pc: 10, line: 8]\n" + + " [pc: 15, line: 10]\n" + + " [pc: 18, line: 8]\n" + + " [pc: 19, line: 9]\n" + + " [pc: 27, line: 10]\n" + + " Local variable table:\n" + + " [pc: 0, pc: 29] local: this index: 0 type: X\n" + + " [pc: 0, pc: 29] local: b index: 1 type: boolean\n" + + " [pc: 2, pc: 6] local: i index: 2 type: int\n" + + " [pc: 7, pc: 10] local: e index: 2 type: java.lang.Exception\n" + : null; + if (expectedOutput == null) { + if (compilerOptions.targetJDK == ClassFileConstants.JDK1_5) { + expectedOutput = " // Method descriptor #15 (Z)V\n" + " // Stack: 2, Locals: 4\n" + " public void foo(boolean b);\n" + " 0 iconst_0\n" + - " 1 istore_2\n" + + " 1 istore_2 [i]\n" + " 2 getstatic java.lang.System.out : java.io.PrintStream [16]\n" + " 5 ldc [22]\n" + " 7 invokevirtual java.io.PrintStream.println(java.lang.String) : void [24]\n" + @@ -2078,44 +2172,53 @@ " Local variable table:\n" + " [pc: 0, pc: 26] local: this index: 0 type: X\n" + " [pc: 0, pc: 26] local: b index: 1 type: boolean\n" + - " [pc: 12, pc: 15] local: e index: 2 type: java.lang.Exception\n" - : " // Method descriptor #15 (Z)V\n" + - " // Stack: 2, Locals: 5\n" + + " [pc: 2, pc: 11] local: i index: 2 type: int\n" + + " [pc: 12, pc: 15] local: e index: 2 type: java.lang.Exception\n"; + } else { + expectedOutput = " // Method descriptor #15 (Z)V\n" + + " // Stack: 2, Locals: 4\n" + " public void foo(boolean b);\n" + " 0 iconst_0\n" + " 1 istore_2 [i]\n" + - " 2 jsr 18\n" + - " 5 return\n" + - " 6 astore_2 [e]\n" + - " 7 goto 2\n" + - " 10 astore 4\n" + - " 12 jsr 18\n" + - " 15 aload 4\n" + - " 17 athrow\n" + - " 18 astore_3\n" + - " 19 getstatic java.lang.System.out : java.io.PrintStream [16]\n" + - " 22 ldc [22]\n" + - " 24 invokevirtual java.io.PrintStream.println(java.lang.String) : void [24]\n" + - " 27 ret 3\n" + + " 2 getstatic java.lang.System.out : java.io.PrintStream [16]\n" + + " 5 ldc [22]\n" + + " 7 invokevirtual java.io.PrintStream.println(java.lang.String) : void [24]\n" + + " 10 return\n" + + " 11 astore_2 [e]\n" + + " 12 getstatic java.lang.System.out : java.io.PrintStream [16]\n" + + " 15 ldc [22]\n" + + " 17 invokevirtual java.io.PrintStream.println(java.lang.String) : void [24]\n" + + " 20 return\n" + + " 21 astore_3\n" + + " 22 getstatic java.lang.System.out : java.io.PrintStream [16]\n" + + " 25 ldc [22]\n" + + " 27 invokevirtual java.io.PrintStream.println(java.lang.String) : void [24]\n" + + " 30 aload_3\n" + + " 31 athrow\n" + " Exception Table:\n" + - " [pc: 0, pc: 5] -> 6 when : java.lang.Exception\n" + - " [pc: 0, pc: 5] -> 10 when : any\n" + - " [pc: 6, pc: 10] -> 10 when : any\n" + + " [pc: 0, pc: 2] -> 11 when : java.lang.Exception\n" + + " [pc: 0, pc: 2] -> 21 when : any\n" + + " [pc: 11, pc: 12] -> 21 when : any\n" + " Line numbers:\n" + " [pc: 0, line: 4]\n" + - " [pc: 2, line: 5]\n" + - " [pc: 6, line: 6]\n" + - " [pc: 7, line: 7]\n" + - " [pc: 10, line: 8]\n" + - " [pc: 15, line: 10]\n" + - " [pc: 18, line: 8]\n" + - " [pc: 19, line: 9]\n" + - " [pc: 27, line: 10]\n" + - " Local variable table:\n" + - " [pc: 0, pc: 29] local: this index: 0 type: X\n" + - " [pc: 0, pc: 29] local: b index: 1 type: boolean\n" + - " [pc: 2, pc: 6] local: i index: 2 type: int\n" + - " [pc: 7, pc: 10] local: e index: 2 type: java.lang.Exception\n"; + " [pc: 2, line: 9]\n" + + " [pc: 10, line: 5]\n" + + " [pc: 11, line: 6]\n" + + " [pc: 12, line: 9]\n" + + " [pc: 20, line: 7]\n" + + " [pc: 21, line: 8]\n" + + " [pc: 22, line: 9]\n" + + " [pc: 30, line: 10]\n" + + " Local variable table:\n" + + " [pc: 0, pc: 32] local: this index: 0 type: X\n" + + " [pc: 0, pc: 32] local: b index: 1 type: boolean\n" + + " [pc: 2, pc: 11] local: i index: 2 type: int\n" + + " [pc: 12, pc: 21] local: e index: 2 type: java.lang.Exception\n" + + " Stack map table: number of frames 2\n" + + " [pc: 11, same_locals_1_stack_item, stack: {java.lang.Exception}]\n" + + " [pc: 21, same_locals_1_stack_item, stack: {java.lang.Throwable}]\n"; + } + } try { File f = new File(OUTPUT_DIR + File.separator + "X.class"); @@ -2319,115 +2422,10 @@ }, "null#inner -> 3#save -> 3"); - String expectedOutput = new CompilerOptions(this.getCompilerOptions()).inlineJsrBytecode + CompilerOptions compilerOptions = new CompilerOptions(this.getCompilerOptions()); + String expectedOutput = !compilerOptions.inlineJsrBytecode ? " // Method descriptor #6 ()V\n" + - " // Stack: 4, Locals: 8\n" + - " public void save();\n" + - " 0 iconst_3\n" + - " 1 istore_1 [a]\n" + - " 2 aconst_null\n" + - " 3 astore_2 [warnings]\n" + - " 4 aconst_null\n" + - " 5 astore_3 [contexts]\n" + - " 6 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + - " 9 aload_2 [warnings]\n" + - " 10 invokevirtual java.io.PrintStream.print(java.lang.Object) : void [21]\n" + - " 13 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + - " 16 new java.lang.StringBuilder [27]\n" + - " 19 dup\n" + - " 20 ldc \"> [29]\n" + - " 22 invokespecial java.lang.StringBuilder(java.lang.String) [31]\n" + - " 25 iload_1 [a]\n" + - " 26 invokevirtual java.lang.StringBuilder.append(int) : java.lang.StringBuilder [34]\n" + - " 29 invokevirtual java.lang.StringBuilder.toString() : java.lang.String [38]\n" + - " 32 invokevirtual java.io.PrintStream.print(java.lang.String) : void [42]\n" + - " 35 iconst_0\n" + - " 36 istore 7 [var]\n" + - " 38 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + - " 41 new java.lang.StringBuilder [27]\n" + - " 44 dup\n" + - " 45 ldc \"> [44]\n" + - " 47 invokespecial java.lang.StringBuilder(java.lang.String) [31]\n" + - " 50 iload_1 [a]\n" + - " 51 invokevirtual java.lang.StringBuilder.append(int) : java.lang.StringBuilder [34]\n" + - " 54 invokevirtual java.lang.StringBuilder.toString() : java.lang.String [38]\n" + - " 57 invokevirtual java.io.PrintStream.println(java.lang.String) : void [46]\n" + - " 60 return\n" + - " 61 astore 4 [npe]\n" + - " 63 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + - " 66 aload_3 [contexts]\n" + - " 67 invokevirtual java.io.PrintStream.print(java.lang.Object) : void [21]\n" + - " 70 goto 13\n" + - " 73 astore 5\n" + - " 75 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + - " 78 new java.lang.StringBuilder [27]\n" + - " 81 dup\n" + - " 82 ldc \"> [29]\n" + - " 84 invokespecial java.lang.StringBuilder(java.lang.String) [31]\n" + - " 87 iload_1 [a]\n" + - " 88 invokevirtual java.lang.StringBuilder.append(int) : java.lang.StringBuilder [34]\n" + - " 91 invokevirtual java.lang.StringBuilder.toString() : java.lang.String [38]\n" + - " 94 invokevirtual java.io.PrintStream.print(java.lang.String) : void [42]\n" + - " 97 aload 5\n" + - " 99 athrow\n" + - " 100 astore_2 [e]\n" + - " 101 goto 35\n" + - " 104 astore 6\n" + - " 106 iconst_0\n" + - " 107 istore 7 [var]\n" + - " 109 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + - " 112 new java.lang.StringBuilder [27]\n" + - " 115 dup\n" + - " 116 ldc \"> [44]\n" + - " 118 invokespecial java.lang.StringBuilder(java.lang.String) [31]\n" + - " 121 iload_1 [a]\n" + - " 122 invokevirtual java.lang.StringBuilder.append(int) : java.lang.StringBuilder [34]\n" + - " 125 invokevirtual java.lang.StringBuilder.toString() : java.lang.String [38]\n" + - " 128 invokevirtual java.io.PrintStream.println(java.lang.String) : void [46]\n" + - " 131 aload 6\n" + - " 133 athrow\n" + - " Exception Table:\n" + - " [pc: 6, pc: 13] -> 61 when : java.lang.NullPointerException\n" + - " [pc: 6, pc: 13] -> 73 when : any\n" + - " [pc: 61, pc: 73] -> 73 when : any\n" + - " [pc: 2, pc: 35] -> 100 when : java.lang.Exception\n" + - " [pc: 61, pc: 100] -> 100 when : java.lang.Exception\n" + - " [pc: 2, pc: 35] -> 104 when : any\n" + - " [pc: 61, pc: 104] -> 104 when : any\n" + - " Line numbers:\n" + - " [pc: 0, line: 3]\n" + - " [pc: 2, line: 5]\n" + - " [pc: 4, line: 6]\n" + - " [pc: 6, line: 8]\n" + - " [pc: 13, line: 14]\n" + - " [pc: 35, line: 19]\n" + - " [pc: 38, line: 20]\n" + - " [pc: 60, line: 9]\n" + - " [pc: 61, line: 10]\n" + - " [pc: 63, line: 11]\n" + - " [pc: 70, line: 12]\n" + - " [pc: 73, line: 13]\n" + - " [pc: 75, line: 14]\n" + - " [pc: 97, line: 15]\n" + - " [pc: 100, line: 16]\n" + - " [pc: 101, line: 17]\n" + - " [pc: 104, line: 18]\n" + - " [pc: 106, line: 19]\n" + - " [pc: 109, line: 20]\n" + - " [pc: 131, line: 21]\n" + - " Local variable table:\n" + - " [pc: 0, pc: 134] local: this index: 0 type: X\n" + - " [pc: 2, pc: 134] local: a index: 1 type: int\n" + - " [pc: 4, pc: 35] local: warnings index: 2 type: java.lang.Object\n" + - " [pc: 61, pc: 100] local: warnings index: 2 type: java.lang.Object\n" + - " [pc: 6, pc: 35] local: contexts index: 3 type: java.lang.Object\n" + - " [pc: 61, pc: 100] local: contexts index: 3 type: java.lang.Object\n" + - " [pc: 63, pc: 73] local: npe index: 4 type: java.lang.NullPointerException\n" + - " [pc: 101, pc: 104] local: e index: 2 type: java.lang.Exception\n" + - " [pc: 38, pc: 60] local: var index: 7 type: int\n" + - " [pc: 109, pc: 131] local: var index: 7 type: int\n" - : " // Method descriptor #6 ()V\n" + - " // Stack: 4, Locals: 10\n" + + " // Stack: 4, Locals: 10\n" + " public void save();\n" + " 0 iconst_3\n" + " 1 istore_1 [a]\n" + @@ -2517,7 +2515,267 @@ " [pc: 6, pc: 66] local: contexts index: 3 type: java.lang.Object\n" + " [pc: 22, pc: 32] local: npe index: 4 type: java.lang.NullPointerException\n" + " [pc: 67, pc: 70] local: e index: 2 type: java.lang.Exception\n" + - " [pc: 83, pc: 105] local: var index: 9 type: int\n"; + " [pc: 83, pc: 105] local: var index: 9 type: int\n" + : null; + + if (expectedOutput == null) { + if (compilerOptions.targetJDK == ClassFileConstants.JDK1_5) { + expectedOutput = " // Method descriptor #6 ()V\n" + + " // Stack: 4, Locals: 8\n" + + " public void save();\n" + + " 0 iconst_3\n" + + " 1 istore_1 [a]\n" + + " 2 aconst_null\n" + + " 3 astore_2 [warnings]\n" + + " 4 aconst_null\n" + + " 5 astore_3 [contexts]\n" + + " 6 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + + " 9 aload_2 [warnings]\n" + + " 10 invokevirtual java.io.PrintStream.print(java.lang.Object) : void [21]\n" + + " 13 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + + " 16 new java.lang.StringBuilder [27]\n" + + " 19 dup\n" + + " 20 ldc \"> [29]\n" + + " 22 invokespecial java.lang.StringBuilder(java.lang.String) [31]\n" + + " 25 iload_1 [a]\n" + + " 26 invokevirtual java.lang.StringBuilder.append(int) : java.lang.StringBuilder [34]\n" + + " 29 invokevirtual java.lang.StringBuilder.toString() : java.lang.String [38]\n" + + " 32 invokevirtual java.io.PrintStream.print(java.lang.String) : void [42]\n" + + " 35 iconst_0\n" + + " 36 istore 7 [var]\n" + + " 38 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + + " 41 new java.lang.StringBuilder [27]\n" + + " 44 dup\n" + + " 45 ldc \"> [44]\n" + + " 47 invokespecial java.lang.StringBuilder(java.lang.String) [31]\n" + + " 50 iload_1 [a]\n" + + " 51 invokevirtual java.lang.StringBuilder.append(int) : java.lang.StringBuilder [34]\n" + + " 54 invokevirtual java.lang.StringBuilder.toString() : java.lang.String [38]\n" + + " 57 invokevirtual java.io.PrintStream.println(java.lang.String) : void [46]\n" + + " 60 return\n" + + " 61 astore 4 [npe]\n" + + " 63 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + + " 66 aload_3 [contexts]\n" + + " 67 invokevirtual java.io.PrintStream.print(java.lang.Object) : void [21]\n" + + " 70 goto 13\n" + + " 73 astore 5\n" + + " 75 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + + " 78 new java.lang.StringBuilder [27]\n" + + " 81 dup\n" + + " 82 ldc \"> [29]\n" + + " 84 invokespecial java.lang.StringBuilder(java.lang.String) [31]\n" + + " 87 iload_1 [a]\n" + + " 88 invokevirtual java.lang.StringBuilder.append(int) : java.lang.StringBuilder [34]\n" + + " 91 invokevirtual java.lang.StringBuilder.toString() : java.lang.String [38]\n" + + " 94 invokevirtual java.io.PrintStream.print(java.lang.String) : void [42]\n" + + " 97 aload 5\n" + + " 99 athrow\n" + + " 100 astore_2 [e]\n" + + " 101 goto 35\n" + + " 104 astore 6\n" + + " 106 iconst_0\n" + + " 107 istore 7 [var]\n" + + " 109 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + + " 112 new java.lang.StringBuilder [27]\n" + + " 115 dup\n" + + " 116 ldc \"> [44]\n" + + " 118 invokespecial java.lang.StringBuilder(java.lang.String) [31]\n" + + " 121 iload_1 [a]\n" + + " 122 invokevirtual java.lang.StringBuilder.append(int) : java.lang.StringBuilder [34]\n" + + " 125 invokevirtual java.lang.StringBuilder.toString() : java.lang.String [38]\n" + + " 128 invokevirtual java.io.PrintStream.println(java.lang.String) : void [46]\n" + + " 131 aload 6\n" + + " 133 athrow\n" + + " Exception Table:\n" + + " [pc: 6, pc: 13] -> 61 when : java.lang.NullPointerException\n" + + " [pc: 6, pc: 13] -> 73 when : any\n" + + " [pc: 61, pc: 73] -> 73 when : any\n" + + " [pc: 2, pc: 35] -> 100 when : java.lang.Exception\n" + + " [pc: 61, pc: 100] -> 100 when : java.lang.Exception\n" + + " [pc: 2, pc: 35] -> 104 when : any\n" + + " [pc: 61, pc: 104] -> 104 when : any\n" + + " Line numbers:\n" + + " [pc: 0, line: 3]\n" + + " [pc: 2, line: 5]\n" + + " [pc: 4, line: 6]\n" + + " [pc: 6, line: 8]\n" + + " [pc: 13, line: 14]\n" + + " [pc: 35, line: 19]\n" + + " [pc: 38, line: 20]\n" + + " [pc: 60, line: 9]\n" + + " [pc: 61, line: 10]\n" + + " [pc: 63, line: 11]\n" + + " [pc: 70, line: 12]\n" + + " [pc: 73, line: 13]\n" + + " [pc: 75, line: 14]\n" + + " [pc: 97, line: 15]\n" + + " [pc: 100, line: 16]\n" + + " [pc: 101, line: 17]\n" + + " [pc: 104, line: 18]\n" + + " [pc: 106, line: 19]\n" + + " [pc: 109, line: 20]\n" + + " [pc: 131, line: 21]\n" + + " Local variable table:\n" + + " [pc: 0, pc: 134] local: this index: 0 type: X\n" + + " [pc: 2, pc: 134] local: a index: 1 type: int\n" + + " [pc: 4, pc: 100] local: warnings index: 2 type: java.lang.Object\n" + + " [pc: 6, pc: 100] local: contexts index: 3 type: java.lang.Object\n" + + " [pc: 63, pc: 73] local: npe index: 4 type: java.lang.NullPointerException\n" + + " [pc: 101, pc: 104] local: e index: 2 type: java.lang.Exception\n" + + " [pc: 38, pc: 60] local: var index: 7 type: int\n" + + " [pc: 109, pc: 131] local: var index: 7 type: int\n"; + } else { + expectedOutput = " // Method descriptor #6 ()V\n" + + " // Stack: 4, Locals: 8\n" + + " public void save();\n" + + " 0 iconst_3\n" + + " 1 istore_1 [a]\n" + + " 2 aconst_null\n" + + " 3 astore_2 [warnings]\n" + + " 4 aconst_null\n" + + " 5 astore_3 [contexts]\n" + + " 6 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + + " 9 aload_2 [warnings]\n" + + " 10 invokevirtual java.io.PrintStream.print(java.lang.Object) : void [21]\n" + + " 13 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + + " 16 new java.lang.StringBuilder [27]\n" + + " 19 dup\n" + + " 20 ldc \"> [29]\n" + + " 22 invokespecial java.lang.StringBuilder(java.lang.String) [31]\n" + + " 25 iload_1 [a]\n" + + " 26 invokevirtual java.lang.StringBuilder.append(int) : java.lang.StringBuilder [34]\n" + + " 29 invokevirtual java.lang.StringBuilder.toString() : java.lang.String [38]\n" + + " 32 invokevirtual java.io.PrintStream.print(java.lang.String) : void [42]\n" + + " 35 iconst_0\n" + + " 36 istore 7 [var]\n" + + " 38 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + + " 41 new java.lang.StringBuilder [27]\n" + + " 44 dup\n" + + " 45 ldc \"> [44]\n" + + " 47 invokespecial java.lang.StringBuilder(java.lang.String) [31]\n" + + " 50 iload_1 [a]\n" + + " 51 invokevirtual java.lang.StringBuilder.append(int) : java.lang.StringBuilder [34]\n" + + " 54 invokevirtual java.lang.StringBuilder.toString() : java.lang.String [38]\n" + + " 57 invokevirtual java.io.PrintStream.println(java.lang.String) : void [46]\n" + + " 60 return\n" + + " 61 astore 4 [npe]\n" + + " 63 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + + " 66 aload_3 [contexts]\n" + + " 67 invokevirtual java.io.PrintStream.print(java.lang.Object) : void [21]\n" + + " 70 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + + " 73 new java.lang.StringBuilder [27]\n" + + " 76 dup\n" + + " 77 ldc \"> [29]\n" + + " 79 invokespecial java.lang.StringBuilder(java.lang.String) [31]\n" + + " 82 iload_1 [a]\n" + + " 83 invokevirtual java.lang.StringBuilder.append(int) : java.lang.StringBuilder [34]\n" + + " 86 invokevirtual java.lang.StringBuilder.toString() : java.lang.String [38]\n" + + " 89 invokevirtual java.io.PrintStream.print(java.lang.String) : void [42]\n" + + " 92 iconst_0\n" + + " 93 istore 7 [var]\n" + + " 95 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + + " 98 new java.lang.StringBuilder [27]\n" + + " 101 dup\n" + + " 102 ldc \"> [44]\n" + + " 104 invokespecial java.lang.StringBuilder(java.lang.String) [31]\n" + + " 107 iload_1 [a]\n" + + " 108 invokevirtual java.lang.StringBuilder.append(int) : java.lang.StringBuilder [34]\n" + + " 111 invokevirtual java.lang.StringBuilder.toString() : java.lang.String [38]\n" + + " 114 invokevirtual java.io.PrintStream.println(java.lang.String) : void [46]\n" + + " 117 return\n" + + " 118 astore 5\n" + + " 120 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + + " 123 new java.lang.StringBuilder [27]\n" + + " 126 dup\n" + + " 127 ldc \"> [29]\n" + + " 129 invokespecial java.lang.StringBuilder(java.lang.String) [31]\n" + + " 132 iload_1 [a]\n" + + " 133 invokevirtual java.lang.StringBuilder.append(int) : java.lang.StringBuilder [34]\n" + + " 136 invokevirtual java.lang.StringBuilder.toString() : java.lang.String [38]\n" + + " 139 invokevirtual java.io.PrintStream.print(java.lang.String) : void [42]\n" + + " 142 aload 5\n" + + " 144 athrow\n" + + " 145 astore_2 [e]\n" + + " 146 iconst_0\n" + + " 147 istore 7 [var]\n" + + " 149 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + + " 152 new java.lang.StringBuilder [27]\n" + + " 155 dup\n" + + " 156 ldc \"> [44]\n" + + " 158 invokespecial java.lang.StringBuilder(java.lang.String) [31]\n" + + " 161 iload_1 [a]\n" + + " 162 invokevirtual java.lang.StringBuilder.append(int) : java.lang.StringBuilder [34]\n" + + " 165 invokevirtual java.lang.StringBuilder.toString() : java.lang.String [38]\n" + + " 168 invokevirtual java.io.PrintStream.println(java.lang.String) : void [46]\n" + + " 171 return\n" + + " 172 astore 6\n" + + " 174 iconst_0\n" + + " 175 istore 7 [var]\n" + + " 177 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + + " 180 new java.lang.StringBuilder [27]\n" + + " 183 dup\n" + + " 184 ldc \"> [44]\n" + + " 186 invokespecial java.lang.StringBuilder(java.lang.String) [31]\n" + + " 189 iload_1 [a]\n" + + " 190 invokevirtual java.lang.StringBuilder.append(int) : java.lang.StringBuilder [34]\n" + + " 193 invokevirtual java.lang.StringBuilder.toString() : java.lang.String [38]\n" + + " 196 invokevirtual java.io.PrintStream.println(java.lang.String) : void [46]\n" + + " 199 aload 6\n" + + " 201 athrow\n" + + " Exception Table:\n" + + " [pc: 6, pc: 13] -> 61 when : java.lang.NullPointerException\n" + + " [pc: 6, pc: 13] -> 118 when : any\n" + + " [pc: 61, pc: 70] -> 118 when : any\n" + + " [pc: 2, pc: 35] -> 145 when : java.lang.Exception\n" + + " [pc: 61, pc: 92] -> 145 when : java.lang.Exception\n" + + " [pc: 118, pc: 145] -> 145 when : java.lang.Exception\n" + + " [pc: 2, pc: 35] -> 172 when : any\n" + + " [pc: 61, pc: 92] -> 172 when : any\n" + + " [pc: 118, pc: 146] -> 172 when : any\n" + + " Line numbers:\n" + + " [pc: 0, line: 3]\n" + + " [pc: 2, line: 5]\n" + + " [pc: 4, line: 6]\n" + + " [pc: 6, line: 8]\n" + + " [pc: 13, line: 14]\n" + + " [pc: 35, line: 19]\n" + + " [pc: 38, line: 20]\n" + + " [pc: 60, line: 9]\n" + + " [pc: 61, line: 10]\n" + + " [pc: 63, line: 11]\n" + + " [pc: 70, line: 14]\n" + + " [pc: 92, line: 19]\n" + + " [pc: 95, line: 20]\n" + + " [pc: 117, line: 12]\n" + + " [pc: 118, line: 13]\n" + + " [pc: 120, line: 14]\n" + + " [pc: 142, line: 15]\n" + + " [pc: 145, line: 16]\n" + + " [pc: 146, line: 19]\n" + + " [pc: 149, line: 20]\n" + + " [pc: 171, line: 17]\n" + + " [pc: 172, line: 18]\n" + + " [pc: 174, line: 19]\n" + + " [pc: 177, line: 20]\n" + + " [pc: 199, line: 21]\n" + + " Local variable table:\n" + + " [pc: 0, pc: 202] local: this index: 0 type: X\n" + + " [pc: 2, pc: 202] local: a index: 1 type: int\n" + + " [pc: 4, pc: 145] local: warnings index: 2 type: java.lang.Object\n" + + " [pc: 6, pc: 145] local: contexts index: 3 type: java.lang.Object\n" + + " [pc: 63, pc: 118] local: npe index: 4 type: java.lang.NullPointerException\n" + + " [pc: 146, pc: 172] local: e index: 2 type: java.lang.Exception\n" + + " [pc: 38, pc: 60] local: var index: 7 type: int\n" + + " [pc: 95, pc: 117] local: var index: 7 type: int\n" + + " [pc: 149, pc: 171] local: var index: 7 type: int\n" + + " [pc: 177, pc: 199] local: var index: 7 type: int\n" + + " Stack map table: number of frames 4\n" + + " [pc: 61, full, stack: {java.lang.NullPointerException}, locals: {X, int, java.lang.Object, java.lang.Object}]\n" + + " [pc: 118, same_locals_1_stack_item, stack: {java.lang.Throwable}]\n" + + " [pc: 145, full, stack: {java.lang.Exception}, locals: {X, int}]\n" + + " [pc: 172, same_locals_1_stack_item, stack: {java.lang.Throwable}]\n"; + } + } try { File f = new File(OUTPUT_DIR + File.separator + "X.class"); @@ -2559,36 +2817,9 @@ }, "SUCCESS"); - String expectedOutput = new CompilerOptions(this.getCompilerOptions()).inlineJsrBytecode - ? " // Method descriptor #19 ()Ljava/lang/Object;\n" + - " // Stack: 2, Locals: 2\n" + - " static java.lang.Object foo();\n" + - " 0 getstatic java.lang.System.out : java.io.PrintStream [22]\n" + - " 3 ldc [28]\n" + - " 5 invokevirtual java.io.PrintStream.println(java.lang.String) : void [30]\n" + - " 8 aconst_null\n" + - " 9 areturn\n" + - " 10 astore_0 [e]\n" + - " 11 goto 0\n" + - " 14 astore_1\n" + - " 15 getstatic java.lang.System.out : java.io.PrintStream [22]\n" + - " 18 ldc [28]\n" + - " 20 invokevirtual java.io.PrintStream.println(java.lang.String) : void [30]\n" + - " 23 aload_1\n" + - " 24 athrow\n" + - " Exception Table:\n" + - " [pc: 10, pc: 14] -> 14 when : any\n" + - " Line numbers:\n" + - " [pc: 0, line: 11]\n" + - " [pc: 8, line: 7]\n" + - " [pc: 10, line: 8]\n" + - " [pc: 11, line: 9]\n" + - " [pc: 14, line: 10]\n" + - " [pc: 15, line: 11]\n" + - " [pc: 23, line: 12]\n" + - " Local variable table:\n" + - " [pc: 11, pc: 14] local: e index: 0 type: java.lang.Exception\n" - : " // Method descriptor #19 ()Ljava/lang/Object;\n" + + CompilerOptions compilerOptions = new CompilerOptions(this.getCompilerOptions()); + String expectedOutput = !compilerOptions.inlineJsrBytecode ? + " // Method descriptor #19 ()Ljava/lang/Object;\n" + " // Stack: 2, Locals: 3\n" + " static java.lang.Object foo();\n" + " 0 jsr 15\n" + @@ -2619,9 +2850,79 @@ " [pc: 16, line: 11]\n" + " [pc: 24, line: 12]\n" + " Local variable table:\n" + - " [pc: 6, pc: 9] local: e index: 0 type: java.lang.Exception\n"; + " [pc: 6, pc: 9] local: e index: 0 type: java.lang.Exception\n" + : null; - try { + if (expectedOutput == null) { + if (compilerOptions.targetJDK == ClassFileConstants.JDK1_5) { + expectedOutput = " // Method descriptor #19 ()Ljava/lang/Object;\n" + + " // Stack: 2, Locals: 2\n" + + " static java.lang.Object foo();\n" + + " 0 getstatic java.lang.System.out : java.io.PrintStream [22]\n" + + " 3 ldc [28]\n" + + " 5 invokevirtual java.io.PrintStream.println(java.lang.String) : void [30]\n" + + " 8 aconst_null\n" + + " 9 areturn\n" + + " 10 astore_0 [e]\n" + + " 11 goto 0\n" + + " 14 astore_1\n" + + " 15 getstatic java.lang.System.out : java.io.PrintStream [22]\n" + + " 18 ldc [28]\n" + + " 20 invokevirtual java.io.PrintStream.println(java.lang.String) : void [30]\n" + + " 23 aload_1\n" + + " 24 athrow\n" + + " Exception Table:\n" + + " [pc: 10, pc: 14] -> 14 when : any\n" + + " Line numbers:\n" + + " [pc: 0, line: 11]\n" + + " [pc: 8, line: 7]\n" + + " [pc: 10, line: 8]\n" + + " [pc: 11, line: 9]\n" + + " [pc: 14, line: 10]\n" + + " [pc: 15, line: 11]\n" + + " [pc: 23, line: 12]\n" + + " Local variable table:\n" + + " [pc: 11, pc: 14] local: e index: 0 type: java.lang.Exception\n"; + } else { + expectedOutput = " // Method descriptor #19 ()Ljava/lang/Object;\n" + + " // Stack: 2, Locals: 2\n" + + " static java.lang.Object foo();\n" + + " 0 getstatic java.lang.System.out : java.io.PrintStream [22]\n" + + " 3 ldc [28]\n" + + " 5 invokevirtual java.io.PrintStream.println(java.lang.String) : void [30]\n" + + " 8 aconst_null\n" + + " 9 areturn\n" + + " 10 astore_0 [e]\n" + + " 11 getstatic java.lang.System.out : java.io.PrintStream [22]\n" + + " 14 ldc [28]\n" + + " 16 invokevirtual java.io.PrintStream.println(java.lang.String) : void [30]\n" + + " 19 aconst_null\n" + + " 20 areturn\n" + + " 21 astore_1\n" + + " 22 getstatic java.lang.System.out : java.io.PrintStream [22]\n" + + " 25 ldc [28]\n" + + " 27 invokevirtual java.io.PrintStream.println(java.lang.String) : void [30]\n" + + " 30 aload_1\n" + + " 31 athrow\n" + + " Exception Table:\n" + + " [pc: 10, pc: 11] -> 21 when : any\n" + + " Line numbers:\n" + + " [pc: 0, line: 11]\n" + + " [pc: 8, line: 7]\n" + + " [pc: 10, line: 8]\n" + + " [pc: 11, line: 11]\n" + + " [pc: 19, line: 9]\n" + + " [pc: 21, line: 10]\n" + + " [pc: 22, line: 11]\n" + + " [pc: 30, line: 12]\n" + + " Local variable table:\n" + + " [pc: 11, pc: 21] local: e index: 0 type: java.lang.Exception\n" + + " Stack map table: number of frames 2\n" + + " [pc: 10, same_locals_1_stack_item, stack: {java.lang.Exception}]\n" + + " [pc: 21, same_locals_1_stack_item, stack: {java.lang.Throwable}]\n"; + } + } + try { File f = new File(OUTPUT_DIR + File.separator + "X.class"); byte[] classFileBytes = org.eclipse.jdt.internal.compiler.util.Util.getFileByteContent(f); ClassFileBytesDisassembler disassembler = ToolFactory.createDefaultClassFileBytesDisassembler(); @@ -2679,8 +2980,92 @@ }, "[try]null[finally][caught npe]"); - String expectedOutput = new CompilerOptions(this.getCompilerOptions()).inlineJsrBytecode + CompilerOptions compilerOptions = new CompilerOptions(this.getCompilerOptions()); + String expectedOutput = !compilerOptions.inlineJsrBytecode ? " // Method descriptor #6 ()V\n" + + " // Stack: 2, Locals: 8\n" + + " public void save();\n" + + " 0 aconst_null\n" + + " 1 astore_1 [warnings]\n" + + " 2 aconst_null\n" + + " 3 astore_2 [contexts]\n" + + " 4 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + + " 7 ldc [21]\n" + + " 9 invokevirtual java.io.PrintStream.print(java.lang.String) : void [23]\n" + + " 12 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + + " 15 aload_1 [warnings]\n" + + " 16 invokevirtual java.io.PrintStream.print(java.lang.Object) : void [29]\n" + + " 19 jsr 62\n" + + " 22 return\n" + + " 23 astore_3 [npe]\n" + + " 24 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + + " 27 ldc [32]\n" + + " 29 invokevirtual java.io.PrintStream.print(java.lang.String) : void [23]\n" + + " 32 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + + " 35 aload_2 [contexts]\n" + + " 36 invokevirtual java.io.PrintStream.print(java.lang.Object) : void [29]\n" + + " 39 goto 19\n" + + " 42 astore_1 [e]\n" + + " 43 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + + " 46 ldc [34]\n" + + " 48 invokevirtual java.io.PrintStream.print(java.lang.String) : void [23]\n" + + " 51 goto 19\n" + + " 54 astore 5\n" + + " 56 jsr 62\n" + + " 59 aload 5\n" + + " 61 athrow\n" + + " 62 astore 4\n" + + " 64 iconst_0\n" + + " 65 istore 6 [var]\n" + + " 67 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + + " 70 ldc [36]\n" + + " 72 invokevirtual java.io.PrintStream.print(java.lang.String) : void [23]\n" + + " 75 aconst_null\n" + + " 76 astore 7 [o]\n" + + " 78 aload 7 [o]\n" + + " 80 invokevirtual java.lang.Object.toString() : java.lang.String [38]\n" + + " 83 pop\n" + + " 84 ret 4\n" + + " Exception Table:\n" + + " [pc: 4, pc: 19] -> 23 when : java.lang.NullPointerException\n" + + " [pc: 0, pc: 22] -> 42 when : java.lang.Exception\n" + + " [pc: 23, pc: 42] -> 42 when : java.lang.Exception\n" + + " [pc: 0, pc: 22] -> 54 when : any\n" + + " [pc: 23, pc: 54] -> 54 when : any\n" + + " Line numbers:\n" + + " [pc: 0, line: 4]\n" + + " [pc: 2, line: 5]\n" + + " [pc: 4, line: 7]\n" + + " [pc: 12, line: 8]\n" + + " [pc: 19, line: 9]\n" + + " [pc: 23, line: 10]\n" + + " [pc: 24, line: 11]\n" + + " [pc: 32, line: 12]\n" + + " [pc: 39, line: 13]\n" + + " [pc: 42, line: 15]\n" + + " [pc: 43, line: 16]\n" + + " [pc: 51, line: 17]\n" + + " [pc: 54, line: 18]\n" + + " [pc: 59, line: 23]\n" + + " [pc: 62, line: 18]\n" + + " [pc: 64, line: 19]\n" + + " [pc: 67, line: 20]\n" + + " [pc: 75, line: 21]\n" + + " [pc: 78, line: 22]\n" + + " [pc: 84, line: 23]\n" + + " Local variable table:\n" + + " [pc: 0, pc: 86] local: this index: 0 type: X\n" + + " [pc: 2, pc: 42] local: warnings index: 1 type: java.lang.Object\n" + + " [pc: 4, pc: 42] local: contexts index: 2 type: java.lang.Object\n" + + " [pc: 24, pc: 42] local: npe index: 3 type: java.lang.NullPointerException\n" + + " [pc: 43, pc: 54] local: e index: 1 type: java.lang.Exception\n" + + " [pc: 67, pc: 84] local: var index: 6 type: int\n" + + " [pc: 78, pc: 84] local: o index: 7 type: java.lang.Object\n" + : null; + + if (expectedOutput == null) { + if (compilerOptions.targetJDK == ClassFileConstants.JDK1_5) { + expectedOutput = " // Method descriptor #6 ()V\n" + " // Stack: 2, Locals: 7\n" + " public void save();\n" + " 0 aconst_null\n" + @@ -2761,95 +3146,143 @@ " [pc: 93, line: 23]\n" + " Local variable table:\n" + " [pc: 0, pc: 96] local: this index: 0 type: X\n" + - " [pc: 2, pc: 19] local: warnings index: 1 type: java.lang.Object\n" + - " [pc: 40, pc: 59] local: warnings index: 1 type: java.lang.Object\n" + - " [pc: 4, pc: 19] local: contexts index: 2 type: java.lang.Object\n" + - " [pc: 40, pc: 59] local: contexts index: 2 type: java.lang.Object\n" + + " [pc: 2, pc: 59] local: warnings index: 1 type: java.lang.Object\n" + + " [pc: 4, pc: 59] local: contexts index: 2 type: java.lang.Object\n" + " [pc: 41, pc: 59] local: npe index: 3 type: java.lang.NullPointerException\n" + " [pc: 60, pc: 71] local: e index: 1 type: java.lang.Exception\n" + " [pc: 22, pc: 39] local: var index: 5 type: int\n" + " [pc: 76, pc: 93] local: var index: 5 type: int\n" + " [pc: 33, pc: 39] local: o index: 6 type: java.lang.Object\n" + - " [pc: 87, pc: 93] local: o index: 6 type: java.lang.Object\n" - : " // Method descriptor #6 ()V\n" + - " // Stack: 2, Locals: 8\n" + + " [pc: 87, pc: 93] local: o index: 6 type: java.lang.Object\n"; + } else { + expectedOutput = " // Method descriptor #6 ()V\n" + + " // Stack: 2, Locals: 7\n" + " public void save();\n" + - " 0 aconst_null\n" + - " 1 astore_1 [warnings]\n" + - " 2 aconst_null\n" + - " 3 astore_2 [contexts]\n" + - " 4 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + - " 7 ldc [21]\n" + - " 9 invokevirtual java.io.PrintStream.print(java.lang.String) : void [23]\n" + - " 12 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + - " 15 aload_1 [warnings]\n" + - " 16 invokevirtual java.io.PrintStream.print(java.lang.Object) : void [29]\n" + - " 19 jsr 62\n" + - " 22 return\n" + - " 23 astore_3 [npe]\n" + - " 24 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + - " 27 ldc [32]\n" + - " 29 invokevirtual java.io.PrintStream.print(java.lang.String) : void [23]\n" + - " 32 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + - " 35 aload_2 [contexts]\n" + - " 36 invokevirtual java.io.PrintStream.print(java.lang.Object) : void [29]\n" + - " 39 goto 19\n" + - " 42 astore_1 [e]\n" + - " 43 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + - " 46 ldc [34]\n" + - " 48 invokevirtual java.io.PrintStream.print(java.lang.String) : void [23]\n" + - " 51 goto 19\n" + - " 54 astore 5\n" + - " 56 jsr 62\n" + - " 59 aload 5\n" + - " 61 athrow\n" + - " 62 astore 4\n" + - " 64 iconst_0\n" + - " 65 istore 6 [var]\n" + - " 67 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + - " 70 ldc [36]\n" + - " 72 invokevirtual java.io.PrintStream.print(java.lang.String) : void [23]\n" + - " 75 aconst_null\n" + - " 76 astore 7 [o]\n" + - " 78 aload 7 [o]\n" + - " 80 invokevirtual java.lang.Object.toString() : java.lang.String [38]\n" + - " 83 pop\n" + - " 84 ret 4\n" + + " 0 aconst_null\n" + + " 1 astore_1 [warnings]\n" + + " 2 aconst_null\n" + + " 3 astore_2 [contexts]\n" + + " 4 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + + " 7 ldc [21]\n" + + " 9 invokevirtual java.io.PrintStream.print(java.lang.String) : void [23]\n" + + " 12 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + + " 15 aload_1 [warnings]\n" + + " 16 invokevirtual java.io.PrintStream.print(java.lang.Object) : void [29]\n" + + " 19 iconst_0\n" + + " 20 istore 5 [var]\n" + + " 22 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + + " 25 ldc [32]\n" + + " 27 invokevirtual java.io.PrintStream.print(java.lang.String) : void [23]\n" + + " 30 aconst_null\n" + + " 31 astore 6 [o]\n" + + " 33 aload 6 [o]\n" + + " 35 invokevirtual java.lang.Object.toString() : java.lang.String [34]\n" + + " 38 pop\n" + + " 39 return\n" + + " 40 astore_3 [npe]\n" + + " 41 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + + " 44 ldc [38]\n" + + " 46 invokevirtual java.io.PrintStream.print(java.lang.String) : void [23]\n" + + " 49 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + + " 52 aload_2 [contexts]\n" + + " 53 invokevirtual java.io.PrintStream.print(java.lang.Object) : void [29]\n" + + " 56 iconst_0\n" + + " 57 istore 5 [var]\n" + + " 59 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + + " 62 ldc [32]\n" + + " 64 invokevirtual java.io.PrintStream.print(java.lang.String) : void [23]\n" + + " 67 aconst_null\n" + + " 68 astore 6 [o]\n" + + " 70 aload 6 [o]\n" + + " 72 invokevirtual java.lang.Object.toString() : java.lang.String [34]\n" + + " 75 pop\n" + + " 76 return\n" + + " 77 astore_1 [e]\n" + + " 78 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + + " 81 ldc [40]\n" + + " 83 invokevirtual java.io.PrintStream.print(java.lang.String) : void [23]\n" + + " 86 iconst_0\n" + + " 87 istore 5 [var]\n" + + " 89 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + + " 92 ldc [32]\n" + + " 94 invokevirtual java.io.PrintStream.print(java.lang.String) : void [23]\n" + + " 97 aconst_null\n" + + " 98 astore 6 [o]\n" + + " 100 aload 6 [o]\n" + + " 102 invokevirtual java.lang.Object.toString() : java.lang.String [34]\n" + + " 105 pop\n" + + " 106 return\n" + + " 107 astore 4\n" + + " 109 iconst_0\n" + + " 110 istore 5 [var]\n" + + " 112 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + + " 115 ldc [32]\n" + + " 117 invokevirtual java.io.PrintStream.print(java.lang.String) : void [23]\n" + + " 120 aconst_null\n" + + " 121 astore 6 [o]\n" + + " 123 aload 6 [o]\n" + + " 125 invokevirtual java.lang.Object.toString() : java.lang.String [34]\n" + + " 128 pop\n" + + " 129 aload 4\n" + + " 131 athrow\n" + " Exception Table:\n" + - " [pc: 4, pc: 19] -> 23 when : java.lang.NullPointerException\n" + - " [pc: 0, pc: 22] -> 42 when : java.lang.Exception\n" + - " [pc: 23, pc: 42] -> 42 when : java.lang.Exception\n" + - " [pc: 0, pc: 22] -> 54 when : any\n" + - " [pc: 23, pc: 54] -> 54 when : any\n" + + " [pc: 4, pc: 19] -> 40 when : java.lang.NullPointerException\n" + + " [pc: 0, pc: 19] -> 77 when : java.lang.Exception\n" + + " [pc: 40, pc: 56] -> 77 when : java.lang.Exception\n" + + " [pc: 0, pc: 19] -> 107 when : any\n" + + " [pc: 40, pc: 56] -> 107 when : any\n" + + " [pc: 77, pc: 86] -> 107 when : any\n" + " Line numbers:\n" + " [pc: 0, line: 4]\n" + " [pc: 2, line: 5]\n" + " [pc: 4, line: 7]\n" + " [pc: 12, line: 8]\n" + - " [pc: 19, line: 9]\n" + - " [pc: 23, line: 10]\n" + - " [pc: 24, line: 11]\n" + - " [pc: 32, line: 12]\n" + - " [pc: 39, line: 13]\n" + - " [pc: 42, line: 15]\n" + - " [pc: 43, line: 16]\n" + - " [pc: 51, line: 17]\n" + - " [pc: 54, line: 18]\n" + - " [pc: 59, line: 23]\n" + - " [pc: 62, line: 18]\n" + - " [pc: 64, line: 19]\n" + - " [pc: 67, line: 20]\n" + - " [pc: 75, line: 21]\n" + - " [pc: 78, line: 22]\n" + - " [pc: 84, line: 23]\n" + - " Local variable table:\n" + - " [pc: 0, pc: 86] local: this index: 0 type: X\n" + - " [pc: 2, pc: 42] local: warnings index: 1 type: java.lang.Object\n" + - " [pc: 4, pc: 42] local: contexts index: 2 type: java.lang.Object\n" + - " [pc: 24, pc: 42] local: npe index: 3 type: java.lang.NullPointerException\n" + - " [pc: 43, pc: 54] local: e index: 1 type: java.lang.Exception\n" + - " [pc: 67, pc: 84] local: var index: 6 type: int\n" + - " [pc: 78, pc: 84] local: o index: 7 type: java.lang.Object\n"; + " [pc: 19, line: 19]\n" + + " [pc: 22, line: 20]\n" + + " [pc: 30, line: 21]\n" + + " [pc: 33, line: 22]\n" + + " [pc: 39, line: 9]\n" + + " [pc: 40, line: 10]\n" + + " [pc: 41, line: 11]\n" + + " [pc: 49, line: 12]\n" + + " [pc: 56, line: 19]\n" + + " [pc: 59, line: 20]\n" + + " [pc: 67, line: 21]\n" + + " [pc: 70, line: 22]\n" + + " [pc: 76, line: 13]\n" + + " [pc: 77, line: 15]\n" + + " [pc: 78, line: 16]\n" + + " [pc: 86, line: 19]\n" + + " [pc: 89, line: 20]\n" + + " [pc: 97, line: 21]\n" + + " [pc: 100, line: 22]\n" + + " [pc: 106, line: 17]\n" + + " [pc: 107, line: 18]\n" + + " [pc: 109, line: 19]\n" + + " [pc: 112, line: 20]\n" + + " [pc: 120, line: 21]\n" + + " [pc: 123, line: 22]\n" + + " [pc: 129, line: 23]\n" + + " Local variable table:\n" + + " [pc: 0, pc: 132] local: this index: 0 type: X\n" + + " [pc: 2, pc: 77] local: warnings index: 1 type: java.lang.Object\n" + + " [pc: 4, pc: 77] local: contexts index: 2 type: java.lang.Object\n" + + " [pc: 41, pc: 77] local: npe index: 3 type: java.lang.NullPointerException\n" + + " [pc: 78, pc: 107] local: e index: 1 type: java.lang.Exception\n" + + " [pc: 22, pc: 39] local: var index: 5 type: int\n" + + " [pc: 59, pc: 76] local: var index: 5 type: int\n" + + " [pc: 89, pc: 106] local: var index: 5 type: int\n" + + " [pc: 112, pc: 129] local: var index: 5 type: int\n" + + " [pc: 33, pc: 39] local: o index: 6 type: java.lang.Object\n" + + " [pc: 70, pc: 76] local: o index: 6 type: java.lang.Object\n" + + " [pc: 100, pc: 106] local: o index: 6 type: java.lang.Object\n" + + " [pc: 123, pc: 129] local: o index: 6 type: java.lang.Object\n" + + " Stack map table: number of frames 3\n" + + " [pc: 40, full, stack: {java.lang.NullPointerException}, locals: {X, java.lang.Object, java.lang.Object}]\n" + + " [pc: 77, full, stack: {java.lang.Exception}, locals: {X}]\n" + + " [pc: 107, same_locals_1_stack_item, stack: {java.lang.Throwable}]\n"; + } + } try { File f = new File(OUTPUT_DIR + File.separator + "X.class"); @@ -2891,8 +3324,46 @@ }, ""); - String expectedOutput = new CompilerOptions(this.getCompilerOptions()).inlineJsrBytecode + CompilerOptions compilerOptions = new CompilerOptions(this.getCompilerOptions()); + String expectedOutput = !compilerOptions.inlineJsrBytecode ? " // Method descriptor #15 ()Ljava/lang/Object;\n" + + " // Stack: 2, Locals: 4\n" + + " public static java.lang.Object sanityCheckBug();\n" + + " 0 new java.lang.Object [3]\n" + + " 3 dup\n" + + " 4 invokespecial java.lang.Object() [8]\n" + + " 7 astore_0 [obj]\n" + + " 8 aload_0 [obj]\n" + + " 9 astore_3\n" + + " 10 jsr 21\n" + + " 13 aload_3\n" + + " 14 areturn\n" + + " 15 astore_2\n" + + " 16 jsr 21\n" + + " 19 aload_2\n" + + " 20 athrow\n" + + " 21 astore_1\n" + + " 22 aconst_null\n" + + " 23 astore_0 [obj]\n" + + " 24 ret 1\n" + + " Exception Table:\n" + + " [pc: 0, pc: 13] -> 15 when : any\n" + + " Line numbers:\n" + + " [pc: 0, line: 5]\n" + + " [pc: 8, line: 6]\n" + + " [pc: 15, line: 7]\n" + + " [pc: 19, line: 9]\n" + + " [pc: 21, line: 7]\n" + + " [pc: 22, line: 8]\n" + + " [pc: 24, line: 9]\n" + + " Local variable table:\n" + + " [pc: 8, pc: 15] local: obj index: 0 type: java.lang.Object\n" + + " [pc: 24, pc: 26] local: obj index: 0 type: java.lang.Object\n" + : null; + + if (expectedOutput == null) { + if (compilerOptions.targetJDK == ClassFileConstants.JDK1_5) { + expectedOutput = " // Method descriptor #15 ()Ljava/lang/Object;\n" + " // Stack: 2, Locals: 3\n" + " public static java.lang.Object sanityCheckBug();\n" + " 0 new java.lang.Object [3]\n" + @@ -2921,42 +3392,42 @@ " [pc: 15, line: 8]\n" + " [pc: 17, line: 9]\n" + " Local variable table:\n" + - " [pc: 8, pc: 10] local: obj index: 0 type: java.lang.Object\n" + - " [pc: 12, pc: 14] local: obj index: 0 type: java.lang.Object\n" + - " [pc: 17, pc: 19] local: obj index: 0 type: java.lang.Object\n" - : " // Method descriptor #15 ()Ljava/lang/Object;\n" + - " // Stack: 2, Locals: 4\n" + + " [pc: 8, pc: 14] local: obj index: 0 type: java.lang.Object\n" + + " [pc: 17, pc: 19] local: obj index: 0 type: java.lang.Object\n"; + } else { + expectedOutput = " // Method descriptor #15 ()Ljava/lang/Object;\n" + + " // Stack: 2, Locals: 3\n" + " public static java.lang.Object sanityCheckBug();\n" + " 0 new java.lang.Object [3]\n" + " 3 dup\n" + " 4 invokespecial java.lang.Object() [8]\n" + " 7 astore_0 [obj]\n" + " 8 aload_0 [obj]\n" + - " 9 astore_3\n" + - " 10 jsr 21\n" + - " 13 aload_3\n" + - " 14 areturn\n" + - " 15 astore_2\n" + - " 16 jsr 21\n" + - " 19 aload_2\n" + - " 20 athrow\n" + - " 21 astore_1\n" + - " 22 aconst_null\n" + - " 23 astore_0 [obj]\n" + - " 24 ret 1\n" + + " 9 astore_2\n" + + " 10 aconst_null\n" + + " 11 astore_0 [obj]\n" + + " 12 aload_2\n" + + " 13 areturn\n" + + " 14 astore_1\n" + + " 15 aconst_null\n" + + " 16 astore_0 [obj]\n" + + " 17 aload_1\n" + + " 18 athrow\n" + " Exception Table:\n" + - " [pc: 0, pc: 13] -> 15 when : any\n" + + " [pc: 0, pc: 10] -> 14 when : any\n" + " Line numbers:\n" + " [pc: 0, line: 5]\n" + " [pc: 8, line: 6]\n" + - " [pc: 15, line: 7]\n" + - " [pc: 19, line: 9]\n" + - " [pc: 21, line: 7]\n" + - " [pc: 22, line: 8]\n" + - " [pc: 24, line: 9]\n" + + " [pc: 10, line: 8]\n" + + " [pc: 12, line: 6]\n" + + " [pc: 14, line: 7]\n" + + " [pc: 15, line: 8]\n" + + " [pc: 17, line: 9]\n" + " Local variable table:\n" + - " [pc: 8, pc: 15] local: obj index: 0 type: java.lang.Object\n" + - " [pc: 24, pc: 26] local: obj index: 0 type: java.lang.Object\n"; + " [pc: 8, pc: 14] local: obj index: 0 type: java.lang.Object\n" + + " [pc: 17, pc: 19] local: obj index: 0 type: java.lang.Object\n"; + } + } try { File f = new File(OUTPUT_DIR + File.separator + "X.class"); Index: src/org/eclipse/jdt/core/tests/compiler/regression/StackMapAttributeTest.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/StackMapAttributeTest.java,v retrieving revision 1.20 diff -u -r1.20 StackMapAttributeTest.java --- src/org/eclipse/jdt/core/tests/compiler/regression/StackMapAttributeTest.java 5 Jan 2007 04:26:56 -0000 1.20 +++ src/org/eclipse/jdt/core/tests/compiler/regression/StackMapAttributeTest.java 20 Jan 2007 03:25:21 -0000 @@ -33,7 +33,7 @@ static { // TESTS_PREFIX = "testBug95521"; // TESTS_NAMES = new String[] { "testBug83127a" }; -// TESTS_NUMBERS = new int[] { 23 }; +// TESTS_NUMBERS = new int[] { 28 }; // TESTS_RANGE = new int[] { 23, -1 }; } public static Test suite() { @@ -2098,17 +2098,17 @@ } public void _test023() { this.runConformTest( - new String[] { - "X.java", - "public class X {\n" + - " public static void main(String[] args) {\n" + - " boolean a = true, x;\n" + - " if (a ? false : (x = true))\n" + - " a = x;\n" + - " System.out.println(\"SUCCESS\");\n" + - " }\n" + - "}", - }, + new String[] { + "X.java", + "public class X {\n" + + " public static void main(String[] args) {\n" + + " boolean a = true, x;\n" + + " if (a ? false : (x = true))\n" + + " a = x;\n" + + " System.out.println(\"SUCCESS\");\n" + + " }\n" + + "}", + }, "SUCCESS"); } @@ -2172,4 +2172,289 @@ }, "SUCCESS"); } + // https://bugs.eclipse.org/bugs/show_bug.cgi?id=169017 + public void test026() { + this.runConformTest( + new String[] { + "X.java", + "public class X {\n" + + "\n" + + " public static final Object EXIT_OK = new Object();\n" + + " public static final Object EXIT_RELAUNCH = new Object();\n" + + " public static final Object EXIT_RESTART = new Object();\n" + + " public static final int RETURN_RESTART = 1;\n" + + " public static final String PROP_EXIT_CODE = \"\";\n" + + " public static void main(String[] args) {\n" + + " System.out.println(\"SUCCESS\");\n" + + " }\n" + + " private static int createAndRunWorkbench(Display display, IDEWorkbenchAdvisor advisor) {\n" + + " return 0;\n" + + " }\n" + + " \n" + + " public Object run(Object args) throws Exception {\n" + + " Display display = createDisplay();\n" + + " try {\n" + + " Shell shell = new Shell(display, SWT.ON_TOP);\n" + + " try {\n" + + " if (!checkInstanceLocation(shell)) {\n" + + " Platform.endSplash();\n" + + " return EXIT_OK;\n" + + " }\n" + + " } finally {\n" + + " if (shell != null) {\n" + + " shell.dispose();\n" + + " }\n" + + " }\n" + + " int returnCode = X.createAndRunWorkbench(display,\n" + + " new IDEWorkbenchAdvisor());\n" + + " if (returnCode != X.RETURN_RESTART) {\n" + + " return EXIT_OK;\n" + + " }\n" + + " return EXIT_RELAUNCH.equals(Integer.getInteger(PROP_EXIT_CODE)) ? EXIT_RELAUNCH\n" + + " : EXIT_RESTART;\n" + + " } finally {\n" + + " if (display != null) {\n" + + " display.dispose();\n" + + " }\n" + + " }\n" + + " }\n" + + " private boolean checkInstanceLocation(Shell shell) {\n" + + " // TODO Auto-generated method stub\n" + + " return false;\n" + + " }\n" + + " private Display createDisplay() {\n" + + " // TODO Auto-generated method stub\n" + + " return null;\n" + + " }\n" + + "}", + "Display.java", + "class Display {\n" + + "\n" + + " public void dispose() {\n" + + " // TODO Auto-generated method stub\n" + + " \n" + + " }\n" + + "}", + "Shell.java", + "class Shell {\n" + + " public Shell(Display display, int i) {\n" + + " // TODO Auto-generated constructor stub\n" + + " }\n" + + "\n" + + " public void dispose() {\n" + + " // TODO Auto-generated method stub\n" + + " \n" + + " }\n" + + "}", + "Platform.java", + "class Platform {\n" + + "\n" + + " public static void endSplash() {\n" + + " // TODO Auto-generated method stub\n" + + " \n" + + " }\n" + + "}", + "SWT.java", + "class SWT {\n" + + " public static final int ON_TOP = 1; \n" + + "}", + "IDEWorkbenchAdvisor.java", + "class IDEWorkbenchAdvisor {\n" + + "}" + }, + "SUCCESS"); + } + + // https://bugs.eclipse.org/bugs/show_bug.cgi?id=169017 + public void test027() { + this.runConformTest( + new String[] { + "X.java", + "import java.io.IOException;\n" + + "import java.io.InputStream;\n" + + "public class X {\n" + + " private static final int BUF_SIZE = 8192;\n" + + " public static void main(String[] args) {\n" + + " System.out.println(\"SUCCESS\");\n" + + " }\n" + + " BundleActivator activator;\n" + + " BundleHost bundle;\n" + + " public byte[] getBytes() throws IOException {\n" + + " InputStream in = getInputStream();\n" + + " int length = (int) getSize();\n" + + " byte[] classbytes;\n" + + " int bytesread = 0;\n" + + " int readcount;\n" + + " if (Debug.DEBUG && Debug.DEBUG_LOADER)\n" + + " Debug.println(\" about to read \" + length + \" bytes from \" + getName()); //$NON-NLS-1$ //$NON-NLS-2$\n" + + " try {\n" + + " if (length > 0) {\n" + + " classbytes = new byte[length];\n" + + " for (; bytesread < length; bytesread += readcount) {\n" + + " readcount = in.read(classbytes, bytesread, length - bytesread);\n" + + " if (readcount <= 0)\n" + + " break;\n" + + " }\n" + + " } else {\n" + + " length = BUF_SIZE;\n" + + " classbytes = new byte[length];\n" + + " readloop: while (true) {\n" + + " for (; bytesread < length; bytesread += readcount) {\n" + + " readcount = in.read(classbytes, bytesread, length - bytesread);\n" + + " if (readcount <= 0)\n" + + " break readloop;\n" + + " }\n" + + " byte[] oldbytes = classbytes;\n" + + " length += BUF_SIZE;\n" + + " classbytes = new byte[length];\n" + + " System.arraycopy(oldbytes, 0, classbytes, 0, bytesread);\n" + + " }\n" + + " }\n" + + " if (classbytes.length > bytesread) {\n" + + " byte[] oldbytes = classbytes;\n" + + " classbytes = new byte[bytesread];\n" + + " System.arraycopy(oldbytes, 0, classbytes, 0, bytesread);\n" + + " }\n" + + " } finally {\n" + + " try {\n" + + " in.close();\n" + + " } catch (IOException ee) {\n" + + " // ignore\n" + + " }\n" + + " }\n" + + " return classbytes;\n" + + " }\n" + + " protected void stop(Throwable t) throws BundleException {\n" + + " String clazz = \"\";//(activator == null) ? \"\" : activator.getClass().getName(); //$NON-NLS-1$\n" + + " throw new BundleException(NLS.bind(Msg.BUNDLE_ACTIVATOR_EXCEPTION, new Object[] {clazz, \"stop\", bundle.getSymbolicName() == null ? \"\" + bundle.getBundleId() : bundle.getSymbolicName()}), t); //$NON-NLS-1$ //$NON-NLS-2$ \n" + + " }\n" + + " private String getName() {\n" + + " // TODO Auto-generated method stub\n" + + " return null;\n" + + " }\n" + + " private int getSize() {\n" + + " // TODO Auto-generated method stub\n" + + " return 0;\n" + + " }\n" + + " private InputStream getInputStream() {\n" + + " // TODO Auto-generated method stub\n" + + " return null;\n" + + " }\n" + + "}", + "Debug.java", + "class Debug {\n" + + " public static final boolean DEBUG = false;\n" + + " public static final boolean DEBUG_LOADER = false;\n" + + " public static final boolean DEBUG_GENERAL = false;\n" + + " public static void println(String string) {\n" + + " // TODO Auto-generated method stub\n" + + " \n" + + " }\n" + + " public static void printStackTrace(Throwable t) {\n" + + " // TODO Auto-generated method stub\n" + + " \n" + + " }\n" + + "}", + "AccessController.java", + "class AccessController {\n" + + " static void doPrivileged(Object o) {\n" + + " }\n" + + "}", + "BundleException", + "class BundleException extends Exception {\n" + + " private static final long serialVersionUID = 5758882959559471648L;\n" + + "\n" + + " public BundleException(String bind, Throwable t) {\n" + + " // TODO Auto-generated constructor stub\n" + + " }\n" + + "}", + "PrivilegedExceptionAction.java", + "class PrivilegedExceptionAction {\n" + + "}", + "BundleActivator.java", + "class BundleActivator {\n" + + " public void stop(X x) {\n" + + " // TODO Auto-generated method stub\n" + + " \n" + + " }\n" + + "}", + "BundleHost.java", + "class BundleHost {\n" + + " public Object getSymbolicName() {\n" + + " // TODO Auto-generated method stub\n" + + " return null;\n" + + " }\n" + + " public String getBundleId() {\n" + + " // TODO Auto-generated method stub\n" + + " return null;\n" + + " }\n" + + "}", + "NLS.java", + "class NLS {\n" + + " public static String bind(String bundleActivatorException, Object[] objects) {\n" + + " // TODO Auto-generated method stub\n" + + " return null;\n" + + " }\n" + + "}", + "PrivilegedActionException.java", + "class PrivilegedActionException extends Exception {\n" + + " private static final long serialVersionUID = 3919969055057660822L;\n" + + " public Throwable getException() {\n" + + " // TODO Auto-generated method stub\n" + + " return null;\n" + + " }\n" + + "}", + "Msg.java", + "class Msg {\n" + + " public static final String BUNDLE_ACTIVATOR_EXCEPTION = \"\";\n" + + "}" + }, + "SUCCESS"); + } + + // https://bugs.eclipse.org/bugs/show_bug.cgi?id=169017 + public void test028() { + this.runConformTest( + new String[] { + "X.java", + "import java.io.StringReader;\r\n" + + "\r\n" + + "public class X {\r\n" + + " public void loadVariablesAndContainers() {\r\n" + + " // backward compatibility, consider persistent property \r\n" + + " String qName = \"1\";\r\n" + + " String xmlString = \"2\";\r\n" + + " \r\n" + + " try {\r\n" + + " if (xmlString != null){\r\n" + + " StringReader reader = new StringReader(xmlString);\r\n" + + " Object o;\r\n" + + " try {\r\n" + + " StringBuffer buffer = null;\r\n" + + " o = new Object();\r\n" + + " } catch(RuntimeException e) {\r\n" + + " return;\r\n" + + " } catch(Exception e){\r\n" + + " return;\r\n" + + " } finally {\r\n" + + " reader.close();\r\n" + + " }\r\n" + + " System.out.println(reader);\r\n" + + " }\r\n" + + " } catch(Exception e){\r\n" + + " // problem loading xml file: nothing we can do\r\n" + + " } finally {\r\n" + + " if (xmlString != null){\r\n" + + " System.out.println(xmlString);\r\n" + + " }\r\n" + + " }\r\n" + + " }\r\n" + + "\r\n" + + " public static void main(String[] args) {\r\n" + + " System.out.println(\"SUCCESS\");\n" + + " }\r\n" + + "}" + }, + "SUCCESS"); + } } Index: src/org/eclipse/jdt/core/tests/compiler/regression/XLargeTest.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/XLargeTest.java,v retrieving revision 1.12 diff -u -r1.12 XLargeTest.java --- src/org/eclipse/jdt/core/tests/compiler/regression/XLargeTest.java 13 Nov 2006 10:19:17 -0000 1.12 +++ src/org/eclipse/jdt/core/tests/compiler/regression/XLargeTest.java 20 Jan 2007 03:25:31 -0000 @@ -3792,7 +3792,8034 @@ }, ""); } - +public void test015() { + this.runConformTest(new String[] { + "X.java", + "public class X {\n" + + " public static int foo(int i) {\n" + + " try {\n" + + " switch(i) {\n" + + " case 0 :\n" + + " return 3;\n" + + " case 1 :\n" + + " return 3;\n" + + " case 2 :\n" + + " return 3;\n" + + " case 3 :\n" + + " return 3;\n" + + " case 4 :\n" + + " return 3;\n" + + " case 5 :\n" + + " return 3;\n" + + " case 6 :\n" + + " return 3;\n" + + " case 7 :\n" + + " return 3;\n" + + " case 8 :\n" + + " return 3;\n" + + " case 9 :\n" + + " return 3;\n" + + " case 10 :\n" + + " return 3;\n" + + " case 11 :\n" + + " return 3;\n" + + " case 12 :\n" + + " return 3;\n" + + " case 13 :\n" + + " return 3;\n" + + " case 14 :\n" + + " return 3;\n" + + " case 15 :\n" + + " return 3;\n" + + " case 16 :\n" + + " return 3;\n" + + " case 17 :\n" + + " return 3;\n" + + " case 18 :\n" + + " return 3;\n" + + " case 19 :\n" + + " return 3;\n" + + " case 20 :\n" + + " return 3;\n" + + " case 21 :\n" + + " return 3;\n" + + " case 22 :\n" + + " return 3;\n" + + " case 23 :\n" + + " return 3;\n" + + " case 24 :\n" + + " return 3;\n" + + " case 25 :\n" + + " return 3;\n" + + " case 26 :\n" + + " return 3;\n" + + " case 27 :\n" + + " return 3;\n" + + " case 28 :\n" + + " return 3;\n" + + " case 29 :\n" + + " return 3;\n" + + " case 30 :\n" + + " return 3;\n" + + " case 31 :\n" + + " return 3;\n" + + " case 32 :\n" + + " return 3;\n" + + " case 33 :\n" + + " return 3;\n" + + " case 34 :\n" + + " return 3;\n" + + " case 35 :\n" + + " return 3;\n" + + " case 36 :\n" + + " return 3;\n" + + " case 37 :\n" + + " return 3;\n" + + " case 38 :\n" + + " return 3;\n" + + " case 39 :\n" + + " return 3;\n" + + " case 40 :\n" + + " return 3;\n" + + " case 41 :\n" + + " return 3;\n" + + " case 42 :\n" + + " return 3;\n" + + " case 43 :\n" + + " return 3;\n" + + " case 44 :\n" + + " return 3;\n" + + " case 45 :\n" + + " return 3;\n" + + " case 46 :\n" + + " return 3;\n" + + " case 47 :\n" + + " return 3;\n" + + " case 48 :\n" + + " return 3;\n" + + " case 49 :\n" + + " return 3;\n" + + " case 50 :\n" + + " return 3;\n" + + " case 51 :\n" + + " return 3;\n" + + " case 52 :\n" + + " return 3;\n" + + " case 53 :\n" + + " return 3;\n" + + " case 54 :\n" + + " return 3;\n" + + " case 55 :\n" + + " return 3;\n" + + " case 56 :\n" + + " return 3;\n" + + " case 57 :\n" + + " return 3;\n" + + " case 58 :\n" + + " return 3;\n" + + " case 59 :\n" + + " return 3;\n" + + " case 60 :\n" + + " return 3;\n" + + " case 61 :\n" + + " return 3;\n" + + " case 62 :\n" + + " return 3;\n" + + " case 63 :\n" + + " return 3;\n" + + " case 64 :\n" + + " return 3;\n" + + " case 65 :\n" + + " return 3;\n" + + " case 66 :\n" + + " return 3;\n" + + " case 67 :\n" + + " return 3;\n" + + " case 68 :\n" + + " return 3;\n" + + " case 69 :\n" + + " return 3;\n" + + " case 70 :\n" + + " return 3;\n" + + " case 71 :\n" + + " return 3;\n" + + " case 72 :\n" + + " return 3;\n" + + " case 73 :\n" + + " return 3;\n" + + " case 74 :\n" + + " return 3;\n" + + " case 75 :\n" + + " return 3;\n" + + " case 76 :\n" + + " return 3;\n" + + " case 77 :\n" + + " return 3;\n" + + " case 78 :\n" + + " return 3;\n" + + " case 79 :\n" + + " return 3;\n" + + " case 80 :\n" + + " return 3;\n" + + " case 81 :\n" + + " return 3;\n" + + " case 82 :\n" + + " return 3;\n" + + " case 83 :\n" + + " return 3;\n" + + " case 84 :\n" + + " return 3;\n" + + " case 85 :\n" + + " return 3;\n" + + " case 86 :\n" + + " return 3;\n" + + " case 87 :\n" + + " return 3;\n" + + " case 88 :\n" + + " return 3;\n" + + " case 89 :\n" + + " return 3;\n" + + " case 90 :\n" + + " return 3;\n" + + " case 91 :\n" + + " return 3;\n" + + " case 92 :\n" + + " return 3;\n" + + " case 93 :\n" + + " return 3;\n" + + " case 94 :\n" + + " return 3;\n" + + " case 95 :\n" + + " return 3;\n" + + " case 96 :\n" + + " return 3;\n" + + " case 97 :\n" + + " return 3;\n" + + " case 98 :\n" + + " return 3;\n" + + " case 99 :\n" + + " return 3;\n" + + " case 100 :\n" + + " return 3;\n" + + " case 101 :\n" + + " return 3;\n" + + " case 102 :\n" + + " return 3;\n" + + " case 103 :\n" + + " return 3;\n" + + " case 104 :\n" + + " return 3;\n" + + " case 105 :\n" + + " return 3;\n" + + " case 106 :\n" + + " return 3;\n" + + " case 107 :\n" + + " return 3;\n" + + " case 108 :\n" + + " return 3;\n" + + " case 109 :\n" + + " return 3;\n" + + " case 110 :\n" + + " return 3;\n" + + " case 111 :\n" + + " return 3;\n" + + " case 112 :\n" + + " return 3;\n" + + " case 113 :\n" + + " return 3;\n" + + " case 114 :\n" + + " return 3;\n" + + " case 115 :\n" + + " return 3;\n" + + " case 116 :\n" + + " return 3;\n" + + " case 117 :\n" + + " return 3;\n" + + " case 118 :\n" + + " return 3;\n" + + " case 119 :\n" + + " return 3;\n" + + " case 120 :\n" + + " return 3;\n" + + " case 121 :\n" + + " return 3;\n" + + " case 122 :\n" + + " return 3;\n" + + " case 123 :\n" + + " return 3;\n" + + " case 124 :\n" + + " return 3;\n" + + " case 125 :\n" + + " return 3;\n" + + " case 126 :\n" + + " return 3;\n" + + " case 127 :\n" + + " return 3;\n" + + " case 128 :\n" + + " return 3;\n" + + " case 129 :\n" + + " return 3;\n" + + " case 130 :\n" + + " return 3;\n" + + " case 131 :\n" + + " return 3;\n" + + " case 132 :\n" + + " return 3;\n" + + " case 133 :\n" + + " return 3;\n" + + " case 134 :\n" + + " return 3;\n" + + " case 135 :\n" + + " return 3;\n" + + " case 136 :\n" + + " return 3;\n" + + " case 137 :\n" + + " return 3;\n" + + " case 138 :\n" + + " return 3;\n" + + " case 139 :\n" + + " return 3;\n" + + " case 140 :\n" + + " return 3;\n" + + " case 141 :\n" + + " return 3;\n" + + " case 142 :\n" + + " return 3;\n" + + " case 143 :\n" + + " return 3;\n" + + " case 144 :\n" + + " return 3;\n" + + " case 145 :\n" + + " return 3;\n" + + " case 146 :\n" + + " return 3;\n" + + " case 147 :\n" + + " return 3;\n" + + " case 148 :\n" + + " return 3;\n" + + " case 149 :\n" + + " return 3;\n" + + " case 150 :\n" + + " return 3;\n" + + " case 151 :\n" + + " return 3;\n" + + " case 152 :\n" + + " return 3;\n" + + " case 153 :\n" + + " return 3;\n" + + " case 154 :\n" + + " return 3;\n" + + " case 155 :\n" + + " return 3;\n" + + " case 156 :\n" + + " return 3;\n" + + " case 157 :\n" + + " return 3;\n" + + " case 158 :\n" + + " return 3;\n" + + " case 159 :\n" + + " return 3;\n" + + " case 160 :\n" + + " return 3;\n" + + " case 161 :\n" + + " return 3;\n" + + " case 162 :\n" + + " return 3;\n" + + " case 163 :\n" + + " return 3;\n" + + " case 164 :\n" + + " return 3;\n" + + " case 165 :\n" + + " return 3;\n" + + " case 166 :\n" + + " return 3;\n" + + " case 167 :\n" + + " return 3;\n" + + " case 168 :\n" + + " return 3;\n" + + " case 169 :\n" + + " return 3;\n" + + " case 170 :\n" + + " return 3;\n" + + " case 171 :\n" + + " return 3;\n" + + " case 172 :\n" + + " return 3;\n" + + " case 173 :\n" + + " return 3;\n" + + " case 174 :\n" + + " return 3;\n" + + " case 175 :\n" + + " return 3;\n" + + " case 176 :\n" + + " return 3;\n" + + " case 177 :\n" + + " return 3;\n" + + " case 178 :\n" + + " return 3;\n" + + " case 179 :\n" + + " return 3;\n" + + " case 180 :\n" + + " return 3;\n" + + " case 181 :\n" + + " return 3;\n" + + " case 182 :\n" + + " return 3;\n" + + " case 183 :\n" + + " return 3;\n" + + " case 184 :\n" + + " return 3;\n" + + " case 185 :\n" + + " return 3;\n" + + " case 186 :\n" + + " return 3;\n" + + " case 187 :\n" + + " return 3;\n" + + " case 188 :\n" + + " return 3;\n" + + " case 189 :\n" + + " return 3;\n" + + " case 190 :\n" + + " return 3;\n" + + " case 191 :\n" + + " return 3;\n" + + " case 192 :\n" + + " return 3;\n" + + " case 193 :\n" + + " return 3;\n" + + " case 194 :\n" + + " return 3;\n" + + " case 195 :\n" + + " return 3;\n" + + " case 196 :\n" + + " return 3;\n" + + " case 197 :\n" + + " return 3;\n" + + " case 198 :\n" + + " return 3;\n" + + " case 199 :\n" + + " return 3;\n" + + " case 200 :\n" + + " return 3;\n" + + " case 201 :\n" + + " return 3;\n" + + " case 202 :\n" + + " return 3;\n" + + " case 203 :\n" + + " return 3;\n" + + " case 204 :\n" + + " return 3;\n" + + " case 205 :\n" + + " return 3;\n" + + " case 206 :\n" + + " return 3;\n" + + " case 207 :\n" + + " return 3;\n" + + " case 208 :\n" + + " return 3;\n" + + " case 209 :\n" + + " return 3;\n" + + " case 210 :\n" + + " return 3;\n" + + " case 211 :\n" + + " return 3;\n" + + " case 212 :\n" + + " return 3;\n" + + " case 213 :\n" + + " return 3;\n" + + " case 214 :\n" + + " return 3;\n" + + " case 215 :\n" + + " return 3;\n" + + " case 216 :\n" + + " return 3;\n" + + " case 217 :\n" + + " return 3;\n" + + " case 218 :\n" + + " return 3;\n" + + " case 219 :\n" + + " return 3;\n" + + " case 220 :\n" + + " return 3;\n" + + " case 221 :\n" + + " return 3;\n" + + " case 222 :\n" + + " return 3;\n" + + " case 223 :\n" + + " return 3;\n" + + " case 224 :\n" + + " return 3;\n" + + " case 225 :\n" + + " return 3;\n" + + " case 226 :\n" + + " return 3;\n" + + " case 227 :\n" + + " return 3;\n" + + " case 228 :\n" + + " return 3;\n" + + " case 229 :\n" + + " return 3;\n" + + " case 230 :\n" + + " return 3;\n" + + " case 231 :\n" + + " return 3;\n" + + " case 232 :\n" + + " return 3;\n" + + " case 233 :\n" + + " return 3;\n" + + " case 234 :\n" + + " return 3;\n" + + " case 235 :\n" + + " return 3;\n" + + " case 236 :\n" + + " return 3;\n" + + " case 237 :\n" + + " return 3;\n" + + " case 238 :\n" + + " return 3;\n" + + " case 239 :\n" + + " return 3;\n" + + " case 240 :\n" + + " return 3;\n" + + " case 241 :\n" + + " return 3;\n" + + " case 242 :\n" + + " return 3;\n" + + " case 243 :\n" + + " return 3;\n" + + " case 244 :\n" + + " return 3;\n" + + " case 245 :\n" + + " return 3;\n" + + " case 246 :\n" + + " return 3;\n" + + " case 247 :\n" + + " return 3;\n" + + " case 248 :\n" + + " return 3;\n" + + " case 249 :\n" + + " return 3;\n" + + " case 250 :\n" + + " return 3;\n" + + " case 251 :\n" + + " return 3;\n" + + " case 252 :\n" + + " return 3;\n" + + " case 253 :\n" + + " return 3;\n" + + " case 254 :\n" + + " return 3;\n" + + " case 255 :\n" + + " return 3;\n" + + " case 256 :\n" + + " return 3;\n" + + " case 257 :\n" + + " return 3;\n" + + " case 258 :\n" + + " return 3;\n" + + " case 259 :\n" + + " return 3;\n" + + " case 260 :\n" + + " return 3;\n" + + " case 261 :\n" + + " return 3;\n" + + " case 262 :\n" + + " return 3;\n" + + " case 263 :\n" + + " return 3;\n" + + " case 264 :\n" + + " return 3;\n" + + " case 265 :\n" + + " return 3;\n" + + " case 266 :\n" + + " return 3;\n" + + " case 267 :\n" + + " return 3;\n" + + " case 268 :\n" + + " return 3;\n" + + " case 269 :\n" + + " return 3;\n" + + " case 270 :\n" + + " return 3;\n" + + " case 271 :\n" + + " return 3;\n" + + " case 272 :\n" + + " return 3;\n" + + " case 273 :\n" + + " return 3;\n" + + " case 274 :\n" + + " return 3;\n" + + " case 275 :\n" + + " return 3;\n" + + " case 276 :\n" + + " return 3;\n" + + " case 277 :\n" + + " return 3;\n" + + " case 278 :\n" + + " return 3;\n" + + " case 279 :\n" + + " return 3;\n" + + " case 280 :\n" + + " return 3;\n" + + " case 281 :\n" + + " return 3;\n" + + " case 282 :\n" + + " return 3;\n" + + " case 283 :\n" + + " return 3;\n" + + " case 284 :\n" + + " return 3;\n" + + " case 285 :\n" + + " return 3;\n" + + " case 286 :\n" + + " return 3;\n" + + " case 287 :\n" + + " return 3;\n" + + " case 288 :\n" + + " return 3;\n" + + " case 289 :\n" + + " return 3;\n" + + " case 290 :\n" + + " return 3;\n" + + " case 291 :\n" + + " return 3;\n" + + " case 292 :\n" + + " return 3;\n" + + " case 293 :\n" + + " return 3;\n" + + " case 294 :\n" + + " return 3;\n" + + " case 295 :\n" + + " return 3;\n" + + " case 296 :\n" + + " return 3;\n" + + " case 297 :\n" + + " return 3;\n" + + " case 298 :\n" + + " return 3;\n" + + " case 299 :\n" + + " return 3;\n" + + " case 300 :\n" + + " return 3;\n" + + " case 301 :\n" + + " return 3;\n" + + " case 302 :\n" + + " return 3;\n" + + " case 303 :\n" + + " return 3;\n" + + " case 304 :\n" + + " return 3;\n" + + " case 305 :\n" + + " return 3;\n" + + " case 306 :\n" + + " return 3;\n" + + " case 307 :\n" + + " return 3;\n" + + " case 308 :\n" + + " return 3;\n" + + " case 309 :\n" + + " return 3;\n" + + " case 310 :\n" + + " return 3;\n" + + " case 311 :\n" + + " return 3;\n" + + " case 312 :\n" + + " return 3;\n" + + " case 313 :\n" + + " return 3;\n" + + " case 314 :\n" + + " return 3;\n" + + " case 315 :\n" + + " return 3;\n" + + " case 316 :\n" + + " return 3;\n" + + " case 317 :\n" + + " return 3;\n" + + " case 318 :\n" + + " return 3;\n" + + " case 319 :\n" + + " return 3;\n" + + " case 320 :\n" + + " return 3;\n" + + " case 321 :\n" + + " return 3;\n" + + " case 322 :\n" + + " return 3;\n" + + " case 323 :\n" + + " return 3;\n" + + " case 324 :\n" + + " return 3;\n" + + " case 325 :\n" + + " return 3;\n" + + " case 326 :\n" + + " return 3;\n" + + " case 327 :\n" + + " return 3;\n" + + " case 328 :\n" + + " return 3;\n" + + " case 329 :\n" + + " return 3;\n" + + " case 330 :\n" + + " return 3;\n" + + " case 331 :\n" + + " return 3;\n" + + " case 332 :\n" + + " return 3;\n" + + " case 333 :\n" + + " return 3;\n" + + " case 334 :\n" + + " return 3;\n" + + " case 335 :\n" + + " return 3;\n" + + " case 336 :\n" + + " return 3;\n" + + " case 337 :\n" + + " return 3;\n" + + " case 338 :\n" + + " return 3;\n" + + " case 339 :\n" + + " return 3;\n" + + " case 340 :\n" + + " return 3;\n" + + " case 341 :\n" + + " return 3;\n" + + " case 342 :\n" + + " return 3;\n" + + " case 343 :\n" + + " return 3;\n" + + " case 344 :\n" + + " return 3;\n" + + " case 345 :\n" + + " return 3;\n" + + " case 346 :\n" + + " return 3;\n" + + " case 347 :\n" + + " return 3;\n" + + " case 348 :\n" + + " return 3;\n" + + " case 349 :\n" + + " return 3;\n" + + " case 350 :\n" + + " return 3;\n" + + " case 351 :\n" + + " return 3;\n" + + " case 352 :\n" + + " return 3;\n" + + " case 353 :\n" + + " return 3;\n" + + " case 354 :\n" + + " return 3;\n" + + " case 355 :\n" + + " return 3;\n" + + " case 356 :\n" + + " return 3;\n" + + " case 357 :\n" + + " return 3;\n" + + " case 358 :\n" + + " return 3;\n" + + " case 359 :\n" + + " return 3;\n" + + " case 360 :\n" + + " return 3;\n" + + " case 361 :\n" + + " return 3;\n" + + " case 362 :\n" + + " return 3;\n" + + " case 363 :\n" + + " return 3;\n" + + " case 364 :\n" + + " return 3;\n" + + " case 365 :\n" + + " return 3;\n" + + " case 366 :\n" + + " return 3;\n" + + " case 367 :\n" + + " return 3;\n" + + " case 368 :\n" + + " return 3;\n" + + " case 369 :\n" + + " return 3;\n" + + " case 370 :\n" + + " return 3;\n" + + " case 371 :\n" + + " return 3;\n" + + " case 372 :\n" + + " return 3;\n" + + " case 373 :\n" + + " return 3;\n" + + " case 374 :\n" + + " return 3;\n" + + " case 375 :\n" + + " return 3;\n" + + " case 376 :\n" + + " return 3;\n" + + " case 377 :\n" + + " return 3;\n" + + " case 378 :\n" + + " return 3;\n" + + " case 379 :\n" + + " return 3;\n" + + " case 380 :\n" + + " return 3;\n" + + " case 381 :\n" + + " return 3;\n" + + " case 382 :\n" + + " return 3;\n" + + " case 383 :\n" + + " return 3;\n" + + " case 384 :\n" + + " return 3;\n" + + " case 385 :\n" + + " return 3;\n" + + " case 386 :\n" + + " return 3;\n" + + " case 387 :\n" + + " return 3;\n" + + " case 388 :\n" + + " return 3;\n" + + " case 389 :\n" + + " return 3;\n" + + " case 390 :\n" + + " return 3;\n" + + " case 391 :\n" + + " return 3;\n" + + " case 392 :\n" + + " return 3;\n" + + " case 393 :\n" + + " return 3;\n" + + " case 394 :\n" + + " return 3;\n" + + " case 395 :\n" + + " return 3;\n" + + " case 396 :\n" + + " return 3;\n" + + " case 397 :\n" + + " return 3;\n" + + " case 398 :\n" + + " return 3;\n" + + " case 399 :\n" + + " return 3;\n" + + " case 400 :\n" + + " return 3;\n" + + " case 401 :\n" + + " return 3;\n" + + " case 402 :\n" + + " return 3;\n" + + " case 403 :\n" + + " return 3;\n" + + " case 404 :\n" + + " return 3;\n" + + " case 405 :\n" + + " return 3;\n" + + " case 406 :\n" + + " return 3;\n" + + " case 407 :\n" + + " return 3;\n" + + " case 408 :\n" + + " return 3;\n" + + " case 409 :\n" + + " return 3;\n" + + " case 410 :\n" + + " return 3;\n" + + " case 411 :\n" + + " return 3;\n" + + " case 412 :\n" + + " return 3;\n" + + " case 413 :\n" + + " return 3;\n" + + " case 414 :\n" + + " return 3;\n" + + " case 415 :\n" + + " return 3;\n" + + " case 416 :\n" + + " return 3;\n" + + " case 417 :\n" + + " return 3;\n" + + " case 418 :\n" + + " return 3;\n" + + " case 419 :\n" + + " return 3;\n" + + " case 420 :\n" + + " return 3;\n" + + " case 421 :\n" + + " return 3;\n" + + " case 422 :\n" + + " return 3;\n" + + " case 423 :\n" + + " return 3;\n" + + " case 424 :\n" + + " return 3;\n" + + " case 425 :\n" + + " return 3;\n" + + " case 426 :\n" + + " return 3;\n" + + " case 427 :\n" + + " return 3;\n" + + " case 428 :\n" + + " return 3;\n" + + " case 429 :\n" + + " return 3;\n" + + " case 430 :\n" + + " return 3;\n" + + " case 431 :\n" + + " return 3;\n" + + " case 432 :\n" + + " return 3;\n" + + " case 433 :\n" + + " return 3;\n" + + " case 434 :\n" + + " return 3;\n" + + " case 435 :\n" + + " return 3;\n" + + " case 436 :\n" + + " return 3;\n" + + " case 437 :\n" + + " return 3;\n" + + " case 438 :\n" + + " return 3;\n" + + " case 439 :\n" + + " return 3;\n" + + " case 440 :\n" + + " return 3;\n" + + " case 441 :\n" + + " return 3;\n" + + " case 442 :\n" + + " return 3;\n" + + " case 443 :\n" + + " return 3;\n" + + " case 444 :\n" + + " return 3;\n" + + " case 445 :\n" + + " return 3;\n" + + " case 446 :\n" + + " return 3;\n" + + " case 447 :\n" + + " return 3;\n" + + " case 448 :\n" + + " return 3;\n" + + " case 449 :\n" + + " return 3;\n" + + " case 450 :\n" + + " return 3;\n" + + " case 451 :\n" + + " return 3;\n" + + " case 452 :\n" + + " return 3;\n" + + " case 453 :\n" + + " return 3;\n" + + " case 454 :\n" + + " return 3;\n" + + " case 455 :\n" + + " return 3;\n" + + " case 456 :\n" + + " return 3;\n" + + " case 457 :\n" + + " return 3;\n" + + " case 458 :\n" + + " return 3;\n" + + " case 459 :\n" + + " return 3;\n" + + " case 460 :\n" + + " return 3;\n" + + " case 461 :\n" + + " return 3;\n" + + " case 462 :\n" + + " return 3;\n" + + " case 463 :\n" + + " return 3;\n" + + " case 464 :\n" + + " return 3;\n" + + " case 465 :\n" + + " return 3;\n" + + " case 466 :\n" + + " return 3;\n" + + " case 467 :\n" + + " return 3;\n" + + " case 468 :\n" + + " return 3;\n" + + " case 469 :\n" + + " return 3;\n" + + " case 470 :\n" + + " return 3;\n" + + " case 471 :\n" + + " return 3;\n" + + " case 472 :\n" + + " return 3;\n" + + " case 473 :\n" + + " return 3;\n" + + " case 474 :\n" + + " return 3;\n" + + " case 475 :\n" + + " return 3;\n" + + " case 476 :\n" + + " return 3;\n" + + " case 477 :\n" + + " return 3;\n" + + " case 478 :\n" + + " return 3;\n" + + " case 479 :\n" + + " return 3;\n" + + " case 480 :\n" + + " return 3;\n" + + " case 481 :\n" + + " return 3;\n" + + " case 482 :\n" + + " return 3;\n" + + " case 483 :\n" + + " return 3;\n" + + " case 484 :\n" + + " return 3;\n" + + " case 485 :\n" + + " return 3;\n" + + " case 486 :\n" + + " return 3;\n" + + " case 487 :\n" + + " return 3;\n" + + " case 488 :\n" + + " return 3;\n" + + " case 489 :\n" + + " return 3;\n" + + " case 490 :\n" + + " return 3;\n" + + " case 491 :\n" + + " return 3;\n" + + " case 492 :\n" + + " return 3;\n" + + " case 493 :\n" + + " return 3;\n" + + " case 494 :\n" + + " return 3;\n" + + " case 495 :\n" + + " return 3;\n" + + " case 496 :\n" + + " return 3;\n" + + " case 497 :\n" + + " return 3;\n" + + " case 498 :\n" + + " return 3;\n" + + " case 499 :\n" + + " return 3;\n" + + " case 500 :\n" + + " return 3;\n" + + " case 501 :\n" + + " return 3;\n" + + " case 502 :\n" + + " return 3;\n" + + " case 503 :\n" + + " return 3;\n" + + " case 504 :\n" + + " return 3;\n" + + " case 505 :\n" + + " return 3;\n" + + " case 506 :\n" + + " return 3;\n" + + " case 507 :\n" + + " return 3;\n" + + " case 508 :\n" + + " return 3;\n" + + " case 509 :\n" + + " return 3;\n" + + " case 510 :\n" + + " return 3;\n" + + " case 511 :\n" + + " return 3;\n" + + " case 512 :\n" + + " return 3;\n" + + " case 513 :\n" + + " return 3;\n" + + " case 514 :\n" + + " return 3;\n" + + " case 515 :\n" + + " return 3;\n" + + " case 516 :\n" + + " return 3;\n" + + " case 517 :\n" + + " return 3;\n" + + " case 518 :\n" + + " return 3;\n" + + " case 519 :\n" + + " return 3;\n" + + " case 520 :\n" + + " return 3;\n" + + " case 521 :\n" + + " return 3;\n" + + " case 522 :\n" + + " return 3;\n" + + " case 523 :\n" + + " return 3;\n" + + " case 524 :\n" + + " return 3;\n" + + " case 525 :\n" + + " return 3;\n" + + " case 526 :\n" + + " return 3;\n" + + " case 527 :\n" + + " return 3;\n" + + " case 528 :\n" + + " return 3;\n" + + " case 529 :\n" + + " return 3;\n" + + " case 530 :\n" + + " return 3;\n" + + " case 531 :\n" + + " return 3;\n" + + " case 532 :\n" + + " return 3;\n" + + " case 533 :\n" + + " return 3;\n" + + " case 534 :\n" + + " return 3;\n" + + " case 535 :\n" + + " return 3;\n" + + " case 536 :\n" + + " return 3;\n" + + " case 537 :\n" + + " return 3;\n" + + " case 538 :\n" + + " return 3;\n" + + " case 539 :\n" + + " return 3;\n" + + " case 540 :\n" + + " return 3;\n" + + " case 541 :\n" + + " return 3;\n" + + " case 542 :\n" + + " return 3;\n" + + " case 543 :\n" + + " return 3;\n" + + " case 544 :\n" + + " return 3;\n" + + " case 545 :\n" + + " return 3;\n" + + " case 546 :\n" + + " return 3;\n" + + " case 547 :\n" + + " return 3;\n" + + " case 548 :\n" + + " return 3;\n" + + " case 549 :\n" + + " return 3;\n" + + " case 550 :\n" + + " return 3;\n" + + " case 551 :\n" + + " return 3;\n" + + " case 552 :\n" + + " return 3;\n" + + " case 553 :\n" + + " return 3;\n" + + " case 554 :\n" + + " return 3;\n" + + " case 555 :\n" + + " return 3;\n" + + " case 556 :\n" + + " return 3;\n" + + " case 557 :\n" + + " return 3;\n" + + " case 558 :\n" + + " return 3;\n" + + " case 559 :\n" + + " return 3;\n" + + " case 560 :\n" + + " return 3;\n" + + " case 561 :\n" + + " return 3;\n" + + " case 562 :\n" + + " return 3;\n" + + " case 563 :\n" + + " return 3;\n" + + " case 564 :\n" + + " return 3;\n" + + " case 565 :\n" + + " return 3;\n" + + " case 566 :\n" + + " return 3;\n" + + " case 567 :\n" + + " return 3;\n" + + " case 568 :\n" + + " return 3;\n" + + " case 569 :\n" + + " return 3;\n" + + " case 570 :\n" + + " return 3;\n" + + " case 571 :\n" + + " return 3;\n" + + " case 572 :\n" + + " return 3;\n" + + " case 573 :\n" + + " return 3;\n" + + " case 574 :\n" + + " return 3;\n" + + " case 575 :\n" + + " return 3;\n" + + " case 576 :\n" + + " return 3;\n" + + " case 577 :\n" + + " return 3;\n" + + " case 578 :\n" + + " return 3;\n" + + " case 579 :\n" + + " return 3;\n" + + " case 580 :\n" + + " return 3;\n" + + " case 581 :\n" + + " return 3;\n" + + " case 582 :\n" + + " return 3;\n" + + " case 583 :\n" + + " return 3;\n" + + " case 584 :\n" + + " return 3;\n" + + " case 585 :\n" + + " return 3;\n" + + " case 586 :\n" + + " return 3;\n" + + " case 587 :\n" + + " return 3;\n" + + " case 588 :\n" + + " return 3;\n" + + " case 589 :\n" + + " return 3;\n" + + " case 590 :\n" + + " return 3;\n" + + " case 591 :\n" + + " return 3;\n" + + " case 592 :\n" + + " return 3;\n" + + " case 593 :\n" + + " return 3;\n" + + " case 594 :\n" + + " return 3;\n" + + " case 595 :\n" + + " return 3;\n" + + " case 596 :\n" + + " return 3;\n" + + " case 597 :\n" + + " return 3;\n" + + " case 598 :\n" + + " return 3;\n" + + " case 599 :\n" + + " return 3;\n" + + " case 600 :\n" + + " return 3;\n" + + " case 601 :\n" + + " return 3;\n" + + " case 602 :\n" + + " return 3;\n" + + " case 603 :\n" + + " return 3;\n" + + " case 604 :\n" + + " return 3;\n" + + " case 605 :\n" + + " return 3;\n" + + " case 606 :\n" + + " return 3;\n" + + " case 607 :\n" + + " return 3;\n" + + " case 608 :\n" + + " return 3;\n" + + " case 609 :\n" + + " return 3;\n" + + " case 610 :\n" + + " return 3;\n" + + " case 611 :\n" + + " return 3;\n" + + " case 612 :\n" + + " return 3;\n" + + " case 613 :\n" + + " return 3;\n" + + " case 614 :\n" + + " return 3;\n" + + " case 615 :\n" + + " return 3;\n" + + " case 616 :\n" + + " return 3;\n" + + " case 617 :\n" + + " return 3;\n" + + " case 618 :\n" + + " return 3;\n" + + " case 619 :\n" + + " return 3;\n" + + " case 620 :\n" + + " return 3;\n" + + " case 621 :\n" + + " return 3;\n" + + " case 622 :\n" + + " return 3;\n" + + " case 623 :\n" + + " return 3;\n" + + " case 624 :\n" + + " return 3;\n" + + " case 625 :\n" + + " return 3;\n" + + " case 626 :\n" + + " return 3;\n" + + " case 627 :\n" + + " return 3;\n" + + " case 628 :\n" + + " return 3;\n" + + " case 629 :\n" + + " return 3;\n" + + " case 630 :\n" + + " return 3;\n" + + " case 631 :\n" + + " return 3;\n" + + " case 632 :\n" + + " return 3;\n" + + " case 633 :\n" + + " return 3;\n" + + " case 634 :\n" + + " return 3;\n" + + " case 635 :\n" + + " return 3;\n" + + " case 636 :\n" + + " return 3;\n" + + " case 637 :\n" + + " return 3;\n" + + " case 638 :\n" + + " return 3;\n" + + " case 639 :\n" + + " return 3;\n" + + " case 640 :\n" + + " return 3;\n" + + " case 641 :\n" + + " return 3;\n" + + " case 642 :\n" + + " return 3;\n" + + " case 643 :\n" + + " return 3;\n" + + " case 644 :\n" + + " return 3;\n" + + " case 645 :\n" + + " return 3;\n" + + " case 646 :\n" + + " return 3;\n" + + " case 647 :\n" + + " return 3;\n" + + " case 648 :\n" + + " return 3;\n" + + " case 649 :\n" + + " return 3;\n" + + " case 650 :\n" + + " return 3;\n" + + " case 651 :\n" + + " return 3;\n" + + " case 652 :\n" + + " return 3;\n" + + " case 653 :\n" + + " return 3;\n" + + " case 654 :\n" + + " return 3;\n" + + " case 655 :\n" + + " return 3;\n" + + " case 656 :\n" + + " return 3;\n" + + " case 657 :\n" + + " return 3;\n" + + " case 658 :\n" + + " return 3;\n" + + " case 659 :\n" + + " return 3;\n" + + " case 660 :\n" + + " return 3;\n" + + " case 661 :\n" + + " return 3;\n" + + " case 662 :\n" + + " return 3;\n" + + " case 663 :\n" + + " return 3;\n" + + " case 664 :\n" + + " return 3;\n" + + " case 665 :\n" + + " return 3;\n" + + " case 666 :\n" + + " return 3;\n" + + " case 667 :\n" + + " return 3;\n" + + " case 668 :\n" + + " return 3;\n" + + " case 669 :\n" + + " return 3;\n" + + " case 670 :\n" + + " return 3;\n" + + " case 671 :\n" + + " return 3;\n" + + " case 672 :\n" + + " return 3;\n" + + " case 673 :\n" + + " return 3;\n" + + " case 674 :\n" + + " return 3;\n" + + " case 675 :\n" + + " return 3;\n" + + " case 676 :\n" + + " return 3;\n" + + " case 677 :\n" + + " return 3;\n" + + " case 678 :\n" + + " return 3;\n" + + " case 679 :\n" + + " return 3;\n" + + " case 680 :\n" + + " return 3;\n" + + " case 681 :\n" + + " return 3;\n" + + " case 682 :\n" + + " return 3;\n" + + " case 683 :\n" + + " return 3;\n" + + " case 684 :\n" + + " return 3;\n" + + " case 685 :\n" + + " return 3;\n" + + " case 686 :\n" + + " return 3;\n" + + " case 687 :\n" + + " return 3;\n" + + " case 688 :\n" + + " return 3;\n" + + " case 689 :\n" + + " return 3;\n" + + " case 690 :\n" + + " return 3;\n" + + " case 691 :\n" + + " return 3;\n" + + " case 692 :\n" + + " return 3;\n" + + " case 693 :\n" + + " return 3;\n" + + " case 694 :\n" + + " return 3;\n" + + " case 695 :\n" + + " return 3;\n" + + " case 696 :\n" + + " return 3;\n" + + " case 697 :\n" + + " return 3;\n" + + " case 698 :\n" + + " return 3;\n" + + " case 699 :\n" + + " return 3;\n" + + " case 700 :\n" + + " return 3;\n" + + " case 701 :\n" + + " return 3;\n" + + " case 702 :\n" + + " return 3;\n" + + " case 703 :\n" + + " return 3;\n" + + " case 704 :\n" + + " return 3;\n" + + " case 705 :\n" + + " return 3;\n" + + " case 706 :\n" + + " return 3;\n" + + " case 707 :\n" + + " return 3;\n" + + " case 708 :\n" + + " return 3;\n" + + " case 709 :\n" + + " return 3;\n" + + " case 710 :\n" + + " return 3;\n" + + " case 711 :\n" + + " return 3;\n" + + " case 712 :\n" + + " return 3;\n" + + " case 713 :\n" + + " return 3;\n" + + " case 714 :\n" + + " return 3;\n" + + " case 715 :\n" + + " return 3;\n" + + " case 716 :\n" + + " return 3;\n" + + " case 717 :\n" + + " return 3;\n" + + " case 718 :\n" + + " return 3;\n" + + " case 719 :\n" + + " return 3;\n" + + " case 720 :\n" + + " return 3;\n" + + " case 721 :\n" + + " return 3;\n" + + " case 722 :\n" + + " return 3;\n" + + " case 723 :\n" + + " return 3;\n" + + " case 724 :\n" + + " return 3;\n" + + " case 725 :\n" + + " return 3;\n" + + " case 726 :\n" + + " return 3;\n" + + " case 727 :\n" + + " return 3;\n" + + " case 728 :\n" + + " return 3;\n" + + " case 729 :\n" + + " return 3;\n" + + " case 730 :\n" + + " return 3;\n" + + " case 731 :\n" + + " return 3;\n" + + " case 732 :\n" + + " return 3;\n" + + " case 733 :\n" + + " return 3;\n" + + " case 734 :\n" + + " return 3;\n" + + " case 735 :\n" + + " return 3;\n" + + " case 736 :\n" + + " return 3;\n" + + " case 737 :\n" + + " return 3;\n" + + " case 738 :\n" + + " return 3;\n" + + " case 739 :\n" + + " return 3;\n" + + " case 740 :\n" + + " return 3;\n" + + " case 741 :\n" + + " return 3;\n" + + " case 742 :\n" + + " return 3;\n" + + " case 743 :\n" + + " return 3;\n" + + " case 744 :\n" + + " return 3;\n" + + " case 745 :\n" + + " return 3;\n" + + " case 746 :\n" + + " return 3;\n" + + " case 747 :\n" + + " return 3;\n" + + " case 748 :\n" + + " return 3;\n" + + " case 749 :\n" + + " return 3;\n" + + " case 750 :\n" + + " return 3;\n" + + " case 751 :\n" + + " return 3;\n" + + " case 752 :\n" + + " return 3;\n" + + " case 753 :\n" + + " return 3;\n" + + " case 754 :\n" + + " return 3;\n" + + " case 755 :\n" + + " return 3;\n" + + " case 756 :\n" + + " return 3;\n" + + " case 757 :\n" + + " return 3;\n" + + " case 758 :\n" + + " return 3;\n" + + " case 759 :\n" + + " return 3;\n" + + " case 760 :\n" + + " return 3;\n" + + " case 761 :\n" + + " return 3;\n" + + " case 762 :\n" + + " return 3;\n" + + " case 763 :\n" + + " return 3;\n" + + " case 764 :\n" + + " return 3;\n" + + " case 765 :\n" + + " return 3;\n" + + " case 766 :\n" + + " return 3;\n" + + " case 767 :\n" + + " return 3;\n" + + " case 768 :\n" + + " return 3;\n" + + " case 769 :\n" + + " return 3;\n" + + " case 770 :\n" + + " return 3;\n" + + " case 771 :\n" + + " return 3;\n" + + " case 772 :\n" + + " return 3;\n" + + " case 773 :\n" + + " return 3;\n" + + " case 774 :\n" + + " return 3;\n" + + " case 775 :\n" + + " return 3;\n" + + " case 776 :\n" + + " return 3;\n" + + " case 777 :\n" + + " return 3;\n" + + " case 778 :\n" + + " return 3;\n" + + " case 779 :\n" + + " return 3;\n" + + " case 780 :\n" + + " return 3;\n" + + " case 781 :\n" + + " return 3;\n" + + " case 782 :\n" + + " return 3;\n" + + " case 783 :\n" + + " return 3;\n" + + " case 784 :\n" + + " return 3;\n" + + " case 785 :\n" + + " return 3;\n" + + " case 786 :\n" + + " return 3;\n" + + " case 787 :\n" + + " return 3;\n" + + " case 788 :\n" + + " return 3;\n" + + " case 789 :\n" + + " return 3;\n" + + " case 790 :\n" + + " return 3;\n" + + " case 791 :\n" + + " return 3;\n" + + " case 792 :\n" + + " return 3;\n" + + " case 793 :\n" + + " return 3;\n" + + " case 794 :\n" + + " return 3;\n" + + " case 795 :\n" + + " return 3;\n" + + " case 796 :\n" + + " return 3;\n" + + " case 797 :\n" + + " return 3;\n" + + " case 798 :\n" + + " return 3;\n" + + " case 799 :\n" + + " return 3;\n" + + " case 800 :\n" + + " return 3;\n" + + " case 801 :\n" + + " return 3;\n" + + " case 802 :\n" + + " return 3;\n" + + " case 803 :\n" + + " return 3;\n" + + " case 804 :\n" + + " return 3;\n" + + " case 805 :\n" + + " return 3;\n" + + " case 806 :\n" + + " return 3;\n" + + " case 807 :\n" + + " return 3;\n" + + " case 808 :\n" + + " return 3;\n" + + " case 809 :\n" + + " return 3;\n" + + " case 810 :\n" + + " return 3;\n" + + " case 811 :\n" + + " return 3;\n" + + " case 812 :\n" + + " return 3;\n" + + " case 813 :\n" + + " return 3;\n" + + " case 814 :\n" + + " return 3;\n" + + " case 815 :\n" + + " return 3;\n" + + " case 816 :\n" + + " return 3;\n" + + " case 817 :\n" + + " return 3;\n" + + " case 818 :\n" + + " return 3;\n" + + " case 819 :\n" + + " return 3;\n" + + " case 820 :\n" + + " return 3;\n" + + " case 821 :\n" + + " return 3;\n" + + " case 822 :\n" + + " return 3;\n" + + " case 823 :\n" + + " return 3;\n" + + " case 824 :\n" + + " return 3;\n" + + " case 825 :\n" + + " return 3;\n" + + " case 826 :\n" + + " return 3;\n" + + " case 827 :\n" + + " return 3;\n" + + " case 828 :\n" + + " return 3;\n" + + " case 829 :\n" + + " return 3;\n" + + " case 830 :\n" + + " return 3;\n" + + " case 831 :\n" + + " return 3;\n" + + " case 832 :\n" + + " return 3;\n" + + " case 833 :\n" + + " return 3;\n" + + " case 834 :\n" + + " return 3;\n" + + " case 835 :\n" + + " return 3;\n" + + " case 836 :\n" + + " return 3;\n" + + " case 837 :\n" + + " return 3;\n" + + " case 838 :\n" + + " return 3;\n" + + " case 839 :\n" + + " return 3;\n" + + " case 840 :\n" + + " return 3;\n" + + " case 841 :\n" + + " return 3;\n" + + " case 842 :\n" + + " return 3;\n" + + " case 843 :\n" + + " return 3;\n" + + " case 844 :\n" + + " return 3;\n" + + " case 845 :\n" + + " return 3;\n" + + " case 846 :\n" + + " return 3;\n" + + " case 847 :\n" + + " return 3;\n" + + " case 848 :\n" + + " return 3;\n" + + " case 849 :\n" + + " return 3;\n" + + " case 850 :\n" + + " return 3;\n" + + " case 851 :\n" + + " return 3;\n" + + " case 852 :\n" + + " return 3;\n" + + " case 853 :\n" + + " return 3;\n" + + " case 854 :\n" + + " return 3;\n" + + " case 855 :\n" + + " return 3;\n" + + " case 856 :\n" + + " return 3;\n" + + " case 857 :\n" + + " return 3;\n" + + " case 858 :\n" + + " return 3;\n" + + " case 859 :\n" + + " return 3;\n" + + " case 860 :\n" + + " return 3;\n" + + " case 861 :\n" + + " return 3;\n" + + " case 862 :\n" + + " return 3;\n" + + " case 863 :\n" + + " return 3;\n" + + " case 864 :\n" + + " return 3;\n" + + " case 865 :\n" + + " return 3;\n" + + " case 866 :\n" + + " return 3;\n" + + " case 867 :\n" + + " return 3;\n" + + " case 868 :\n" + + " return 3;\n" + + " case 869 :\n" + + " return 3;\n" + + " case 870 :\n" + + " return 3;\n" + + " case 871 :\n" + + " return 3;\n" + + " case 872 :\n" + + " return 3;\n" + + " case 873 :\n" + + " return 3;\n" + + " case 874 :\n" + + " return 3;\n" + + " case 875 :\n" + + " return 3;\n" + + " case 876 :\n" + + " return 3;\n" + + " case 877 :\n" + + " return 3;\n" + + " case 878 :\n" + + " return 3;\n" + + " case 879 :\n" + + " return 3;\n" + + " case 880 :\n" + + " return 3;\n" + + " case 881 :\n" + + " return 3;\n" + + " case 882 :\n" + + " return 3;\n" + + " case 883 :\n" + + " return 3;\n" + + " case 884 :\n" + + " return 3;\n" + + " case 885 :\n" + + " return 3;\n" + + " case 886 :\n" + + " return 3;\n" + + " case 887 :\n" + + " return 3;\n" + + " case 888 :\n" + + " return 3;\n" + + " case 889 :\n" + + " return 3;\n" + + " case 890 :\n" + + " return 3;\n" + + " case 891 :\n" + + " return 3;\n" + + " case 892 :\n" + + " return 3;\n" + + " case 893 :\n" + + " return 3;\n" + + " case 894 :\n" + + " return 3;\n" + + " case 895 :\n" + + " return 3;\n" + + " case 896 :\n" + + " return 3;\n" + + " case 897 :\n" + + " return 3;\n" + + " case 898 :\n" + + " return 3;\n" + + " case 899 :\n" + + " return 3;\n" + + " case 900 :\n" + + " return 3;\n" + + " case 901 :\n" + + " return 3;\n" + + " case 902 :\n" + + " return 3;\n" + + " case 903 :\n" + + " return 3;\n" + + " case 904 :\n" + + " return 3;\n" + + " case 905 :\n" + + " return 3;\n" + + " case 906 :\n" + + " return 3;\n" + + " case 907 :\n" + + " return 3;\n" + + " case 908 :\n" + + " return 3;\n" + + " case 909 :\n" + + " return 3;\n" + + " case 910 :\n" + + " return 3;\n" + + " case 911 :\n" + + " return 3;\n" + + " case 912 :\n" + + " return 3;\n" + + " case 913 :\n" + + " return 3;\n" + + " case 914 :\n" + + " return 3;\n" + + " case 915 :\n" + + " return 3;\n" + + " case 916 :\n" + + " return 3;\n" + + " case 917 :\n" + + " return 3;\n" + + " case 918 :\n" + + " return 3;\n" + + " case 919 :\n" + + " return 3;\n" + + " case 920 :\n" + + " return 3;\n" + + " case 921 :\n" + + " return 3;\n" + + " case 922 :\n" + + " return 3;\n" + + " case 923 :\n" + + " return 3;\n" + + " case 924 :\n" + + " return 3;\n" + + " case 925 :\n" + + " return 3;\n" + + " case 926 :\n" + + " return 3;\n" + + " case 927 :\n" + + " return 3;\n" + + " case 928 :\n" + + " return 3;\n" + + " case 929 :\n" + + " return 3;\n" + + " case 930 :\n" + + " return 3;\n" + + " case 931 :\n" + + " return 3;\n" + + " case 932 :\n" + + " return 3;\n" + + " case 933 :\n" + + " return 3;\n" + + " case 934 :\n" + + " return 3;\n" + + " case 935 :\n" + + " return 3;\n" + + " case 936 :\n" + + " return 3;\n" + + " case 937 :\n" + + " return 3;\n" + + " case 938 :\n" + + " return 3;\n" + + " case 939 :\n" + + " return 3;\n" + + " case 940 :\n" + + " return 3;\n" + + " case 941 :\n" + + " return 3;\n" + + " case 942 :\n" + + " return 3;\n" + + " case 943 :\n" + + " return 3;\n" + + " case 944 :\n" + + " return 3;\n" + + " case 945 :\n" + + " return 3;\n" + + " case 946 :\n" + + " return 3;\n" + + " case 947 :\n" + + " return 3;\n" + + " case 948 :\n" + + " return 3;\n" + + " case 949 :\n" + + " return 3;\n" + + " case 950 :\n" + + " return 3;\n" + + " case 951 :\n" + + " return 3;\n" + + " case 952 :\n" + + " return 3;\n" + + " case 953 :\n" + + " return 3;\n" + + " case 954 :\n" + + " return 3;\n" + + " case 955 :\n" + + " return 3;\n" + + " case 956 :\n" + + " return 3;\n" + + " case 957 :\n" + + " return 3;\n" + + " case 958 :\n" + + " return 3;\n" + + " case 959 :\n" + + " return 3;\n" + + " case 960 :\n" + + " return 3;\n" + + " case 961 :\n" + + " return 3;\n" + + " case 962 :\n" + + " return 3;\n" + + " case 963 :\n" + + " return 3;\n" + + " case 964 :\n" + + " return 3;\n" + + " case 965 :\n" + + " return 3;\n" + + " case 966 :\n" + + " return 3;\n" + + " case 967 :\n" + + " return 3;\n" + + " case 968 :\n" + + " return 3;\n" + + " case 969 :\n" + + " return 3;\n" + + " case 970 :\n" + + " return 3;\n" + + " case 971 :\n" + + " return 3;\n" + + " case 972 :\n" + + " return 3;\n" + + " case 973 :\n" + + " return 3;\n" + + " case 974 :\n" + + " return 3;\n" + + " case 975 :\n" + + " return 3;\n" + + " case 976 :\n" + + " return 3;\n" + + " case 977 :\n" + + " return 3;\n" + + " case 978 :\n" + + " return 3;\n" + + " case 979 :\n" + + " return 3;\n" + + " case 980 :\n" + + " return 3;\n" + + " case 981 :\n" + + " return 3;\n" + + " case 982 :\n" + + " return 3;\n" + + " case 983 :\n" + + " return 3;\n" + + " case 984 :\n" + + " return 3;\n" + + " case 985 :\n" + + " return 3;\n" + + " case 986 :\n" + + " return 3;\n" + + " case 987 :\n" + + " return 3;\n" + + " case 988 :\n" + + " return 3;\n" + + " case 989 :\n" + + " return 3;\n" + + " case 990 :\n" + + " return 3;\n" + + " case 991 :\n" + + " return 3;\n" + + " case 992 :\n" + + " return 3;\n" + + " case 993 :\n" + + " return 3;\n" + + " case 994 :\n" + + " return 3;\n" + + " case 995 :\n" + + " return 3;\n" + + " case 996 :\n" + + " return 3;\n" + + " case 997 :\n" + + " return 3;\n" + + " case 998 :\n" + + " return 3;\n" + + " case 999 :\n" + + " return 3;\n" + + " case 1000 :\n" + + " return 3;\n" + + " case 1001 :\n" + + " return 3;\n" + + " case 1002 :\n" + + " return 3;\n" + + " case 1003 :\n" + + " return 3;\n" + + " case 1004 :\n" + + " return 3;\n" + + " case 1005 :\n" + + " return 3;\n" + + " case 1006 :\n" + + " return 3;\n" + + " case 1007 :\n" + + " return 3;\n" + + " case 1008 :\n" + + " return 3;\n" + + " case 1009 :\n" + + " return 3;\n" + + " case 1010 :\n" + + " return 3;\n" + + " case 1011 :\n" + + " return 3;\n" + + " case 1012 :\n" + + " return 3;\n" + + " case 1013 :\n" + + " return 3;\n" + + " case 1014 :\n" + + " return 3;\n" + + " case 1015 :\n" + + " return 3;\n" + + " case 1016 :\n" + + " return 3;\n" + + " case 1017 :\n" + + " return 3;\n" + + " case 1018 :\n" + + " return 3;\n" + + " case 1019 :\n" + + " return 3;\n" + + " case 1020 :\n" + + " return 3;\n" + + " case 1021 :\n" + + " return 3;\n" + + " case 1022 :\n" + + " return 3;\n" + + " case 1023 :\n" + + " return 3;\n" + + " case 1024 :\n" + + " return 3;\n" + + " case 1025 :\n" + + " return 3;\n" + + " case 1026 :\n" + + " return 3;\n" + + " case 1027 :\n" + + " return 3;\n" + + " case 1028 :\n" + + " return 3;\n" + + " case 1029 :\n" + + " return 3;\n" + + " case 1030 :\n" + + " return 3;\n" + + " case 1031 :\n" + + " return 3;\n" + + " case 1032 :\n" + + " return 3;\n" + + " case 1033 :\n" + + " return 3;\n" + + " case 1034 :\n" + + " return 3;\n" + + " case 1035 :\n" + + " return 3;\n" + + " case 1036 :\n" + + " return 3;\n" + + " case 1037 :\n" + + " return 3;\n" + + " case 1038 :\n" + + " return 3;\n" + + " case 1039 :\n" + + " return 3;\n" + + " case 1040 :\n" + + " return 3;\n" + + " case 1041 :\n" + + " return 3;\n" + + " case 1042 :\n" + + " return 3;\n" + + " case 1043 :\n" + + " return 3;\n" + + " case 1044 :\n" + + " return 3;\n" + + " case 1045 :\n" + + " return 3;\n" + + " case 1046 :\n" + + " return 3;\n" + + " case 1047 :\n" + + " return 3;\n" + + " case 1048 :\n" + + " return 3;\n" + + " case 1049 :\n" + + " return 3;\n" + + " case 1050 :\n" + + " return 3;\n" + + " case 1051 :\n" + + " return 3;\n" + + " case 1052 :\n" + + " return 3;\n" + + " case 1053 :\n" + + " return 3;\n" + + " case 1054 :\n" + + " return 3;\n" + + " case 1055 :\n" + + " return 3;\n" + + " case 1056 :\n" + + " return 3;\n" + + " case 1057 :\n" + + " return 3;\n" + + " case 1058 :\n" + + " return 3;\n" + + " case 1059 :\n" + + " return 3;\n" + + " case 1060 :\n" + + " return 3;\n" + + " case 1061 :\n" + + " return 3;\n" + + " case 1062 :\n" + + " return 3;\n" + + " case 1063 :\n" + + " return 3;\n" + + " case 1064 :\n" + + " return 3;\n" + + " case 1065 :\n" + + " return 3;\n" + + " case 1066 :\n" + + " return 3;\n" + + " case 1067 :\n" + + " return 3;\n" + + " case 1068 :\n" + + " return 3;\n" + + " case 1069 :\n" + + " return 3;\n" + + " case 1070 :\n" + + " return 3;\n" + + " case 1071 :\n" + + " return 3;\n" + + " case 1072 :\n" + + " return 3;\n" + + " case 1073 :\n" + + " return 3;\n" + + " case 1074 :\n" + + " return 3;\n" + + " case 1075 :\n" + + " return 3;\n" + + " case 1076 :\n" + + " return 3;\n" + + " case 1077 :\n" + + " return 3;\n" + + " case 1078 :\n" + + " return 3;\n" + + " case 1079 :\n" + + " return 3;\n" + + " case 1080 :\n" + + " return 3;\n" + + " case 1081 :\n" + + " return 3;\n" + + " case 1082 :\n" + + " return 3;\n" + + " case 1083 :\n" + + " return 3;\n" + + " case 1084 :\n" + + " return 3;\n" + + " case 1085 :\n" + + " return 3;\n" + + " case 1086 :\n" + + " return 3;\n" + + " case 1087 :\n" + + " return 3;\n" + + " case 1088 :\n" + + " return 3;\n" + + " case 1089 :\n" + + " return 3;\n" + + " case 1090 :\n" + + " return 3;\n" + + " case 1091 :\n" + + " return 3;\n" + + " case 1092 :\n" + + " return 3;\n" + + " case 1093 :\n" + + " return 3;\n" + + " case 1094 :\n" + + " return 3;\n" + + " case 1095 :\n" + + " return 3;\n" + + " case 1096 :\n" + + " return 3;\n" + + " case 1097 :\n" + + " return 3;\n" + + " case 1098 :\n" + + " return 3;\n" + + " case 1099 :\n" + + " return 3;\n" + + " case 1100 :\n" + + " return 3;\n" + + " case 1101 :\n" + + " return 3;\n" + + " case 1102 :\n" + + " return 3;\n" + + " case 1103 :\n" + + " return 3;\n" + + " case 1104 :\n" + + " return 3;\n" + + " case 1105 :\n" + + " return 3;\n" + + " case 1106 :\n" + + " return 3;\n" + + " case 1107 :\n" + + " return 3;\n" + + " case 1108 :\n" + + " return 3;\n" + + " case 1109 :\n" + + " return 3;\n" + + " case 1110 :\n" + + " return 3;\n" + + " case 1111 :\n" + + " return 3;\n" + + " case 1112 :\n" + + " return 3;\n" + + " case 1113 :\n" + + " return 3;\n" + + " case 1114 :\n" + + " return 3;\n" + + " case 1115 :\n" + + " return 3;\n" + + " case 1116 :\n" + + " return 3;\n" + + " case 1117 :\n" + + " return 3;\n" + + " case 1118 :\n" + + " return 3;\n" + + " case 1119 :\n" + + " return 3;\n" + + " case 1120 :\n" + + " return 3;\n" + + " case 1121 :\n" + + " return 3;\n" + + " case 1122 :\n" + + " return 3;\n" + + " case 1123 :\n" + + " return 3;\n" + + " case 1124 :\n" + + " return 3;\n" + + " case 1125 :\n" + + " return 3;\n" + + " case 1126 :\n" + + " return 3;\n" + + " case 1127 :\n" + + " return 3;\n" + + " case 1128 :\n" + + " return 3;\n" + + " case 1129 :\n" + + " return 3;\n" + + " case 1130 :\n" + + " return 3;\n" + + " case 1131 :\n" + + " return 3;\n" + + " case 1132 :\n" + + " return 3;\n" + + " case 1133 :\n" + + " return 3;\n" + + " case 1134 :\n" + + " return 3;\n" + + " case 1135 :\n" + + " return 3;\n" + + " case 1136 :\n" + + " return 3;\n" + + " case 1137 :\n" + + " return 3;\n" + + " case 1138 :\n" + + " return 3;\n" + + " case 1139 :\n" + + " return 3;\n" + + " case 1140 :\n" + + " return 3;\n" + + " case 1141 :\n" + + " return 3;\n" + + " case 1142 :\n" + + " return 3;\n" + + " case 1143 :\n" + + " return 3;\n" + + " case 1144 :\n" + + " return 3;\n" + + " case 1145 :\n" + + " return 3;\n" + + " case 1146 :\n" + + " return 3;\n" + + " case 1147 :\n" + + " return 3;\n" + + " case 1148 :\n" + + " return 3;\n" + + " case 1149 :\n" + + " return 3;\n" + + " case 1150 :\n" + + " return 3;\n" + + " case 1151 :\n" + + " return 3;\n" + + " case 1152 :\n" + + " return 3;\n" + + " case 1153 :\n" + + " return 3;\n" + + " case 1154 :\n" + + " return 3;\n" + + " case 1155 :\n" + + " return 3;\n" + + " case 1156 :\n" + + " return 3;\n" + + " case 1157 :\n" + + " return 3;\n" + + " case 1158 :\n" + + " return 3;\n" + + " case 1159 :\n" + + " return 3;\n" + + " case 1160 :\n" + + " return 3;\n" + + " case 1161 :\n" + + " return 3;\n" + + " case 1162 :\n" + + " return 3;\n" + + " case 1163 :\n" + + " return 3;\n" + + " case 1164 :\n" + + " return 3;\n" + + " case 1165 :\n" + + " return 3;\n" + + " case 1166 :\n" + + " return 3;\n" + + " case 1167 :\n" + + " return 3;\n" + + " case 1168 :\n" + + " return 3;\n" + + " case 1169 :\n" + + " return 3;\n" + + " case 1170 :\n" + + " return 3;\n" + + " case 1171 :\n" + + " return 3;\n" + + " case 1172 :\n" + + " return 3;\n" + + " case 1173 :\n" + + " return 3;\n" + + " case 1174 :\n" + + " return 3;\n" + + " case 1175 :\n" + + " return 3;\n" + + " case 1176 :\n" + + " return 3;\n" + + " case 1177 :\n" + + " return 3;\n" + + " case 1178 :\n" + + " return 3;\n" + + " case 1179 :\n" + + " return 3;\n" + + " case 1180 :\n" + + " return 3;\n" + + " case 1181 :\n" + + " return 3;\n" + + " case 1182 :\n" + + " return 3;\n" + + " case 1183 :\n" + + " return 3;\n" + + " case 1184 :\n" + + " return 3;\n" + + " case 1185 :\n" + + " return 3;\n" + + " case 1186 :\n" + + " return 3;\n" + + " case 1187 :\n" + + " return 3;\n" + + " case 1188 :\n" + + " return 3;\n" + + " case 1189 :\n" + + " return 3;\n" + + " case 1190 :\n" + + " return 3;\n" + + " case 1191 :\n" + + " return 3;\n" + + " case 1192 :\n" + + " return 3;\n" + + " case 1193 :\n" + + " return 3;\n" + + " case 1194 :\n" + + " return 3;\n" + + " case 1195 :\n" + + " return 3;\n" + + " case 1196 :\n" + + " return 3;\n" + + " case 1197 :\n" + + " return 3;\n" + + " case 1198 :\n" + + " return 3;\n" + + " case 1199 :\n" + + " return 3;\n" + + " case 1200 :\n" + + " return 3;\n" + + " case 1201 :\n" + + " return 3;\n" + + " case 1202 :\n" + + " return 3;\n" + + " case 1203 :\n" + + " return 3;\n" + + " case 1204 :\n" + + " return 3;\n" + + " case 1205 :\n" + + " return 3;\n" + + " case 1206 :\n" + + " return 3;\n" + + " case 1207 :\n" + + " return 3;\n" + + " case 1208 :\n" + + " return 3;\n" + + " case 1209 :\n" + + " return 3;\n" + + " case 1210 :\n" + + " return 3;\n" + + " case 1211 :\n" + + " return 3;\n" + + " case 1212 :\n" + + " return 3;\n" + + " case 1213 :\n" + + " return 3;\n" + + " case 1214 :\n" + + " return 3;\n" + + " case 1215 :\n" + + " return 3;\n" + + " case 1216 :\n" + + " return 3;\n" + + " case 1217 :\n" + + " return 3;\n" + + " case 1218 :\n" + + " return 3;\n" + + " case 1219 :\n" + + " return 3;\n" + + " case 1220 :\n" + + " return 3;\n" + + " case 1221 :\n" + + " return 3;\n" + + " case 1222 :\n" + + " return 3;\n" + + " case 1223 :\n" + + " return 3;\n" + + " case 1224 :\n" + + " return 3;\n" + + " case 1225 :\n" + + " return 3;\n" + + " case 1226 :\n" + + " return 3;\n" + + " case 1227 :\n" + + " return 3;\n" + + " case 1228 :\n" + + " return 3;\n" + + " case 1229 :\n" + + " return 3;\n" + + " case 1230 :\n" + + " return 3;\n" + + " case 1231 :\n" + + " return 3;\n" + + " case 1232 :\n" + + " return 3;\n" + + " case 1233 :\n" + + " return 3;\n" + + " case 1234 :\n" + + " return 3;\n" + + " case 1235 :\n" + + " return 3;\n" + + " case 1236 :\n" + + " return 3;\n" + + " case 1237 :\n" + + " return 3;\n" + + " case 1238 :\n" + + " return 3;\n" + + " case 1239 :\n" + + " return 3;\n" + + " case 1240 :\n" + + " return 3;\n" + + " case 1241 :\n" + + " return 3;\n" + + " case 1242 :\n" + + " return 3;\n" + + " case 1243 :\n" + + " return 3;\n" + + " case 1244 :\n" + + " return 3;\n" + + " case 1245 :\n" + + " return 3;\n" + + " case 1246 :\n" + + " return 3;\n" + + " case 1247 :\n" + + " return 3;\n" + + " case 1248 :\n" + + " return 3;\n" + + " case 1249 :\n" + + " return 3;\n" + + " case 1250 :\n" + + " return 3;\n" + + " case 1251 :\n" + + " return 3;\n" + + " case 1252 :\n" + + " return 3;\n" + + " case 1253 :\n" + + " return 3;\n" + + " case 1254 :\n" + + " return 3;\n" + + " case 1255 :\n" + + " return 3;\n" + + " case 1256 :\n" + + " return 3;\n" + + " case 1257 :\n" + + " return 3;\n" + + " case 1258 :\n" + + " return 3;\n" + + " case 1259 :\n" + + " return 3;\n" + + " case 1260 :\n" + + " return 3;\n" + + " case 1261 :\n" + + " return 3;\n" + + " case 1262 :\n" + + " return 3;\n" + + " case 1263 :\n" + + " return 3;\n" + + " case 1264 :\n" + + " return 3;\n" + + " case 1265 :\n" + + " return 3;\n" + + " case 1266 :\n" + + " return 3;\n" + + " case 1267 :\n" + + " return 3;\n" + + " case 1268 :\n" + + " return 3;\n" + + " case 1269 :\n" + + " return 3;\n" + + " case 1270 :\n" + + " return 3;\n" + + " case 1271 :\n" + + " return 3;\n" + + " case 1272 :\n" + + " return 3;\n" + + " case 1273 :\n" + + " return 3;\n" + + " case 1274 :\n" + + " return 3;\n" + + " case 1275 :\n" + + " return 3;\n" + + " case 1276 :\n" + + " return 3;\n" + + " case 1277 :\n" + + " return 3;\n" + + " case 1278 :\n" + + " return 3;\n" + + " case 1279 :\n" + + " return 3;\n" + + " case 1280 :\n" + + " return 3;\n" + + " case 1281 :\n" + + " return 3;\n" + + " case 1282 :\n" + + " return 3;\n" + + " case 1283 :\n" + + " return 3;\n" + + " case 1284 :\n" + + " return 3;\n" + + " case 1285 :\n" + + " return 3;\n" + + " case 1286 :\n" + + " return 3;\n" + + " case 1287 :\n" + + " return 3;\n" + + " case 1288 :\n" + + " return 3;\n" + + " case 1289 :\n" + + " return 3;\n" + + " case 1290 :\n" + + " return 3;\n" + + " case 1291 :\n" + + " return 3;\n" + + " case 1292 :\n" + + " return 3;\n" + + " case 1293 :\n" + + " return 3;\n" + + " case 1294 :\n" + + " return 3;\n" + + " case 1295 :\n" + + " return 3;\n" + + " case 1296 :\n" + + " return 3;\n" + + " case 1297 :\n" + + " return 3;\n" + + " case 1298 :\n" + + " return 3;\n" + + " case 1299 :\n" + + " return 3;\n" + + " case 1300 :\n" + + " return 3;\n" + + " case 1301 :\n" + + " return 3;\n" + + " case 1302 :\n" + + " return 3;\n" + + " case 1303 :\n" + + " return 3;\n" + + " case 1304 :\n" + + " return 3;\n" + + " case 1305 :\n" + + " return 3;\n" + + " case 1306 :\n" + + " return 3;\n" + + " case 1307 :\n" + + " return 3;\n" + + " case 1308 :\n" + + " return 3;\n" + + " case 1309 :\n" + + " return 3;\n" + + " case 1310 :\n" + + " return 3;\n" + + " case 1311 :\n" + + " return 3;\n" + + " case 1312 :\n" + + " return 3;\n" + + " case 1313 :\n" + + " return 3;\n" + + " case 1314 :\n" + + " return 3;\n" + + " case 1315 :\n" + + " return 3;\n" + + " case 1316 :\n" + + " return 3;\n" + + " case 1317 :\n" + + " return 3;\n" + + " case 1318 :\n" + + " return 3;\n" + + " case 1319 :\n" + + " return 3;\n" + + " case 1320 :\n" + + " return 3;\n" + + " case 1321 :\n" + + " return 3;\n" + + " case 1322 :\n" + + " return 3;\n" + + " case 1323 :\n" + + " return 3;\n" + + " case 1324 :\n" + + " return 3;\n" + + " case 1325 :\n" + + " return 3;\n" + + " case 1326 :\n" + + " return 3;\n" + + " case 1327 :\n" + + " return 3;\n" + + " case 1328 :\n" + + " return 3;\n" + + " case 1329 :\n" + + " return 3;\n" + + " case 1330 :\n" + + " return 3;\n" + + " case 1331 :\n" + + " return 3;\n" + + " case 1332 :\n" + + " return 3;\n" + + " case 1333 :\n" + + " return 3;\n" + + " case 1334 :\n" + + " return 3;\n" + + " case 1335 :\n" + + " return 3;\n" + + " case 1336 :\n" + + " return 3;\n" + + " case 1337 :\n" + + " return 3;\n" + + " case 1338 :\n" + + " return 3;\n" + + " case 1339 :\n" + + " return 3;\n" + + " case 1340 :\n" + + " return 3;\n" + + " case 1341 :\n" + + " return 3;\n" + + " case 1342 :\n" + + " return 3;\n" + + " case 1343 :\n" + + " return 3;\n" + + " case 1344 :\n" + + " return 3;\n" + + " case 1345 :\n" + + " return 3;\n" + + " case 1346 :\n" + + " return 3;\n" + + " case 1347 :\n" + + " return 3;\n" + + " case 1348 :\n" + + " return 3;\n" + + " case 1349 :\n" + + " return 3;\n" + + " case 1350 :\n" + + " return 3;\n" + + " case 1351 :\n" + + " return 3;\n" + + " case 1352 :\n" + + " return 3;\n" + + " case 1353 :\n" + + " return 3;\n" + + " case 1354 :\n" + + " return 3;\n" + + " case 1355 :\n" + + " return 3;\n" + + " case 1356 :\n" + + " return 3;\n" + + " case 1357 :\n" + + " return 3;\n" + + " case 1358 :\n" + + " return 3;\n" + + " case 1359 :\n" + + " return 3;\n" + + " case 1360 :\n" + + " return 3;\n" + + " case 1361 :\n" + + " return 3;\n" + + " case 1362 :\n" + + " return 3;\n" + + " case 1363 :\n" + + " return 3;\n" + + " case 1364 :\n" + + " return 3;\n" + + " case 1365 :\n" + + " return 3;\n" + + " case 1366 :\n" + + " return 3;\n" + + " case 1367 :\n" + + " return 3;\n" + + " case 1368 :\n" + + " return 3;\n" + + " case 1369 :\n" + + " return 3;\n" + + " case 1370 :\n" + + " return 3;\n" + + " case 1371 :\n" + + " return 3;\n" + + " case 1372 :\n" + + " return 3;\n" + + " case 1373 :\n" + + " return 3;\n" + + " case 1374 :\n" + + " return 3;\n" + + " case 1375 :\n" + + " return 3;\n" + + " case 1376 :\n" + + " return 3;\n" + + " case 1377 :\n" + + " return 3;\n" + + " case 1378 :\n" + + " return 3;\n" + + " case 1379 :\n" + + " return 3;\n" + + " case 1380 :\n" + + " return 3;\n" + + " case 1381 :\n" + + " return 3;\n" + + " case 1382 :\n" + + " return 3;\n" + + " case 1383 :\n" + + " return 3;\n" + + " case 1384 :\n" + + " return 3;\n" + + " case 1385 :\n" + + " return 3;\n" + + " case 1386 :\n" + + " return 3;\n" + + " case 1387 :\n" + + " return 3;\n" + + " case 1388 :\n" + + " return 3;\n" + + " case 1389 :\n" + + " return 3;\n" + + " case 1390 :\n" + + " return 3;\n" + + " case 1391 :\n" + + " return 3;\n" + + " case 1392 :\n" + + " return 3;\n" + + " case 1393 :\n" + + " return 3;\n" + + " case 1394 :\n" + + " return 3;\n" + + " case 1395 :\n" + + " return 3;\n" + + " case 1396 :\n" + + " return 3;\n" + + " case 1397 :\n" + + " return 3;\n" + + " case 1398 :\n" + + " return 3;\n" + + " case 1399 :\n" + + " return 3;\n" + + " case 1400 :\n" + + " return 3;\n" + + " case 1401 :\n" + + " return 3;\n" + + " case 1402 :\n" + + " return 3;\n" + + " case 1403 :\n" + + " return 3;\n" + + " case 1404 :\n" + + " return 3;\n" + + " case 1405 :\n" + + " return 3;\n" + + " case 1406 :\n" + + " return 3;\n" + + " case 1407 :\n" + + " return 3;\n" + + " case 1408 :\n" + + " return 3;\n" + + " case 1409 :\n" + + " return 3;\n" + + " case 1410 :\n" + + " return 3;\n" + + " case 1411 :\n" + + " return 3;\n" + + " case 1412 :\n" + + " return 3;\n" + + " case 1413 :\n" + + " return 3;\n" + + " case 1414 :\n" + + " return 3;\n" + + " case 1415 :\n" + + " return 3;\n" + + " case 1416 :\n" + + " return 3;\n" + + " case 1417 :\n" + + " return 3;\n" + + " case 1418 :\n" + + " return 3;\n" + + " case 1419 :\n" + + " return 3;\n" + + " case 1420 :\n" + + " return 3;\n" + + " case 1421 :\n" + + " return 3;\n" + + " case 1422 :\n" + + " return 3;\n" + + " case 1423 :\n" + + " return 3;\n" + + " case 1424 :\n" + + " return 3;\n" + + " case 1425 :\n" + + " return 3;\n" + + " case 1426 :\n" + + " return 3;\n" + + " case 1427 :\n" + + " return 3;\n" + + " case 1428 :\n" + + " return 3;\n" + + " case 1429 :\n" + + " return 3;\n" + + " case 1430 :\n" + + " return 3;\n" + + " case 1431 :\n" + + " return 3;\n" + + " case 1432 :\n" + + " return 3;\n" + + " case 1433 :\n" + + " return 3;\n" + + " case 1434 :\n" + + " return 3;\n" + + " case 1435 :\n" + + " return 3;\n" + + " case 1436 :\n" + + " return 3;\n" + + " case 1437 :\n" + + " return 3;\n" + + " case 1438 :\n" + + " return 3;\n" + + " case 1439 :\n" + + " return 3;\n" + + " case 1440 :\n" + + " return 3;\n" + + " case 1441 :\n" + + " return 3;\n" + + " case 1442 :\n" + + " return 3;\n" + + " case 1443 :\n" + + " return 3;\n" + + " case 1444 :\n" + + " return 3;\n" + + " case 1445 :\n" + + " return 3;\n" + + " case 1446 :\n" + + " return 3;\n" + + " case 1447 :\n" + + " return 3;\n" + + " case 1448 :\n" + + " return 3;\n" + + " case 1449 :\n" + + " return 3;\n" + + " case 1450 :\n" + + " return 3;\n" + + " case 1451 :\n" + + " return 3;\n" + + " case 1452 :\n" + + " return 3;\n" + + " case 1453 :\n" + + " return 3;\n" + + " case 1454 :\n" + + " return 3;\n" + + " case 1455 :\n" + + " return 3;\n" + + " case 1456 :\n" + + " return 3;\n" + + " case 1457 :\n" + + " return 3;\n" + + " case 1458 :\n" + + " return 3;\n" + + " case 1459 :\n" + + " return 3;\n" + + " case 1460 :\n" + + " return 3;\n" + + " case 1461 :\n" + + " return 3;\n" + + " case 1462 :\n" + + " return 3;\n" + + " case 1463 :\n" + + " return 3;\n" + + " case 1464 :\n" + + " return 3;\n" + + " case 1465 :\n" + + " return 3;\n" + + " case 1466 :\n" + + " return 3;\n" + + " case 1467 :\n" + + " return 3;\n" + + " case 1468 :\n" + + " return 3;\n" + + " case 1469 :\n" + + " return 3;\n" + + " case 1470 :\n" + + " return 3;\n" + + " case 1471 :\n" + + " return 3;\n" + + " case 1472 :\n" + + " return 3;\n" + + " case 1473 :\n" + + " return 3;\n" + + " case 1474 :\n" + + " return 3;\n" + + " case 1475 :\n" + + " return 3;\n" + + " case 1476 :\n" + + " return 3;\n" + + " case 1477 :\n" + + " return 3;\n" + + " case 1478 :\n" + + " return 3;\n" + + " case 1479 :\n" + + " return 3;\n" + + " case 1480 :\n" + + " return 3;\n" + + " case 1481 :\n" + + " return 3;\n" + + " case 1482 :\n" + + " return 3;\n" + + " case 1483 :\n" + + " return 3;\n" + + " case 1484 :\n" + + " return 3;\n" + + " case 1485 :\n" + + " return 3;\n" + + " case 1486 :\n" + + " return 3;\n" + + " case 1487 :\n" + + " return 3;\n" + + " case 1488 :\n" + + " return 3;\n" + + " case 1489 :\n" + + " return 3;\n" + + " case 1490 :\n" + + " return 3;\n" + + " case 1491 :\n" + + " return 3;\n" + + " case 1492 :\n" + + " return 3;\n" + + " case 1493 :\n" + + " return 3;\n" + + " case 1494 :\n" + + " return 3;\n" + + " case 1495 :\n" + + " return 3;\n" + + " case 1496 :\n" + + " return 3;\n" + + " case 1497 :\n" + + " return 3;\n" + + " case 1498 :\n" + + " return 3;\n" + + " case 1499 :\n" + + " return 3;\n" + + " case 1500 :\n" + + " return 3;\n" + + " case 1501 :\n" + + " return 3;\n" + + " case 1502 :\n" + + " return 3;\n" + + " case 1503 :\n" + + " return 3;\n" + + " case 1504 :\n" + + " return 3;\n" + + " case 1505 :\n" + + " return 3;\n" + + " case 1506 :\n" + + " return 3;\n" + + " case 1507 :\n" + + " return 3;\n" + + " case 1508 :\n" + + " return 3;\n" + + " case 1509 :\n" + + " return 3;\n" + + " case 1510 :\n" + + " return 3;\n" + + " case 1511 :\n" + + " return 3;\n" + + " case 1512 :\n" + + " return 3;\n" + + " case 1513 :\n" + + " return 3;\n" + + " case 1514 :\n" + + " return 3;\n" + + " case 1515 :\n" + + " return 3;\n" + + " case 1516 :\n" + + " return 3;\n" + + " case 1517 :\n" + + " return 3;\n" + + " case 1518 :\n" + + " return 3;\n" + + " case 1519 :\n" + + " return 3;\n" + + " case 1520 :\n" + + " return 3;\n" + + " case 1521 :\n" + + " return 3;\n" + + " case 1522 :\n" + + " return 3;\n" + + " case 1523 :\n" + + " return 3;\n" + + " case 1524 :\n" + + " return 3;\n" + + " case 1525 :\n" + + " return 3;\n" + + " case 1526 :\n" + + " return 3;\n" + + " case 1527 :\n" + + " return 3;\n" + + " case 1528 :\n" + + " return 3;\n" + + " case 1529 :\n" + + " return 3;\n" + + " case 1530 :\n" + + " return 3;\n" + + " case 1531 :\n" + + " return 3;\n" + + " case 1532 :\n" + + " return 3;\n" + + " case 1533 :\n" + + " return 3;\n" + + " case 1534 :\n" + + " return 3;\n" + + " case 1535 :\n" + + " return 3;\n" + + " case 1536 :\n" + + " return 3;\n" + + " case 1537 :\n" + + " return 3;\n" + + " case 1538 :\n" + + " return 3;\n" + + " case 1539 :\n" + + " return 3;\n" + + " case 1540 :\n" + + " return 3;\n" + + " case 1541 :\n" + + " return 3;\n" + + " case 1542 :\n" + + " return 3;\n" + + " case 1543 :\n" + + " return 3;\n" + + " case 1544 :\n" + + " return 3;\n" + + " case 1545 :\n" + + " return 3;\n" + + " case 1546 :\n" + + " return 3;\n" + + " case 1547 :\n" + + " return 3;\n" + + " case 1548 :\n" + + " return 3;\n" + + " case 1549 :\n" + + " return 3;\n" + + " case 1550 :\n" + + " return 3;\n" + + " case 1551 :\n" + + " return 3;\n" + + " case 1552 :\n" + + " return 3;\n" + + " case 1553 :\n" + + " return 3;\n" + + " case 1554 :\n" + + " return 3;\n" + + " case 1555 :\n" + + " return 3;\n" + + " case 1556 :\n" + + " return 3;\n" + + " case 1557 :\n" + + " return 3;\n" + + " case 1558 :\n" + + " return 3;\n" + + " case 1559 :\n" + + " return 3;\n" + + " case 1560 :\n" + + " return 3;\n" + + " case 1561 :\n" + + " return 3;\n" + + " case 1562 :\n" + + " return 3;\n" + + " case 1563 :\n" + + " return 3;\n" + + " case 1564 :\n" + + " return 3;\n" + + " case 1565 :\n" + + " return 3;\n" + + " case 1566 :\n" + + " return 3;\n" + + " case 1567 :\n" + + " return 3;\n" + + " case 1568 :\n" + + " return 3;\n" + + " case 1569 :\n" + + " return 3;\n" + + " case 1570 :\n" + + " return 3;\n" + + " case 1571 :\n" + + " return 3;\n" + + " case 1572 :\n" + + " return 3;\n" + + " case 1573 :\n" + + " return 3;\n" + + " case 1574 :\n" + + " return 3;\n" + + " case 1575 :\n" + + " return 3;\n" + + " case 1576 :\n" + + " return 3;\n" + + " case 1577 :\n" + + " return 3;\n" + + " case 1578 :\n" + + " return 3;\n" + + " case 1579 :\n" + + " return 3;\n" + + " case 1580 :\n" + + " return 3;\n" + + " case 1581 :\n" + + " return 3;\n" + + " case 1582 :\n" + + " return 3;\n" + + " case 1583 :\n" + + " return 3;\n" + + " case 1584 :\n" + + " return 3;\n" + + " case 1585 :\n" + + " return 3;\n" + + " case 1586 :\n" + + " return 3;\n" + + " case 1587 :\n" + + " return 3;\n" + + " case 1588 :\n" + + " return 3;\n" + + " case 1589 :\n" + + " return 3;\n" + + " case 1590 :\n" + + " return 3;\n" + + " case 1591 :\n" + + " return 3;\n" + + " case 1592 :\n" + + " return 3;\n" + + " case 1593 :\n" + + " return 3;\n" + + " case 1594 :\n" + + " return 3;\n" + + " case 1595 :\n" + + " return 3;\n" + + " case 1596 :\n" + + " return 3;\n" + + " case 1597 :\n" + + " return 3;\n" + + " case 1598 :\n" + + " return 3;\n" + + " case 1599 :\n" + + " return 3;\n" + + " case 1600 :\n" + + " return 3;\n" + + " case 1601 :\n" + + " return 3;\n" + + " case 1602 :\n" + + " return 3;\n" + + " case 1603 :\n" + + " return 3;\n" + + " case 1604 :\n" + + " return 3;\n" + + " case 1605 :\n" + + " return 3;\n" + + " case 1606 :\n" + + " return 3;\n" + + " case 1607 :\n" + + " return 3;\n" + + " case 1608 :\n" + + " return 3;\n" + + " case 1609 :\n" + + " return 3;\n" + + " case 1610 :\n" + + " return 3;\n" + + " case 1611 :\n" + + " return 3;\n" + + " case 1612 :\n" + + " return 3;\n" + + " case 1613 :\n" + + " return 3;\n" + + " case 1614 :\n" + + " return 3;\n" + + " case 1615 :\n" + + " return 3;\n" + + " case 1616 :\n" + + " return 3;\n" + + " case 1617 :\n" + + " return 3;\n" + + " case 1618 :\n" + + " return 3;\n" + + " case 1619 :\n" + + " return 3;\n" + + " case 1620 :\n" + + " return 3;\n" + + " case 1621 :\n" + + " return 3;\n" + + " case 1622 :\n" + + " return 3;\n" + + " case 1623 :\n" + + " return 3;\n" + + " case 1624 :\n" + + " return 3;\n" + + " case 1625 :\n" + + " return 3;\n" + + " case 1626 :\n" + + " return 3;\n" + + " case 1627 :\n" + + " return 3;\n" + + " case 1628 :\n" + + " return 3;\n" + + " case 1629 :\n" + + " return 3;\n" + + " case 1630 :\n" + + " return 3;\n" + + " case 1631 :\n" + + " return 3;\n" + + " case 1632 :\n" + + " return 3;\n" + + " case 1633 :\n" + + " return 3;\n" + + " case 1634 :\n" + + " return 3;\n" + + " case 1635 :\n" + + " return 3;\n" + + " case 1636 :\n" + + " return 3;\n" + + " case 1637 :\n" + + " return 3;\n" + + " case 1638 :\n" + + " return 3;\n" + + " case 1639 :\n" + + " return 3;\n" + + " case 1640 :\n" + + " return 3;\n" + + " case 1641 :\n" + + " return 3;\n" + + " case 1642 :\n" + + " return 3;\n" + + " case 1643 :\n" + + " return 3;\n" + + " case 1644 :\n" + + " return 3;\n" + + " case 1645 :\n" + + " return 3;\n" + + " case 1646 :\n" + + " return 3;\n" + + " case 1647 :\n" + + " return 3;\n" + + " case 1648 :\n" + + " return 3;\n" + + " case 1649 :\n" + + " return 3;\n" + + " case 1650 :\n" + + " return 3;\n" + + " case 1651 :\n" + + " return 3;\n" + + " case 1652 :\n" + + " return 3;\n" + + " case 1653 :\n" + + " return 3;\n" + + " case 1654 :\n" + + " return 3;\n" + + " case 1655 :\n" + + " return 3;\n" + + " case 1656 :\n" + + " return 3;\n" + + " case 1657 :\n" + + " return 3;\n" + + " case 1658 :\n" + + " return 3;\n" + + " case 1659 :\n" + + " return 3;\n" + + " case 1660 :\n" + + " return 3;\n" + + " case 1661 :\n" + + " return 3;\n" + + " case 1662 :\n" + + " return 3;\n" + + " case 1663 :\n" + + " return 3;\n" + + " case 1664 :\n" + + " return 3;\n" + + " case 1665 :\n" + + " return 3;\n" + + " case 1666 :\n" + + " return 3;\n" + + " case 1667 :\n" + + " return 3;\n" + + " case 1668 :\n" + + " return 3;\n" + + " case 1669 :\n" + + " return 3;\n" + + " case 1670 :\n" + + " return 3;\n" + + " case 1671 :\n" + + " return 3;\n" + + " case 1672 :\n" + + " return 3;\n" + + " case 1673 :\n" + + " return 3;\n" + + " case 1674 :\n" + + " return 3;\n" + + " case 1675 :\n" + + " return 3;\n" + + " case 1676 :\n" + + " return 3;\n" + + " case 1677 :\n" + + " return 3;\n" + + " case 1678 :\n" + + " return 3;\n" + + " case 1679 :\n" + + " return 3;\n" + + " case 1680 :\n" + + " return 3;\n" + + " case 1681 :\n" + + " return 3;\n" + + " case 1682 :\n" + + " return 3;\n" + + " case 1683 :\n" + + " return 3;\n" + + " case 1684 :\n" + + " return 3;\n" + + " case 1685 :\n" + + " return 3;\n" + + " case 1686 :\n" + + " return 3;\n" + + " case 1687 :\n" + + " return 3;\n" + + " case 1688 :\n" + + " return 3;\n" + + " case 1689 :\n" + + " return 3;\n" + + " case 1690 :\n" + + " return 3;\n" + + " case 1691 :\n" + + " return 3;\n" + + " case 1692 :\n" + + " return 3;\n" + + " case 1693 :\n" + + " return 3;\n" + + " case 1694 :\n" + + " return 3;\n" + + " case 1695 :\n" + + " return 3;\n" + + " case 1696 :\n" + + " return 3;\n" + + " case 1697 :\n" + + " return 3;\n" + + " case 1698 :\n" + + " return 3;\n" + + " case 1699 :\n" + + " return 3;\n" + + " case 1700 :\n" + + " return 3;\n" + + " case 1701 :\n" + + " return 3;\n" + + " case 1702 :\n" + + " return 3;\n" + + " case 1703 :\n" + + " return 3;\n" + + " case 1704 :\n" + + " return 3;\n" + + " case 1705 :\n" + + " return 3;\n" + + " case 1706 :\n" + + " return 3;\n" + + " case 1707 :\n" + + " return 3;\n" + + " case 1708 :\n" + + " return 3;\n" + + " case 1709 :\n" + + " return 3;\n" + + " case 1710 :\n" + + " return 3;\n" + + " case 1711 :\n" + + " return 3;\n" + + " case 1712 :\n" + + " return 3;\n" + + " case 1713 :\n" + + " return 3;\n" + + " case 1714 :\n" + + " return 3;\n" + + " case 1715 :\n" + + " return 3;\n" + + " case 1716 :\n" + + " return 3;\n" + + " case 1717 :\n" + + " return 3;\n" + + " case 1718 :\n" + + " return 3;\n" + + " case 1719 :\n" + + " return 3;\n" + + " case 1720 :\n" + + " return 3;\n" + + " case 1721 :\n" + + " return 3;\n" + + " case 1722 :\n" + + " return 3;\n" + + " case 1723 :\n" + + " return 3;\n" + + " case 1724 :\n" + + " return 3;\n" + + " case 1725 :\n" + + " return 3;\n" + + " case 1726 :\n" + + " return 3;\n" + + " case 1727 :\n" + + " return 3;\n" + + " case 1728 :\n" + + " return 3;\n" + + " case 1729 :\n" + + " return 3;\n" + + " case 1730 :\n" + + " return 3;\n" + + " case 1731 :\n" + + " return 3;\n" + + " case 1732 :\n" + + " return 3;\n" + + " case 1733 :\n" + + " return 3;\n" + + " case 1734 :\n" + + " return 3;\n" + + " case 1735 :\n" + + " return 3;\n" + + " case 1736 :\n" + + " return 3;\n" + + " case 1737 :\n" + + " return 3;\n" + + " case 1738 :\n" + + " return 3;\n" + + " case 1739 :\n" + + " return 3;\n" + + " case 1740 :\n" + + " return 3;\n" + + " case 1741 :\n" + + " return 3;\n" + + " case 1742 :\n" + + " return 3;\n" + + " case 1743 :\n" + + " return 3;\n" + + " case 1744 :\n" + + " return 3;\n" + + " case 1745 :\n" + + " return 3;\n" + + " case 1746 :\n" + + " return 3;\n" + + " case 1747 :\n" + + " return 3;\n" + + " case 1748 :\n" + + " return 3;\n" + + " case 1749 :\n" + + " return 3;\n" + + " case 1750 :\n" + + " return 3;\n" + + " case 1751 :\n" + + " return 3;\n" + + " case 1752 :\n" + + " return 3;\n" + + " case 1753 :\n" + + " return 3;\n" + + " case 1754 :\n" + + " return 3;\n" + + " case 1755 :\n" + + " return 3;\n" + + " case 1756 :\n" + + " return 3;\n" + + " case 1757 :\n" + + " return 3;\n" + + " case 1758 :\n" + + " return 3;\n" + + " case 1759 :\n" + + " return 3;\n" + + " case 1760 :\n" + + " return 3;\n" + + " case 1761 :\n" + + " return 3;\n" + + " case 1762 :\n" + + " return 3;\n" + + " case 1763 :\n" + + " return 3;\n" + + " case 1764 :\n" + + " return 3;\n" + + " case 1765 :\n" + + " return 3;\n" + + " case 1766 :\n" + + " return 3;\n" + + " case 1767 :\n" + + " return 3;\n" + + " case 1768 :\n" + + " return 3;\n" + + " case 1769 :\n" + + " return 3;\n" + + " case 1770 :\n" + + " return 3;\n" + + " case 1771 :\n" + + " return 3;\n" + + " case 1772 :\n" + + " return 3;\n" + + " case 1773 :\n" + + " return 3;\n" + + " case 1774 :\n" + + " return 3;\n" + + " case 1775 :\n" + + " return 3;\n" + + " case 1776 :\n" + + " return 3;\n" + + " case 1777 :\n" + + " return 3;\n" + + " case 1778 :\n" + + " return 3;\n" + + " case 1779 :\n" + + " return 3;\n" + + " case 1780 :\n" + + " return 3;\n" + + " case 1781 :\n" + + " return 3;\n" + + " case 1782 :\n" + + " return 3;\n" + + " case 1783 :\n" + + " return 3;\n" + + " case 1784 :\n" + + " return 3;\n" + + " case 1785 :\n" + + " return 3;\n" + + " case 1786 :\n" + + " return 3;\n" + + " case 1787 :\n" + + " return 3;\n" + + " case 1788 :\n" + + " return 3;\n" + + " case 1789 :\n" + + " return 3;\n" + + " case 1790 :\n" + + " return 3;\n" + + " case 1791 :\n" + + " return 3;\n" + + " case 1792 :\n" + + " return 3;\n" + + " case 1793 :\n" + + " return 3;\n" + + " case 1794 :\n" + + " return 3;\n" + + " case 1795 :\n" + + " return 3;\n" + + " case 1796 :\n" + + " return 3;\n" + + " case 1797 :\n" + + " return 3;\n" + + " case 1798 :\n" + + " return 3;\n" + + " case 1799 :\n" + + " return 3;\n" + + " case 1800 :\n" + + " return 3;\n" + + " case 1801 :\n" + + " return 3;\n" + + " case 1802 :\n" + + " return 3;\n" + + " case 1803 :\n" + + " return 3;\n" + + " case 1804 :\n" + + " return 3;\n" + + " case 1805 :\n" + + " return 3;\n" + + " case 1806 :\n" + + " return 3;\n" + + " case 1807 :\n" + + " return 3;\n" + + " case 1808 :\n" + + " return 3;\n" + + " case 1809 :\n" + + " return 3;\n" + + " case 1810 :\n" + + " return 3;\n" + + " case 1811 :\n" + + " return 3;\n" + + " case 1812 :\n" + + " return 3;\n" + + " case 1813 :\n" + + " return 3;\n" + + " case 1814 :\n" + + " return 3;\n" + + " case 1815 :\n" + + " return 3;\n" + + " case 1816 :\n" + + " return 3;\n" + + " case 1817 :\n" + + " return 3;\n" + + " case 1818 :\n" + + " return 3;\n" + + " case 1819 :\n" + + " return 3;\n" + + " case 1820 :\n" + + " return 3;\n" + + " case 1821 :\n" + + " return 3;\n" + + " case 1822 :\n" + + " return 3;\n" + + " case 1823 :\n" + + " return 3;\n" + + " case 1824 :\n" + + " return 3;\n" + + " case 1825 :\n" + + " return 3;\n" + + " case 1826 :\n" + + " return 3;\n" + + " case 1827 :\n" + + " return 3;\n" + + " case 1828 :\n" + + " return 3;\n" + + " case 1829 :\n" + + " return 3;\n" + + " case 1830 :\n" + + " return 3;\n" + + " case 1831 :\n" + + " return 3;\n" + + " case 1832 :\n" + + " return 3;\n" + + " case 1833 :\n" + + " return 3;\n" + + " case 1834 :\n" + + " return 3;\n" + + " case 1835 :\n" + + " return 3;\n" + + " case 1836 :\n" + + " return 3;\n" + + " case 1837 :\n" + + " return 3;\n" + + " case 1838 :\n" + + " return 3;\n" + + " case 1839 :\n" + + " return 3;\n" + + " case 1840 :\n" + + " return 3;\n" + + " case 1841 :\n" + + " return 3;\n" + + " case 1842 :\n" + + " return 3;\n" + + " case 1843 :\n" + + " return 3;\n" + + " case 1844 :\n" + + " return 3;\n" + + " case 1845 :\n" + + " return 3;\n" + + " case 1846 :\n" + + " return 3;\n" + + " case 1847 :\n" + + " return 3;\n" + + " case 1848 :\n" + + " return 3;\n" + + " case 1849 :\n" + + " return 3;\n" + + " case 1850 :\n" + + " return 3;\n" + + " case 1851 :\n" + + " return 3;\n" + + " case 1852 :\n" + + " return 3;\n" + + " case 1853 :\n" + + " return 3;\n" + + " case 1854 :\n" + + " return 3;\n" + + " case 1855 :\n" + + " return 3;\n" + + " case 1856 :\n" + + " return 3;\n" + + " case 1857 :\n" + + " return 3;\n" + + " case 1858 :\n" + + " return 3;\n" + + " case 1859 :\n" + + " return 3;\n" + + " case 1860 :\n" + + " return 3;\n" + + " case 1861 :\n" + + " return 3;\n" + + " case 1862 :\n" + + " return 3;\n" + + " case 1863 :\n" + + " return 3;\n" + + " case 1864 :\n" + + " return 3;\n" + + " case 1865 :\n" + + " return 3;\n" + + " case 1866 :\n" + + " return 3;\n" + + " case 1867 :\n" + + " return 3;\n" + + " case 1868 :\n" + + " return 3;\n" + + " case 1869 :\n" + + " return 3;\n" + + " case 1870 :\n" + + " return 3;\n" + + " case 1871 :\n" + + " return 3;\n" + + " case 1872 :\n" + + " return 3;\n" + + " case 1873 :\n" + + " return 3;\n" + + " case 1874 :\n" + + " return 3;\n" + + " case 1875 :\n" + + " return 3;\n" + + " case 1876 :\n" + + " return 3;\n" + + " case 1877 :\n" + + " return 3;\n" + + " case 1878 :\n" + + " return 3;\n" + + " case 1879 :\n" + + " return 3;\n" + + " case 1880 :\n" + + " return 3;\n" + + " case 1881 :\n" + + " return 3;\n" + + " case 1882 :\n" + + " return 3;\n" + + " case 1883 :\n" + + " return 3;\n" + + " case 1884 :\n" + + " return 3;\n" + + " case 1885 :\n" + + " return 3;\n" + + " case 1886 :\n" + + " return 3;\n" + + " case 1887 :\n" + + " return 3;\n" + + " case 1888 :\n" + + " return 3;\n" + + " case 1889 :\n" + + " return 3;\n" + + " case 1890 :\n" + + " return 3;\n" + + " case 1891 :\n" + + " return 3;\n" + + " case 1892 :\n" + + " return 3;\n" + + " case 1893 :\n" + + " return 3;\n" + + " case 1894 :\n" + + " return 3;\n" + + " case 1895 :\n" + + " return 3;\n" + + " case 1896 :\n" + + " return 3;\n" + + " case 1897 :\n" + + " return 3;\n" + + " case 1898 :\n" + + " return 3;\n" + + " case 1899 :\n" + + " return 3;\n" + + " case 1900 :\n" + + " return 3;\n" + + " case 1901 :\n" + + " return 3;\n" + + " case 1902 :\n" + + " return 3;\n" + + " case 1903 :\n" + + " return 3;\n" + + " case 1904 :\n" + + " return 3;\n" + + " case 1905 :\n" + + " return 3;\n" + + " case 1906 :\n" + + " return 3;\n" + + " case 1907 :\n" + + " return 3;\n" + + " case 1908 :\n" + + " return 3;\n" + + " case 1909 :\n" + + " return 3;\n" + + " case 1910 :\n" + + " return 3;\n" + + " case 1911 :\n" + + " return 3;\n" + + " case 1912 :\n" + + " return 3;\n" + + " case 1913 :\n" + + " return 3;\n" + + " case 1914 :\n" + + " return 3;\n" + + " case 1915 :\n" + + " return 3;\n" + + " case 1916 :\n" + + " return 3;\n" + + " case 1917 :\n" + + " return 3;\n" + + " case 1918 :\n" + + " return 3;\n" + + " case 1919 :\n" + + " return 3;\n" + + " case 1920 :\n" + + " return 3;\n" + + " case 1921 :\n" + + " return 3;\n" + + " case 1922 :\n" + + " return 3;\n" + + " case 1923 :\n" + + " return 3;\n" + + " case 1924 :\n" + + " return 3;\n" + + " case 1925 :\n" + + " return 3;\n" + + " case 1926 :\n" + + " return 3;\n" + + " case 1927 :\n" + + " return 3;\n" + + " case 1928 :\n" + + " return 3;\n" + + " case 1929 :\n" + + " return 3;\n" + + " case 1930 :\n" + + " return 3;\n" + + " case 1931 :\n" + + " return 3;\n" + + " case 1932 :\n" + + " return 3;\n" + + " case 1933 :\n" + + " return 3;\n" + + " case 1934 :\n" + + " return 3;\n" + + " case 1935 :\n" + + " return 3;\n" + + " case 1936 :\n" + + " return 3;\n" + + " case 1937 :\n" + + " return 3;\n" + + " case 1938 :\n" + + " return 3;\n" + + " case 1939 :\n" + + " return 3;\n" + + " case 1940 :\n" + + " return 3;\n" + + " case 1941 :\n" + + " return 3;\n" + + " case 1942 :\n" + + " return 3;\n" + + " case 1943 :\n" + + " return 3;\n" + + " case 1944 :\n" + + " return 3;\n" + + " case 1945 :\n" + + " return 3;\n" + + " case 1946 :\n" + + " return 3;\n" + + " case 1947 :\n" + + " return 3;\n" + + " case 1948 :\n" + + " return 3;\n" + + " case 1949 :\n" + + " return 3;\n" + + " case 1950 :\n" + + " return 3;\n" + + " case 1951 :\n" + + " return 3;\n" + + " case 1952 :\n" + + " return 3;\n" + + " case 1953 :\n" + + " return 3;\n" + + " case 1954 :\n" + + " return 3;\n" + + " case 1955 :\n" + + " return 3;\n" + + " case 1956 :\n" + + " return 3;\n" + + " case 1957 :\n" + + " return 3;\n" + + " case 1958 :\n" + + " return 3;\n" + + " case 1959 :\n" + + " return 3;\n" + + " case 1960 :\n" + + " return 3;\n" + + " case 1961 :\n" + + " return 3;\n" + + " case 1962 :\n" + + " return 3;\n" + + " case 1963 :\n" + + " return 3;\n" + + " case 1964 :\n" + + " return 3;\n" + + " case 1965 :\n" + + " return 3;\n" + + " case 1966 :\n" + + " return 3;\n" + + " case 1967 :\n" + + " return 3;\n" + + " case 1968 :\n" + + " return 3;\n" + + " case 1969 :\n" + + " return 3;\n" + + " case 1970 :\n" + + " return 3;\n" + + " case 1971 :\n" + + " return 3;\n" + + " case 1972 :\n" + + " return 3;\n" + + " case 1973 :\n" + + " return 3;\n" + + " case 1974 :\n" + + " return 3;\n" + + " case 1975 :\n" + + " return 3;\n" + + " case 1976 :\n" + + " return 3;\n" + + " case 1977 :\n" + + " return 3;\n" + + " case 1978 :\n" + + " return 3;\n" + + " case 1979 :\n" + + " return 3;\n" + + " case 1980 :\n" + + " return 3;\n" + + " case 1981 :\n" + + " return 3;\n" + + " case 1982 :\n" + + " return 3;\n" + + " case 1983 :\n" + + " return 3;\n" + + " case 1984 :\n" + + " return 3;\n" + + " case 1985 :\n" + + " return 3;\n" + + " case 1986 :\n" + + " return 3;\n" + + " case 1987 :\n" + + " return 3;\n" + + " case 1988 :\n" + + " return 3;\n" + + " case 1989 :\n" + + " return 3;\n" + + " case 1990 :\n" + + " return 3;\n" + + " case 1991 :\n" + + " return 3;\n" + + " case 1992 :\n" + + " return 3;\n" + + " case 1993 :\n" + + " return 3;\n" + + " case 1994 :\n" + + " return 3;\n" + + " case 1995 :\n" + + " return 3;\n" + + " case 1996 :\n" + + " return 3;\n" + + " case 1997 :\n" + + " return 3;\n" + + " case 1998 :\n" + + " return 3;\n" + + " case 1999 :\n" + + " return 3;\n" + + " case 2000 :\n" + + " return 3;\n" + + " case 2001 :\n" + + " return 3;\n" + + " case 2002 :\n" + + " return 3;\n" + + " case 2003 :\n" + + " return 3;\n" + + " case 2004 :\n" + + " return 3;\n" + + " case 2005 :\n" + + " return 3;\n" + + " case 2006 :\n" + + " return 3;\n" + + " case 2007 :\n" + + " return 3;\n" + + " case 2008 :\n" + + " return 3;\n" + + " case 2009 :\n" + + " return 3;\n" + + " case 2010 :\n" + + " return 3;\n" + + " case 2011 :\n" + + " return 3;\n" + + " case 2012 :\n" + + " return 3;\n" + + " case 2013 :\n" + + " return 3;\n" + + " case 2014 :\n" + + " return 3;\n" + + " case 2015 :\n" + + " return 3;\n" + + " case 2016 :\n" + + " return 3;\n" + + " case 2017 :\n" + + " return 3;\n" + + " case 2018 :\n" + + " return 3;\n" + + " case 2019 :\n" + + " return 3;\n" + + " case 2020 :\n" + + " return 3;\n" + + " case 2021 :\n" + + " return 3;\n" + + " case 2022 :\n" + + " return 3;\n" + + " case 2023 :\n" + + " return 3;\n" + + " case 2024 :\n" + + " return 3;\n" + + " case 2025 :\n" + + " return 3;\n" + + " case 2026 :\n" + + " return 3;\n" + + " case 2027 :\n" + + " return 3;\n" + + " case 2028 :\n" + + " return 3;\n" + + " case 2029 :\n" + + " return 3;\n" + + " case 2030 :\n" + + " return 3;\n" + + " case 2031 :\n" + + " return 3;\n" + + " case 2032 :\n" + + " return 3;\n" + + " case 2033 :\n" + + " return 3;\n" + + " case 2034 :\n" + + " return 3;\n" + + " case 2035 :\n" + + " return 3;\n" + + " case 2036 :\n" + + " return 3;\n" + + " case 2037 :\n" + + " return 3;\n" + + " case 2038 :\n" + + " return 3;\n" + + " case 2039 :\n" + + " return 3;\n" + + " case 2040 :\n" + + " return 3;\n" + + " case 2041 :\n" + + " return 3;\n" + + " case 2042 :\n" + + " return 3;\n" + + " case 2043 :\n" + + " return 3;\n" + + " case 2044 :\n" + + " return 3;\n" + + " case 2045 :\n" + + " return 3;\n" + + " case 2046 :\n" + + " return 3;\n" + + " case 2047 :\n" + + " return 3;\n" + + " case 2048 :\n" + + " return 3;\n" + + " case 2049 :\n" + + " return 3;\n" + + " case 2050 :\n" + + " return 3;\n" + + " case 2051 :\n" + + " return 3;\n" + + " case 2052 :\n" + + " return 3;\n" + + " case 2053 :\n" + + " return 3;\n" + + " case 2054 :\n" + + " return 3;\n" + + " case 2055 :\n" + + " return 3;\n" + + " case 2056 :\n" + + " return 3;\n" + + " case 2057 :\n" + + " return 3;\n" + + " case 2058 :\n" + + " return 3;\n" + + " case 2059 :\n" + + " return 3;\n" + + " case 2060 :\n" + + " return 3;\n" + + " case 2061 :\n" + + " return 3;\n" + + " case 2062 :\n" + + " return 3;\n" + + " case 2063 :\n" + + " return 3;\n" + + " case 2064 :\n" + + " return 3;\n" + + " case 2065 :\n" + + " return 3;\n" + + " case 2066 :\n" + + " return 3;\n" + + " case 2067 :\n" + + " return 3;\n" + + " case 2068 :\n" + + " return 3;\n" + + " case 2069 :\n" + + " return 3;\n" + + " case 2070 :\n" + + " return 3;\n" + + " case 2071 :\n" + + " return 3;\n" + + " case 2072 :\n" + + " return 3;\n" + + " case 2073 :\n" + + " return 3;\n" + + " case 2074 :\n" + + " return 3;\n" + + " case 2075 :\n" + + " return 3;\n" + + " case 2076 :\n" + + " return 3;\n" + + " case 2077 :\n" + + " return 3;\n" + + " case 2078 :\n" + + " return 3;\n" + + " case 2079 :\n" + + " return 3;\n" + + " case 2080 :\n" + + " return 3;\n" + + " case 2081 :\n" + + " return 3;\n" + + " case 2082 :\n" + + " return 3;\n" + + " case 2083 :\n" + + " return 3;\n" + + " case 2084 :\n" + + " return 3;\n" + + " case 2085 :\n" + + " return 3;\n" + + " case 2086 :\n" + + " return 3;\n" + + " case 2087 :\n" + + " return 3;\n" + + " case 2088 :\n" + + " return 3;\n" + + " case 2089 :\n" + + " return 3;\n" + + " case 2090 :\n" + + " return 3;\n" + + " case 2091 :\n" + + " return 3;\n" + + " case 2092 :\n" + + " return 3;\n" + + " case 2093 :\n" + + " return 3;\n" + + " case 2094 :\n" + + " return 3;\n" + + " case 2095 :\n" + + " return 3;\n" + + " case 2096 :\n" + + " return 3;\n" + + " case 2097 :\n" + + " return 3;\n" + + " case 2098 :\n" + + " return 3;\n" + + " case 2099 :\n" + + " return 3;\n" + + " case 2100 :\n" + + " return 3;\n" + + " case 2101 :\n" + + " return 3;\n" + + " case 2102 :\n" + + " return 3;\n" + + " case 2103 :\n" + + " return 3;\n" + + " case 2104 :\n" + + " return 3;\n" + + " case 2105 :\n" + + " return 3;\n" + + " case 2106 :\n" + + " return 3;\n" + + " case 2107 :\n" + + " return 3;\n" + + " case 2108 :\n" + + " return 3;\n" + + " case 2109 :\n" + + " return 3;\n" + + " case 2110 :\n" + + " return 3;\n" + + " case 2111 :\n" + + " return 3;\n" + + " case 2112 :\n" + + " return 3;\n" + + " case 2113 :\n" + + " return 3;\n" + + " case 2114 :\n" + + " return 3;\n" + + " case 2115 :\n" + + " return 3;\n" + + " case 2116 :\n" + + " return 3;\n" + + " case 2117 :\n" + + " return 3;\n" + + " case 2118 :\n" + + " return 3;\n" + + " case 2119 :\n" + + " return 3;\n" + + " case 2120 :\n" + + " return 3;\n" + + " case 2121 :\n" + + " return 3;\n" + + " case 2122 :\n" + + " return 3;\n" + + " case 2123 :\n" + + " return 3;\n" + + " case 2124 :\n" + + " return 3;\n" + + " case 2125 :\n" + + " return 3;\n" + + " case 2126 :\n" + + " return 3;\n" + + " case 2127 :\n" + + " return 3;\n" + + " case 2128 :\n" + + " return 3;\n" + + " case 2129 :\n" + + " return 3;\n" + + " case 2130 :\n" + + " return 3;\n" + + " case 2131 :\n" + + " return 3;\n" + + " case 2132 :\n" + + " return 3;\n" + + " case 2133 :\n" + + " return 3;\n" + + " case 2134 :\n" + + " return 3;\n" + + " case 2135 :\n" + + " return 3;\n" + + " case 2136 :\n" + + " return 3;\n" + + " case 2137 :\n" + + " return 3;\n" + + " case 2138 :\n" + + " return 3;\n" + + " case 2139 :\n" + + " return 3;\n" + + " case 2140 :\n" + + " return 3;\n" + + " case 2141 :\n" + + " return 3;\n" + + " case 2142 :\n" + + " return 3;\n" + + " case 2143 :\n" + + " return 3;\n" + + " case 2144 :\n" + + " return 3;\n" + + " case 2145 :\n" + + " return 3;\n" + + " case 2146 :\n" + + " return 3;\n" + + " case 2147 :\n" + + " return 3;\n" + + " case 2148 :\n" + + " return 3;\n" + + " case 2149 :\n" + + " return 3;\n" + + " case 2150 :\n" + + " return 3;\n" + + " case 2151 :\n" + + " return 3;\n" + + " case 2152 :\n" + + " return 3;\n" + + " case 2153 :\n" + + " return 3;\n" + + " case 2154 :\n" + + " return 3;\n" + + " case 2155 :\n" + + " return 3;\n" + + " case 2156 :\n" + + " return 3;\n" + + " case 2157 :\n" + + " return 3;\n" + + " case 2158 :\n" + + " return 3;\n" + + " case 2159 :\n" + + " return 3;\n" + + " case 2160 :\n" + + " return 3;\n" + + " case 2161 :\n" + + " return 3;\n" + + " case 2162 :\n" + + " return 3;\n" + + " case 2163 :\n" + + " return 3;\n" + + " case 2164 :\n" + + " return 3;\n" + + " case 2165 :\n" + + " return 3;\n" + + " case 2166 :\n" + + " return 3;\n" + + " case 2167 :\n" + + " return 3;\n" + + " case 2168 :\n" + + " return 3;\n" + + " case 2169 :\n" + + " return 3;\n" + + " case 2170 :\n" + + " return 3;\n" + + " case 2171 :\n" + + " return 3;\n" + + " case 2172 :\n" + + " return 3;\n" + + " case 2173 :\n" + + " return 3;\n" + + " case 2174 :\n" + + " return 3;\n" + + " case 2175 :\n" + + " return 3;\n" + + " case 2176 :\n" + + " return 3;\n" + + " case 2177 :\n" + + " return 3;\n" + + " case 2178 :\n" + + " return 3;\n" + + " case 2179 :\n" + + " return 3;\n" + + " case 2180 :\n" + + " return 3;\n" + + " case 2181 :\n" + + " return 3;\n" + + " case 2182 :\n" + + " return 3;\n" + + " case 2183 :\n" + + " return 3;\n" + + " case 2184 :\n" + + " return 3;\n" + + " case 2185 :\n" + + " return 3;\n" + + " case 2186 :\n" + + " return 3;\n" + + " case 2187 :\n" + + " return 3;\n" + + " case 2188 :\n" + + " return 3;\n" + + " case 2189 :\n" + + " return 3;\n" + + " case 2190 :\n" + + " return 3;\n" + + " case 2191 :\n" + + " return 3;\n" + + " case 2192 :\n" + + " return 3;\n" + + " case 2193 :\n" + + " return 3;\n" + + " case 2194 :\n" + + " return 3;\n" + + " case 2195 :\n" + + " return 3;\n" + + " case 2196 :\n" + + " return 3;\n" + + " case 2197 :\n" + + " return 3;\n" + + " case 2198 :\n" + + " return 3;\n" + + " case 2199 :\n" + + " return 3;\n" + + " case 2200 :\n" + + " return 3;\n" + + " case 2201 :\n" + + " return 3;\n" + + " case 2202 :\n" + + " return 3;\n" + + " case 2203 :\n" + + " return 3;\n" + + " case 2204 :\n" + + " return 3;\n" + + " case 2205 :\n" + + " return 3;\n" + + " case 2206 :\n" + + " return 3;\n" + + " case 2207 :\n" + + " return 3;\n" + + " case 2208 :\n" + + " return 3;\n" + + " case 2209 :\n" + + " return 3;\n" + + " case 2210 :\n" + + " return 3;\n" + + " case 2211 :\n" + + " return 3;\n" + + " case 2212 :\n" + + " return 3;\n" + + " case 2213 :\n" + + " return 3;\n" + + " case 2214 :\n" + + " return 3;\n" + + " case 2215 :\n" + + " return 3;\n" + + " case 2216 :\n" + + " return 3;\n" + + " case 2217 :\n" + + " return 3;\n" + + " case 2218 :\n" + + " return 3;\n" + + " case 2219 :\n" + + " return 3;\n" + + " case 2220 :\n" + + " return 3;\n" + + " case 2221 :\n" + + " return 3;\n" + + " case 2222 :\n" + + " return 3;\n" + + " case 2223 :\n" + + " return 3;\n" + + " case 2224 :\n" + + " return 3;\n" + + " case 2225 :\n" + + " return 3;\n" + + " case 2226 :\n" + + " return 3;\n" + + " case 2227 :\n" + + " return 3;\n" + + " case 2228 :\n" + + " return 3;\n" + + " case 2229 :\n" + + " return 3;\n" + + " case 2230 :\n" + + " return 3;\n" + + " case 2231 :\n" + + " return 3;\n" + + " case 2232 :\n" + + " return 3;\n" + + " case 2233 :\n" + + " return 3;\n" + + " case 2234 :\n" + + " return 3;\n" + + " case 2235 :\n" + + " return 3;\n" + + " case 2236 :\n" + + " return 3;\n" + + " case 2237 :\n" + + " return 3;\n" + + " case 2238 :\n" + + " return 3;\n" + + " case 2239 :\n" + + " return 3;\n" + + " case 2240 :\n" + + " return 3;\n" + + " case 2241 :\n" + + " return 3;\n" + + " case 2242 :\n" + + " return 3;\n" + + " case 2243 :\n" + + " return 3;\n" + + " case 2244 :\n" + + " return 3;\n" + + " case 2245 :\n" + + " return 3;\n" + + " case 2246 :\n" + + " return 3;\n" + + " case 2247 :\n" + + " return 3;\n" + + " case 2248 :\n" + + " return 3;\n" + + " case 2249 :\n" + + " return 3;\n" + + " case 2250 :\n" + + " return 3;\n" + + " case 2251 :\n" + + " return 3;\n" + + " case 2252 :\n" + + " return 3;\n" + + " case 2253 :\n" + + " return 3;\n" + + " case 2254 :\n" + + " return 3;\n" + + " case 2255 :\n" + + " return 3;\n" + + " case 2256 :\n" + + " return 3;\n" + + " case 2257 :\n" + + " return 3;\n" + + " case 2258 :\n" + + " return 3;\n" + + " case 2259 :\n" + + " return 3;\n" + + " case 2260 :\n" + + " return 3;\n" + + " case 2261 :\n" + + " return 3;\n" + + " case 2262 :\n" + + " return 3;\n" + + " case 2263 :\n" + + " return 3;\n" + + " case 2264 :\n" + + " return 3;\n" + + " case 2265 :\n" + + " return 3;\n" + + " case 2266 :\n" + + " return 3;\n" + + " case 2267 :\n" + + " return 3;\n" + + " case 2268 :\n" + + " return 3;\n" + + " case 2269 :\n" + + " return 3;\n" + + " case 2270 :\n" + + " return 3;\n" + + " case 2271 :\n" + + " return 3;\n" + + " case 2272 :\n" + + " return 3;\n" + + " case 2273 :\n" + + " return 3;\n" + + " case 2274 :\n" + + " return 3;\n" + + " case 2275 :\n" + + " return 3;\n" + + " case 2276 :\n" + + " return 3;\n" + + " case 2277 :\n" + + " return 3;\n" + + " case 2278 :\n" + + " return 3;\n" + + " case 2279 :\n" + + " return 3;\n" + + " case 2280 :\n" + + " return 3;\n" + + " case 2281 :\n" + + " return 3;\n" + + " case 2282 :\n" + + " return 3;\n" + + " case 2283 :\n" + + " return 3;\n" + + " case 2284 :\n" + + " return 3;\n" + + " case 2285 :\n" + + " return 3;\n" + + " case 2286 :\n" + + " return 3;\n" + + " case 2287 :\n" + + " return 3;\n" + + " case 2288 :\n" + + " return 3;\n" + + " case 2289 :\n" + + " return 3;\n" + + " case 2290 :\n" + + " return 3;\n" + + " case 2291 :\n" + + " return 3;\n" + + " case 2292 :\n" + + " return 3;\n" + + " case 2293 :\n" + + " return 3;\n" + + " case 2294 :\n" + + " return 3;\n" + + " case 2295 :\n" + + " return 3;\n" + + " case 2296 :\n" + + " return 3;\n" + + " case 2297 :\n" + + " return 3;\n" + + " case 2298 :\n" + + " return 3;\n" + + " case 2299 :\n" + + " return 3;\n" + + " case 2300 :\n" + + " return 3;\n" + + " case 2301 :\n" + + " return 3;\n" + + " case 2302 :\n" + + " return 3;\n" + + " case 2303 :\n" + + " return 3;\n" + + " case 2304 :\n" + + " return 3;\n" + + " case 2305 :\n" + + " return 3;\n" + + " case 2306 :\n" + + " return 3;\n" + + " case 2307 :\n" + + " return 3;\n" + + " case 2308 :\n" + + " return 3;\n" + + " case 2309 :\n" + + " return 3;\n" + + " case 2310 :\n" + + " return 3;\n" + + " case 2311 :\n" + + " return 3;\n" + + " case 2312 :\n" + + " return 3;\n" + + " case 2313 :\n" + + " return 3;\n" + + " case 2314 :\n" + + " return 3;\n" + + " case 2315 :\n" + + " return 3;\n" + + " case 2316 :\n" + + " return 3;\n" + + " case 2317 :\n" + + " return 3;\n" + + " case 2318 :\n" + + " return 3;\n" + + " case 2319 :\n" + + " return 3;\n" + + " case 2320 :\n" + + " return 3;\n" + + " case 2321 :\n" + + " return 3;\n" + + " case 2322 :\n" + + " return 3;\n" + + " case 2323 :\n" + + " return 3;\n" + + " case 2324 :\n" + + " return 3;\n" + + " case 2325 :\n" + + " return 3;\n" + + " case 2326 :\n" + + " return 3;\n" + + " case 2327 :\n" + + " return 3;\n" + + " case 2328 :\n" + + " return 3;\n" + + " case 2329 :\n" + + " return 3;\n" + + " case 2330 :\n" + + " return 3;\n" + + " case 2331 :\n" + + " return 3;\n" + + " case 2332 :\n" + + " return 3;\n" + + " case 2333 :\n" + + " return 3;\n" + + " case 2334 :\n" + + " return 3;\n" + + " case 2335 :\n" + + " return 3;\n" + + " case 2336 :\n" + + " return 3;\n" + + " case 2337 :\n" + + " return 3;\n" + + " case 2338 :\n" + + " return 3;\n" + + " case 2339 :\n" + + " return 3;\n" + + " case 2340 :\n" + + " return 3;\n" + + " case 2341 :\n" + + " return 3;\n" + + " case 2342 :\n" + + " return 3;\n" + + " case 2343 :\n" + + " return 3;\n" + + " case 2344 :\n" + + " return 3;\n" + + " case 2345 :\n" + + " return 3;\n" + + " case 2346 :\n" + + " return 3;\n" + + " case 2347 :\n" + + " return 3;\n" + + " case 2348 :\n" + + " return 3;\n" + + " case 2349 :\n" + + " return 3;\n" + + " case 2350 :\n" + + " return 3;\n" + + " case 2351 :\n" + + " return 3;\n" + + " case 2352 :\n" + + " return 3;\n" + + " case 2353 :\n" + + " return 3;\n" + + " case 2354 :\n" + + " return 3;\n" + + " case 2355 :\n" + + " return 3;\n" + + " case 2356 :\n" + + " return 3;\n" + + " case 2357 :\n" + + " return 3;\n" + + " case 2358 :\n" + + " return 3;\n" + + " case 2359 :\n" + + " return 3;\n" + + " case 2360 :\n" + + " return 3;\n" + + " case 2361 :\n" + + " return 3;\n" + + " case 2362 :\n" + + " return 3;\n" + + " case 2363 :\n" + + " return 3;\n" + + " case 2364 :\n" + + " return 3;\n" + + " case 2365 :\n" + + " return 3;\n" + + " case 2366 :\n" + + " return 3;\n" + + " case 2367 :\n" + + " return 3;\n" + + " case 2368 :\n" + + " return 3;\n" + + " case 2369 :\n" + + " return 3;\n" + + " case 2370 :\n" + + " return 3;\n" + + " case 2371 :\n" + + " return 3;\n" + + " case 2372 :\n" + + " return 3;\n" + + " case 2373 :\n" + + " return 3;\n" + + " case 2374 :\n" + + " return 3;\n" + + " case 2375 :\n" + + " return 3;\n" + + " case 2376 :\n" + + " return 3;\n" + + " case 2377 :\n" + + " return 3;\n" + + " case 2378 :\n" + + " return 3;\n" + + " case 2379 :\n" + + " return 3;\n" + + " case 2380 :\n" + + " return 3;\n" + + " case 2381 :\n" + + " return 3;\n" + + " case 2382 :\n" + + " return 3;\n" + + " case 2383 :\n" + + " return 3;\n" + + " case 2384 :\n" + + " return 3;\n" + + " case 2385 :\n" + + " return 3;\n" + + " case 2386 :\n" + + " return 3;\n" + + " case 2387 :\n" + + " return 3;\n" + + " case 2388 :\n" + + " return 3;\n" + + " case 2389 :\n" + + " return 3;\n" + + " case 2390 :\n" + + " return 3;\n" + + " case 2391 :\n" + + " return 3;\n" + + " case 2392 :\n" + + " return 3;\n" + + " case 2393 :\n" + + " return 3;\n" + + " case 2394 :\n" + + " return 3;\n" + + " case 2395 :\n" + + " return 3;\n" + + " case 2396 :\n" + + " return 3;\n" + + " case 2397 :\n" + + " return 3;\n" + + " case 2398 :\n" + + " return 3;\n" + + " case 2399 :\n" + + " return 3;\n" + + " case 2400 :\n" + + " return 3;\n" + + " case 2401 :\n" + + " return 3;\n" + + " case 2402 :\n" + + " return 3;\n" + + " case 2403 :\n" + + " return 3;\n" + + " case 2404 :\n" + + " return 3;\n" + + " case 2405 :\n" + + " return 3;\n" + + " case 2406 :\n" + + " return 3;\n" + + " case 2407 :\n" + + " return 3;\n" + + " case 2408 :\n" + + " return 3;\n" + + " case 2409 :\n" + + " return 3;\n" + + " case 2410 :\n" + + " return 3;\n" + + " case 2411 :\n" + + " return 3;\n" + + " case 2412 :\n" + + " return 3;\n" + + " case 2413 :\n" + + " return 3;\n" + + " case 2414 :\n" + + " return 3;\n" + + " case 2415 :\n" + + " return 3;\n" + + " case 2416 :\n" + + " return 3;\n" + + " case 2417 :\n" + + " return 3;\n" + + " case 2418 :\n" + + " return 3;\n" + + " case 2419 :\n" + + " return 3;\n" + + " case 2420 :\n" + + " return 3;\n" + + " case 2421 :\n" + + " return 3;\n" + + " case 2422 :\n" + + " return 3;\n" + + " case 2423 :\n" + + " return 3;\n" + + " case 2424 :\n" + + " return 3;\n" + + " case 2425 :\n" + + " return 3;\n" + + " case 2426 :\n" + + " return 3;\n" + + " case 2427 :\n" + + " return 3;\n" + + " case 2428 :\n" + + " return 3;\n" + + " case 2429 :\n" + + " return 3;\n" + + " case 2430 :\n" + + " return 3;\n" + + " case 2431 :\n" + + " return 3;\n" + + " case 2432 :\n" + + " return 3;\n" + + " case 2433 :\n" + + " return 3;\n" + + " case 2434 :\n" + + " return 3;\n" + + " case 2435 :\n" + + " return 3;\n" + + " case 2436 :\n" + + " return 3;\n" + + " case 2437 :\n" + + " return 3;\n" + + " case 2438 :\n" + + " return 3;\n" + + " case 2439 :\n" + + " return 3;\n" + + " case 2440 :\n" + + " return 3;\n" + + " case 2441 :\n" + + " return 3;\n" + + " case 2442 :\n" + + " return 3;\n" + + " case 2443 :\n" + + " return 3;\n" + + " case 2444 :\n" + + " return 3;\n" + + " case 2445 :\n" + + " return 3;\n" + + " case 2446 :\n" + + " return 3;\n" + + " case 2447 :\n" + + " return 3;\n" + + " case 2448 :\n" + + " return 3;\n" + + " case 2449 :\n" + + " return 3;\n" + + " case 2450 :\n" + + " return 3;\n" + + " case 2451 :\n" + + " return 3;\n" + + " case 2452 :\n" + + " return 3;\n" + + " case 2453 :\n" + + " return 3;\n" + + " case 2454 :\n" + + " return 3;\n" + + " case 2455 :\n" + + " return 3;\n" + + " case 2456 :\n" + + " return 3;\n" + + " case 2457 :\n" + + " return 3;\n" + + " case 2458 :\n" + + " return 3;\n" + + " case 2459 :\n" + + " return 3;\n" + + " case 2460 :\n" + + " return 3;\n" + + " case 2461 :\n" + + " return 3;\n" + + " case 2462 :\n" + + " return 3;\n" + + " case 2463 :\n" + + " return 3;\n" + + " case 2464 :\n" + + " return 3;\n" + + " case 2465 :\n" + + " return 3;\n" + + " case 2466 :\n" + + " return 3;\n" + + " case 2467 :\n" + + " return 3;\n" + + " case 2468 :\n" + + " return 3;\n" + + " case 2469 :\n" + + " return 3;\n" + + " case 2470 :\n" + + " return 3;\n" + + " case 2471 :\n" + + " return 3;\n" + + " case 2472 :\n" + + " return 3;\n" + + " case 2473 :\n" + + " return 3;\n" + + " case 2474 :\n" + + " return 3;\n" + + " case 2475 :\n" + + " return 3;\n" + + " case 2476 :\n" + + " return 3;\n" + + " case 2477 :\n" + + " return 3;\n" + + " case 2478 :\n" + + " return 3;\n" + + " case 2479 :\n" + + " return 3;\n" + + " case 2480 :\n" + + " return 3;\n" + + " case 2481 :\n" + + " return 3;\n" + + " case 2482 :\n" + + " return 3;\n" + + " case 2483 :\n" + + " return 3;\n" + + " case 2484 :\n" + + " return 3;\n" + + " case 2485 :\n" + + " return 3;\n" + + " case 2486 :\n" + + " return 3;\n" + + " case 2487 :\n" + + " return 3;\n" + + " case 2488 :\n" + + " return 3;\n" + + " case 2489 :\n" + + " return 3;\n" + + " case 2490 :\n" + + " return 3;\n" + + " case 2491 :\n" + + " return 3;\n" + + " case 2492 :\n" + + " return 3;\n" + + " case 2493 :\n" + + " return 3;\n" + + " case 2494 :\n" + + " return 3;\n" + + " case 2495 :\n" + + " return 3;\n" + + " case 2496 :\n" + + " return 3;\n" + + " case 2497 :\n" + + " return 3;\n" + + " case 2498 :\n" + + " return 3;\n" + + " case 2499 :\n" + + " return 3;\n" + + " case 2500 :\n" + + " return 3;\n" + + " case 2501 :\n" + + " return 3;\n" + + " case 2502 :\n" + + " return 3;\n" + + " case 2503 :\n" + + " return 3;\n" + + " case 2504 :\n" + + " return 3;\n" + + " case 2505 :\n" + + " return 3;\n" + + " case 2506 :\n" + + " return 3;\n" + + " case 2507 :\n" + + " return 3;\n" + + " case 2508 :\n" + + " return 3;\n" + + " case 2509 :\n" + + " return 3;\n" + + " case 2510 :\n" + + " return 3;\n" + + " case 2511 :\n" + + " return 3;\n" + + " case 2512 :\n" + + " return 3;\n" + + " case 2513 :\n" + + " return 3;\n" + + " case 2514 :\n" + + " return 3;\n" + + " case 2515 :\n" + + " return 3;\n" + + " case 2516 :\n" + + " return 3;\n" + + " case 2517 :\n" + + " return 3;\n" + + " case 2518 :\n" + + " return 3;\n" + + " case 2519 :\n" + + " return 3;\n" + + " case 2520 :\n" + + " return 3;\n" + + " case 2521 :\n" + + " return 3;\n" + + " case 2522 :\n" + + " return 3;\n" + + " case 2523 :\n" + + " return 3;\n" + + " case 2524 :\n" + + " return 3;\n" + + " case 2525 :\n" + + " return 3;\n" + + " case 2526 :\n" + + " return 3;\n" + + " case 2527 :\n" + + " return 3;\n" + + " case 2528 :\n" + + " return 3;\n" + + " case 2529 :\n" + + " return 3;\n" + + " case 2530 :\n" + + " return 3;\n" + + " case 2531 :\n" + + " return 3;\n" + + " case 2532 :\n" + + " return 3;\n" + + " case 2533 :\n" + + " return 3;\n" + + " case 2534 :\n" + + " return 3;\n" + + " case 2535 :\n" + + " return 3;\n" + + " case 2536 :\n" + + " return 3;\n" + + " case 2537 :\n" + + " return 3;\n" + + " case 2538 :\n" + + " return 3;\n" + + " case 2539 :\n" + + " return 3;\n" + + " case 2540 :\n" + + " return 3;\n" + + " case 2541 :\n" + + " return 3;\n" + + " case 2542 :\n" + + " return 3;\n" + + " case 2543 :\n" + + " return 3;\n" + + " case 2544 :\n" + + " return 3;\n" + + " case 2545 :\n" + + " return 3;\n" + + " case 2546 :\n" + + " return 3;\n" + + " case 2547 :\n" + + " return 3;\n" + + " case 2548 :\n" + + " return 3;\n" + + " case 2549 :\n" + + " return 3;\n" + + " case 2550 :\n" + + " return 3;\n" + + " case 2551 :\n" + + " return 3;\n" + + " case 2552 :\n" + + " return 3;\n" + + " case 2553 :\n" + + " return 3;\n" + + " case 2554 :\n" + + " return 3;\n" + + " case 2555 :\n" + + " return 3;\n" + + " case 2556 :\n" + + " return 3;\n" + + " case 2557 :\n" + + " return 3;\n" + + " case 2558 :\n" + + " return 3;\n" + + " case 2559 :\n" + + " return 3;\n" + + " case 2560 :\n" + + " return 3;\n" + + " case 2561 :\n" + + " return 3;\n" + + " case 2562 :\n" + + " return 3;\n" + + " case 2563 :\n" + + " return 3;\n" + + " case 2564 :\n" + + " return 3;\n" + + " case 2565 :\n" + + " return 3;\n" + + " case 2566 :\n" + + " return 3;\n" + + " case 2567 :\n" + + " return 3;\n" + + " case 2568 :\n" + + " return 3;\n" + + " case 2569 :\n" + + " return 3;\n" + + " case 2570 :\n" + + " return 3;\n" + + " case 2571 :\n" + + " return 3;\n" + + " case 2572 :\n" + + " return 3;\n" + + " case 2573 :\n" + + " return 3;\n" + + " case 2574 :\n" + + " return 3;\n" + + " case 2575 :\n" + + " return 3;\n" + + " case 2576 :\n" + + " return 3;\n" + + " case 2577 :\n" + + " return 3;\n" + + " case 2578 :\n" + + " return 3;\n" + + " case 2579 :\n" + + " return 3;\n" + + " case 2580 :\n" + + " return 3;\n" + + " case 2581 :\n" + + " return 3;\n" + + " case 2582 :\n" + + " return 3;\n" + + " case 2583 :\n" + + " return 3;\n" + + " case 2584 :\n" + + " return 3;\n" + + " case 2585 :\n" + + " return 3;\n" + + " case 2586 :\n" + + " return 3;\n" + + " case 2587 :\n" + + " return 3;\n" + + " case 2588 :\n" + + " return 3;\n" + + " case 2589 :\n" + + " return 3;\n" + + " case 2590 :\n" + + " return 3;\n" + + " case 2591 :\n" + + " return 3;\n" + + " case 2592 :\n" + + " return 3;\n" + + " case 2593 :\n" + + " return 3;\n" + + " case 2594 :\n" + + " return 3;\n" + + " case 2595 :\n" + + " return 3;\n" + + " case 2596 :\n" + + " return 3;\n" + + " case 2597 :\n" + + " return 3;\n" + + " case 2598 :\n" + + " return 3;\n" + + " case 2599 :\n" + + " return 3;\n" + + " case 2600 :\n" + + " return 3;\n" + + " case 2601 :\n" + + " return 3;\n" + + " case 2602 :\n" + + " return 3;\n" + + " case 2603 :\n" + + " return 3;\n" + + " case 2604 :\n" + + " return 3;\n" + + " case 2605 :\n" + + " return 3;\n" + + " case 2606 :\n" + + " return 3;\n" + + " case 2607 :\n" + + " return 3;\n" + + " case 2608 :\n" + + " return 3;\n" + + " case 2609 :\n" + + " return 3;\n" + + " case 2610 :\n" + + " return 3;\n" + + " case 2611 :\n" + + " return 3;\n" + + " case 2612 :\n" + + " return 3;\n" + + " case 2613 :\n" + + " return 3;\n" + + " case 2614 :\n" + + " return 3;\n" + + " case 2615 :\n" + + " return 3;\n" + + " case 2616 :\n" + + " return 3;\n" + + " case 2617 :\n" + + " return 3;\n" + + " case 2618 :\n" + + " return 3;\n" + + " case 2619 :\n" + + " return 3;\n" + + " case 2620 :\n" + + " return 3;\n" + + " case 2621 :\n" + + " return 3;\n" + + " case 2622 :\n" + + " return 3;\n" + + " case 2623 :\n" + + " return 3;\n" + + " case 2624 :\n" + + " return 3;\n" + + " case 2625 :\n" + + " return 3;\n" + + " case 2626 :\n" + + " return 3;\n" + + " case 2627 :\n" + + " return 3;\n" + + " case 2628 :\n" + + " return 3;\n" + + " case 2629 :\n" + + " return 3;\n" + + " case 2630 :\n" + + " return 3;\n" + + " case 2631 :\n" + + " return 3;\n" + + " case 2632 :\n" + + " return 3;\n" + + " case 2633 :\n" + + " return 3;\n" + + " case 2634 :\n" + + " return 3;\n" + + " case 2635 :\n" + + " return 3;\n" + + " case 2636 :\n" + + " return 3;\n" + + " case 2637 :\n" + + " return 3;\n" + + " case 2638 :\n" + + " return 3;\n" + + " case 2639 :\n" + + " return 3;\n" + + " case 2640 :\n" + + " return 3;\n" + + " case 2641 :\n" + + " return 3;\n" + + " case 2642 :\n" + + " return 3;\n" + + " case 2643 :\n" + + " return 3;\n" + + " case 2644 :\n" + + " return 3;\n" + + " case 2645 :\n" + + " return 3;\n" + + " case 2646 :\n" + + " return 3;\n" + + " case 2647 :\n" + + " return 3;\n" + + " case 2648 :\n" + + " return 3;\n" + + " case 2649 :\n" + + " return 3;\n" + + " case 2650 :\n" + + " return 3;\n" + + " case 2651 :\n" + + " return 3;\n" + + " case 2652 :\n" + + " return 3;\n" + + " case 2653 :\n" + + " return 3;\n" + + " case 2654 :\n" + + " return 3;\n" + + " case 2655 :\n" + + " return 3;\n" + + " case 2656 :\n" + + " return 3;\n" + + " case 2657 :\n" + + " return 3;\n" + + " case 2658 :\n" + + " return 3;\n" + + " case 2659 :\n" + + " return 3;\n" + + " case 2660 :\n" + + " return 3;\n" + + " case 2661 :\n" + + " return 3;\n" + + " case 2662 :\n" + + " return 3;\n" + + " case 2663 :\n" + + " return 3;\n" + + " case 2664 :\n" + + " return 3;\n" + + " case 2665 :\n" + + " return 3;\n" + + " case 2666 :\n" + + " return 3;\n" + + " case 2667 :\n" + + " return 3;\n" + + " case 2668 :\n" + + " return 3;\n" + + " case 2669 :\n" + + " return 3;\n" + + " case 2670 :\n" + + " return 3;\n" + + " case 2671 :\n" + + " return 3;\n" + + " case 2672 :\n" + + " return 3;\n" + + " case 2673 :\n" + + " return 3;\n" + + " case 2674 :\n" + + " return 3;\n" + + " case 2675 :\n" + + " return 3;\n" + + " case 2676 :\n" + + " return 3;\n" + + " case 2677 :\n" + + " return 3;\n" + + " case 2678 :\n" + + " return 3;\n" + + " case 2679 :\n" + + " return 3;\n" + + " case 2680 :\n" + + " return 3;\n" + + " case 2681 :\n" + + " return 3;\n" + + " case 2682 :\n" + + " return 3;\n" + + " case 2683 :\n" + + " return 3;\n" + + " case 2684 :\n" + + " return 3;\n" + + " case 2685 :\n" + + " return 3;\n" + + " case 2686 :\n" + + " return 3;\n" + + " case 2687 :\n" + + " return 3;\n" + + " case 2688 :\n" + + " return 3;\n" + + " case 2689 :\n" + + " return 3;\n" + + " case 2690 :\n" + + " return 3;\n" + + " case 2691 :\n" + + " return 3;\n" + + " case 2692 :\n" + + " return 3;\n" + + " case 2693 :\n" + + " return 3;\n" + + " case 2694 :\n" + + " return 3;\n" + + " case 2695 :\n" + + " return 3;\n" + + " case 2696 :\n" + + " return 3;\n" + + " case 2697 :\n" + + " return 3;\n" + + " case 2698 :\n" + + " return 3;\n" + + " case 2699 :\n" + + " return 3;\n" + + " case 2700 :\n" + + " return 3;\n" + + " case 2701 :\n" + + " return 3;\n" + + " case 2702 :\n" + + " return 3;\n" + + " case 2703 :\n" + + " return 3;\n" + + " case 2704 :\n" + + " return 3;\n" + + " case 2705 :\n" + + " return 3;\n" + + " case 2706 :\n" + + " return 3;\n" + + " case 2707 :\n" + + " return 3;\n" + + " case 2708 :\n" + + " return 3;\n" + + " case 2709 :\n" + + " return 3;\n" + + " case 2710 :\n" + + " return 3;\n" + + " case 2711 :\n" + + " return 3;\n" + + " case 2712 :\n" + + " return 3;\n" + + " case 2713 :\n" + + " return 3;\n" + + " case 2714 :\n" + + " return 3;\n" + + " case 2715 :\n" + + " return 3;\n" + + " case 2716 :\n" + + " return 3;\n" + + " case 2717 :\n" + + " return 3;\n" + + " case 2718 :\n" + + " return 3;\n" + + " case 2719 :\n" + + " return 3;\n" + + " case 2720 :\n" + + " return 3;\n" + + " case 2721 :\n" + + " return 3;\n" + + " case 2722 :\n" + + " return 3;\n" + + " case 2723 :\n" + + " return 3;\n" + + " case 2724 :\n" + + " return 3;\n" + + " case 2725 :\n" + + " return 3;\n" + + " case 2726 :\n" + + " return 3;\n" + + " case 2727 :\n" + + " return 3;\n" + + " case 2728 :\n" + + " return 3;\n" + + " case 2729 :\n" + + " return 3;\n" + + " case 2730 :\n" + + " return 3;\n" + + " case 2731 :\n" + + " return 3;\n" + + " case 2732 :\n" + + " return 3;\n" + + " case 2733 :\n" + + " return 3;\n" + + " case 2734 :\n" + + " return 3;\n" + + " case 2735 :\n" + + " return 3;\n" + + " case 2736 :\n" + + " return 3;\n" + + " case 2737 :\n" + + " return 3;\n" + + " case 2738 :\n" + + " return 3;\n" + + " case 2739 :\n" + + " return 3;\n" + + " case 2740 :\n" + + " return 3;\n" + + " case 2741 :\n" + + " return 3;\n" + + " case 2742 :\n" + + " return 3;\n" + + " case 2743 :\n" + + " return 3;\n" + + " case 2744 :\n" + + " return 3;\n" + + " case 2745 :\n" + + " return 3;\n" + + " case 2746 :\n" + + " return 3;\n" + + " case 2747 :\n" + + " return 3;\n" + + " case 2748 :\n" + + " return 3;\n" + + " case 2749 :\n" + + " return 3;\n" + + " case 2750 :\n" + + " return 3;\n" + + " case 2751 :\n" + + " return 3;\n" + + " case 2752 :\n" + + " return 3;\n" + + " case 2753 :\n" + + " return 3;\n" + + " case 2754 :\n" + + " return 3;\n" + + " case 2755 :\n" + + " return 3;\n" + + " case 2756 :\n" + + " return 3;\n" + + " case 2757 :\n" + + " return 3;\n" + + " case 2758 :\n" + + " return 3;\n" + + " case 2759 :\n" + + " return 3;\n" + + " case 2760 :\n" + + " return 3;\n" + + " case 2761 :\n" + + " return 3;\n" + + " case 2762 :\n" + + " return 3;\n" + + " case 2763 :\n" + + " return 3;\n" + + " case 2764 :\n" + + " return 3;\n" + + " case 2765 :\n" + + " return 3;\n" + + " case 2766 :\n" + + " return 3;\n" + + " case 2767 :\n" + + " return 3;\n" + + " case 2768 :\n" + + " return 3;\n" + + " case 2769 :\n" + + " return 3;\n" + + " case 2770 :\n" + + " return 3;\n" + + " case 2771 :\n" + + " return 3;\n" + + " case 2772 :\n" + + " return 3;\n" + + " case 2773 :\n" + + " return 3;\n" + + " case 2774 :\n" + + " return 3;\n" + + " case 2775 :\n" + + " return 3;\n" + + " case 2776 :\n" + + " return 3;\n" + + " case 2777 :\n" + + " return 3;\n" + + " case 2778 :\n" + + " return 3;\n" + + " case 2779 :\n" + + " return 3;\n" + + " case 2780 :\n" + + " return 3;\n" + + " case 2781 :\n" + + " return 3;\n" + + " case 2782 :\n" + + " return 3;\n" + + " case 2783 :\n" + + " return 3;\n" + + " case 2784 :\n" + + " return 3;\n" + + " case 2785 :\n" + + " return 3;\n" + + " case 2786 :\n" + + " return 3;\n" + + " case 2787 :\n" + + " return 3;\n" + + " case 2788 :\n" + + " return 3;\n" + + " case 2789 :\n" + + " return 3;\n" + + " case 2790 :\n" + + " return 3;\n" + + " case 2791 :\n" + + " return 3;\n" + + " case 2792 :\n" + + " return 3;\n" + + " case 2793 :\n" + + " return 3;\n" + + " case 2794 :\n" + + " return 3;\n" + + " case 2795 :\n" + + " return 3;\n" + + " case 2796 :\n" + + " return 3;\n" + + " case 2797 :\n" + + " return 3;\n" + + " case 2798 :\n" + + " return 3;\n" + + " case 2799 :\n" + + " return 3;\n" + + " case 2800 :\n" + + " return 3;\n" + + " case 2801 :\n" + + " return 3;\n" + + " case 2802 :\n" + + " return 3;\n" + + " case 2803 :\n" + + " return 3;\n" + + " case 2804 :\n" + + " return 3;\n" + + " case 2805 :\n" + + " return 3;\n" + + " case 2806 :\n" + + " return 3;\n" + + " case 2807 :\n" + + " return 3;\n" + + " case 2808 :\n" + + " return 3;\n" + + " case 2809 :\n" + + " return 3;\n" + + " case 2810 :\n" + + " return 3;\n" + + " case 2811 :\n" + + " return 3;\n" + + " case 2812 :\n" + + " return 3;\n" + + " case 2813 :\n" + + " return 3;\n" + + " case 2814 :\n" + + " return 3;\n" + + " case 2815 :\n" + + " return 3;\n" + + " case 2816 :\n" + + " return 3;\n" + + " case 2817 :\n" + + " return 3;\n" + + " case 2818 :\n" + + " return 3;\n" + + " case 2819 :\n" + + " return 3;\n" + + " case 2820 :\n" + + " return 3;\n" + + " case 2821 :\n" + + " return 3;\n" + + " case 2822 :\n" + + " return 3;\n" + + " case 2823 :\n" + + " return 3;\n" + + " case 2824 :\n" + + " return 3;\n" + + " case 2825 :\n" + + " return 3;\n" + + " case 2826 :\n" + + " return 3;\n" + + " case 2827 :\n" + + " return 3;\n" + + " case 2828 :\n" + + " return 3;\n" + + " case 2829 :\n" + + " return 3;\n" + + " case 2830 :\n" + + " return 3;\n" + + " case 2831 :\n" + + " return 3;\n" + + " case 2832 :\n" + + " return 3;\n" + + " case 2833 :\n" + + " return 3;\n" + + " case 2834 :\n" + + " return 3;\n" + + " case 2835 :\n" + + " return 3;\n" + + " case 2836 :\n" + + " return 3;\n" + + " case 2837 :\n" + + " return 3;\n" + + " case 2838 :\n" + + " return 3;\n" + + " case 2839 :\n" + + " return 3;\n" + + " case 2840 :\n" + + " return 3;\n" + + " case 2841 :\n" + + " return 3;\n" + + " case 2842 :\n" + + " return 3;\n" + + " case 2843 :\n" + + " return 3;\n" + + " case 2844 :\n" + + " return 3;\n" + + " case 2845 :\n" + + " return 3;\n" + + " case 2846 :\n" + + " return 3;\n" + + " case 2847 :\n" + + " return 3;\n" + + " case 2848 :\n" + + " return 3;\n" + + " case 2849 :\n" + + " return 3;\n" + + " case 2850 :\n" + + " return 3;\n" + + " case 2851 :\n" + + " return 3;\n" + + " case 2852 :\n" + + " return 3;\n" + + " case 2853 :\n" + + " return 3;\n" + + " case 2854 :\n" + + " return 3;\n" + + " case 2855 :\n" + + " return 3;\n" + + " case 2856 :\n" + + " return 3;\n" + + " case 2857 :\n" + + " return 3;\n" + + " case 2858 :\n" + + " return 3;\n" + + " case 2859 :\n" + + " return 3;\n" + + " case 2860 :\n" + + " return 3;\n" + + " case 2861 :\n" + + " return 3;\n" + + " case 2862 :\n" + + " return 3;\n" + + " case 2863 :\n" + + " return 3;\n" + + " case 2864 :\n" + + " return 3;\n" + + " case 2865 :\n" + + " return 3;\n" + + " case 2866 :\n" + + " return 3;\n" + + " case 2867 :\n" + + " return 3;\n" + + " case 2868 :\n" + + " return 3;\n" + + " case 2869 :\n" + + " return 3;\n" + + " case 2870 :\n" + + " return 3;\n" + + " case 2871 :\n" + + " return 3;\n" + + " case 2872 :\n" + + " return 3;\n" + + " case 2873 :\n" + + " return 3;\n" + + " case 2874 :\n" + + " return 3;\n" + + " case 2875 :\n" + + " return 3;\n" + + " case 2876 :\n" + + " return 3;\n" + + " case 2877 :\n" + + " return 3;\n" + + " case 2878 :\n" + + " return 3;\n" + + " case 2879 :\n" + + " return 3;\n" + + " case 2880 :\n" + + " return 3;\n" + + " case 2881 :\n" + + " return 3;\n" + + " case 2882 :\n" + + " return 3;\n" + + " case 2883 :\n" + + " return 3;\n" + + " case 2884 :\n" + + " return 3;\n" + + " case 2885 :\n" + + " return 3;\n" + + " case 2886 :\n" + + " return 3;\n" + + " case 2887 :\n" + + " return 3;\n" + + " case 2888 :\n" + + " return 3;\n" + + " case 2889 :\n" + + " return 3;\n" + + " case 2890 :\n" + + " return 3;\n" + + " case 2891 :\n" + + " return 3;\n" + + " case 2892 :\n" + + " return 3;\n" + + " case 2893 :\n" + + " return 3;\n" + + " case 2894 :\n" + + " return 3;\n" + + " case 2895 :\n" + + " return 3;\n" + + " case 2896 :\n" + + " return 3;\n" + + " case 2897 :\n" + + " return 3;\n" + + " case 2898 :\n" + + " return 3;\n" + + " case 2899 :\n" + + " return 3;\n" + + " case 2900 :\n" + + " return 3;\n" + + " case 2901 :\n" + + " return 3;\n" + + " case 2902 :\n" + + " return 3;\n" + + " case 2903 :\n" + + " return 3;\n" + + " case 2904 :\n" + + " return 3;\n" + + " case 2905 :\n" + + " return 3;\n" + + " case 2906 :\n" + + " return 3;\n" + + " case 2907 :\n" + + " return 3;\n" + + " case 2908 :\n" + + " return 3;\n" + + " case 2909 :\n" + + " return 3;\n" + + " case 2910 :\n" + + " return 3;\n" + + " case 2911 :\n" + + " return 3;\n" + + " case 2912 :\n" + + " return 3;\n" + + " case 2913 :\n" + + " return 3;\n" + + " case 2914 :\n" + + " return 3;\n" + + " case 2915 :\n" + + " return 3;\n" + + " case 2916 :\n" + + " return 3;\n" + + " case 2917 :\n" + + " return 3;\n" + + " case 2918 :\n" + + " return 3;\n" + + " case 2919 :\n" + + " return 3;\n" + + " case 2920 :\n" + + " return 3;\n" + + " case 2921 :\n" + + " return 3;\n" + + " case 2922 :\n" + + " return 3;\n" + + " case 2923 :\n" + + " return 3;\n" + + " case 2924 :\n" + + " return 3;\n" + + " case 2925 :\n" + + " return 3;\n" + + " case 2926 :\n" + + " return 3;\n" + + " case 2927 :\n" + + " return 3;\n" + + " case 2928 :\n" + + " return 3;\n" + + " case 2929 :\n" + + " return 3;\n" + + " case 2930 :\n" + + " return 3;\n" + + " case 2931 :\n" + + " return 3;\n" + + " case 2932 :\n" + + " return 3;\n" + + " case 2933 :\n" + + " return 3;\n" + + " case 2934 :\n" + + " return 3;\n" + + " case 2935 :\n" + + " return 3;\n" + + " case 2936 :\n" + + " return 3;\n" + + " case 2937 :\n" + + " return 3;\n" + + " case 2938 :\n" + + " return 3;\n" + + " case 2939 :\n" + + " return 3;\n" + + " case 2940 :\n" + + " return 3;\n" + + " case 2941 :\n" + + " return 3;\n" + + " case 2942 :\n" + + " return 3;\n" + + " case 2943 :\n" + + " return 3;\n" + + " case 2944 :\n" + + " return 3;\n" + + " case 2945 :\n" + + " return 3;\n" + + " case 2946 :\n" + + " return 3;\n" + + " case 2947 :\n" + + " return 3;\n" + + " case 2948 :\n" + + " return 3;\n" + + " case 2949 :\n" + + " return 3;\n" + + " case 2950 :\n" + + " return 3;\n" + + " case 2951 :\n" + + " return 3;\n" + + " case 2952 :\n" + + " return 3;\n" + + " case 2953 :\n" + + " return 3;\n" + + " case 2954 :\n" + + " return 3;\n" + + " case 2955 :\n" + + " return 3;\n" + + " case 2956 :\n" + + " return 3;\n" + + " case 2957 :\n" + + " return 3;\n" + + " case 2958 :\n" + + " return 3;\n" + + " case 2959 :\n" + + " return 3;\n" + + " case 2960 :\n" + + " return 3;\n" + + " case 2961 :\n" + + " return 3;\n" + + " case 2962 :\n" + + " return 3;\n" + + " case 2963 :\n" + + " return 3;\n" + + " case 2964 :\n" + + " return 3;\n" + + " case 2965 :\n" + + " return 3;\n" + + " case 2966 :\n" + + " return 3;\n" + + " case 2967 :\n" + + " return 3;\n" + + " case 2968 :\n" + + " return 3;\n" + + " case 2969 :\n" + + " return 3;\n" + + " case 2970 :\n" + + " return 3;\n" + + " case 2971 :\n" + + " return 3;\n" + + " case 2972 :\n" + + " return 3;\n" + + " case 2973 :\n" + + " return 3;\n" + + " case 2974 :\n" + + " return 3;\n" + + " case 2975 :\n" + + " return 3;\n" + + " case 2976 :\n" + + " return 3;\n" + + " case 2977 :\n" + + " return 3;\n" + + " case 2978 :\n" + + " return 3;\n" + + " case 2979 :\n" + + " return 3;\n" + + " case 2980 :\n" + + " return 3;\n" + + " case 2981 :\n" + + " return 3;\n" + + " case 2982 :\n" + + " return 3;\n" + + " case 2983 :\n" + + " return 3;\n" + + " case 2984 :\n" + + " return 3;\n" + + " case 2985 :\n" + + " return 3;\n" + + " case 2986 :\n" + + " return 3;\n" + + " case 2987 :\n" + + " return 3;\n" + + " case 2988 :\n" + + " return 3;\n" + + " case 2989 :\n" + + " return 3;\n" + + " case 2990 :\n" + + " return 3;\n" + + " case 2991 :\n" + + " return 3;\n" + + " case 2992 :\n" + + " return 3;\n" + + " case 2993 :\n" + + " return 3;\n" + + " case 2994 :\n" + + " return 3;\n" + + " case 2995 :\n" + + " return 3;\n" + + " case 2996 :\n" + + " return 3;\n" + + " case 2997 :\n" + + " return 3;\n" + + " case 2998 :\n" + + " return 3;\n" + + " case 2999 :\n" + + " return 3;\n" + + " case 3000 :\n" + + " return 3;\n" + + " case 3001 :\n" + + " return 3;\n" + + " case 3002 :\n" + + " return 3;\n" + + " case 3003 :\n" + + " return 3;\n" + + " case 3004 :\n" + + " return 3;\n" + + " case 3005 :\n" + + " return 3;\n" + + " case 3006 :\n" + + " return 3;\n" + + " case 3007 :\n" + + " return 3;\n" + + " case 3008 :\n" + + " return 3;\n" + + " case 3009 :\n" + + " return 3;\n" + + " case 3010 :\n" + + " return 3;\n" + + " case 3011 :\n" + + " return 3;\n" + + " case 3012 :\n" + + " return 3;\n" + + " case 3013 :\n" + + " return 3;\n" + + " case 3014 :\n" + + " return 3;\n" + + " case 3015 :\n" + + " return 3;\n" + + " case 3016 :\n" + + " return 3;\n" + + " case 3017 :\n" + + " return 3;\n" + + " case 3018 :\n" + + " return 3;\n" + + " case 3019 :\n" + + " return 3;\n" + + " case 3020 :\n" + + " return 3;\n" + + " case 3021 :\n" + + " return 3;\n" + + " case 3022 :\n" + + " return 3;\n" + + " case 3023 :\n" + + " return 3;\n" + + " case 3024 :\n" + + " return 3;\n" + + " case 3025 :\n" + + " return 3;\n" + + " case 3026 :\n" + + " return 3;\n" + + " case 3027 :\n" + + " return 3;\n" + + " case 3028 :\n" + + " return 3;\n" + + " case 3029 :\n" + + " return 3;\n" + + " case 3030 :\n" + + " return 3;\n" + + " case 3031 :\n" + + " return 3;\n" + + " case 3032 :\n" + + " return 3;\n" + + " case 3033 :\n" + + " return 3;\n" + + " case 3034 :\n" + + " return 3;\n" + + " case 3035 :\n" + + " return 3;\n" + + " case 3036 :\n" + + " return 3;\n" + + " case 3037 :\n" + + " return 3;\n" + + " case 3038 :\n" + + " return 3;\n" + + " case 3039 :\n" + + " return 3;\n" + + " case 3040 :\n" + + " return 3;\n" + + " case 3041 :\n" + + " return 3;\n" + + " case 3042 :\n" + + " return 3;\n" + + " case 3043 :\n" + + " return 3;\n" + + " case 3044 :\n" + + " return 3;\n" + + " case 3045 :\n" + + " return 3;\n" + + " case 3046 :\n" + + " return 3;\n" + + " case 3047 :\n" + + " return 3;\n" + + " case 3048 :\n" + + " return 3;\n" + + " case 3049 :\n" + + " return 3;\n" + + " case 3050 :\n" + + " return 3;\n" + + " case 3051 :\n" + + " return 3;\n" + + " case 3052 :\n" + + " return 3;\n" + + " case 3053 :\n" + + " return 3;\n" + + " case 3054 :\n" + + " return 3;\n" + + " case 3055 :\n" + + " return 3;\n" + + " case 3056 :\n" + + " return 3;\n" + + " case 3057 :\n" + + " return 3;\n" + + " case 3058 :\n" + + " return 3;\n" + + " case 3059 :\n" + + " return 3;\n" + + " case 3060 :\n" + + " return 3;\n" + + " case 3061 :\n" + + " return 3;\n" + + " case 3062 :\n" + + " return 3;\n" + + " case 3063 :\n" + + " return 3;\n" + + " case 3064 :\n" + + " return 3;\n" + + " case 3065 :\n" + + " return 3;\n" + + " case 3066 :\n" + + " return 3;\n" + + " case 3067 :\n" + + " return 3;\n" + + " case 3068 :\n" + + " return 3;\n" + + " case 3069 :\n" + + " return 3;\n" + + " case 3070 :\n" + + " return 3;\n" + + " case 3071 :\n" + + " return 3;\n" + + " case 3072 :\n" + + " return 3;\n" + + " case 3073 :\n" + + " return 3;\n" + + " case 3074 :\n" + + " return 3;\n" + + " case 3075 :\n" + + " return 3;\n" + + " case 3076 :\n" + + " return 3;\n" + + " case 3077 :\n" + + " return 3;\n" + + " case 3078 :\n" + + " return 3;\n" + + " case 3079 :\n" + + " return 3;\n" + + " case 3080 :\n" + + " return 3;\n" + + " case 3081 :\n" + + " return 3;\n" + + " case 3082 :\n" + + " return 3;\n" + + " case 3083 :\n" + + " return 3;\n" + + " case 3084 :\n" + + " return 3;\n" + + " case 3085 :\n" + + " return 3;\n" + + " case 3086 :\n" + + " return 3;\n" + + " case 3087 :\n" + + " return 3;\n" + + " case 3088 :\n" + + " return 3;\n" + + " case 3089 :\n" + + " return 3;\n" + + " case 3090 :\n" + + " return 3;\n" + + " case 3091 :\n" + + " return 3;\n" + + " case 3092 :\n" + + " return 3;\n" + + " case 3093 :\n" + + " return 3;\n" + + " case 3094 :\n" + + " return 3;\n" + + " case 3095 :\n" + + " return 3;\n" + + " case 3096 :\n" + + " return 3;\n" + + " case 3097 :\n" + + " return 3;\n" + + " case 3098 :\n" + + " return 3;\n" + + " case 3099 :\n" + + " return 3;\n" + + " case 3100 :\n" + + " return 3;\n" + + " case 3101 :\n" + + " return 3;\n" + + " case 3102 :\n" + + " return 3;\n" + + " case 3103 :\n" + + " return 3;\n" + + " case 3104 :\n" + + " return 3;\n" + + " case 3105 :\n" + + " return 3;\n" + + " case 3106 :\n" + + " return 3;\n" + + " case 3107 :\n" + + " return 3;\n" + + " case 3108 :\n" + + " return 3;\n" + + " case 3109 :\n" + + " return 3;\n" + + " case 3110 :\n" + + " return 3;\n" + + " case 3111 :\n" + + " return 3;\n" + + " case 3112 :\n" + + " return 3;\n" + + " case 3113 :\n" + + " return 3;\n" + + " case 3114 :\n" + + " return 3;\n" + + " case 3115 :\n" + + " return 3;\n" + + " case 3116 :\n" + + " return 3;\n" + + " case 3117 :\n" + + " return 3;\n" + + " case 3118 :\n" + + " return 3;\n" + + " case 3119 :\n" + + " return 3;\n" + + " case 3120 :\n" + + " return 3;\n" + + " case 3121 :\n" + + " return 3;\n" + + " case 3122 :\n" + + " return 3;\n" + + " case 3123 :\n" + + " return 3;\n" + + " case 3124 :\n" + + " return 3;\n" + + " case 3125 :\n" + + " return 3;\n" + + " case 3126 :\n" + + " return 3;\n" + + " case 3127 :\n" + + " return 3;\n" + + " case 3128 :\n" + + " return 3;\n" + + " case 3129 :\n" + + " return 3;\n" + + " case 3130 :\n" + + " return 3;\n" + + " case 3131 :\n" + + " return 3;\n" + + " case 3132 :\n" + + " return 3;\n" + + " case 3133 :\n" + + " return 3;\n" + + " case 3134 :\n" + + " return 3;\n" + + " case 3135 :\n" + + " return 3;\n" + + " case 3136 :\n" + + " return 3;\n" + + " case 3137 :\n" + + " return 3;\n" + + " case 3138 :\n" + + " return 3;\n" + + " case 3139 :\n" + + " return 3;\n" + + " case 3140 :\n" + + " return 3;\n" + + " case 3141 :\n" + + " return 3;\n" + + " case 3142 :\n" + + " return 3;\n" + + " case 3143 :\n" + + " return 3;\n" + + " case 3144 :\n" + + " return 3;\n" + + " case 3145 :\n" + + " return 3;\n" + + " case 3146 :\n" + + " return 3;\n" + + " case 3147 :\n" + + " return 3;\n" + + " case 3148 :\n" + + " return 3;\n" + + " case 3149 :\n" + + " return 3;\n" + + " case 3150 :\n" + + " return 3;\n" + + " case 3151 :\n" + + " return 3;\n" + + " case 3152 :\n" + + " return 3;\n" + + " case 3153 :\n" + + " return 3;\n" + + " case 3154 :\n" + + " return 3;\n" + + " case 3155 :\n" + + " return 3;\n" + + " case 3156 :\n" + + " return 3;\n" + + " case 3157 :\n" + + " return 3;\n" + + " case 3158 :\n" + + " return 3;\n" + + " case 3159 :\n" + + " return 3;\n" + + " case 3160 :\n" + + " return 3;\n" + + " case 3161 :\n" + + " return 3;\n" + + " case 3162 :\n" + + " return 3;\n" + + " case 3163 :\n" + + " return 3;\n" + + " case 3164 :\n" + + " return 3;\n" + + " case 3165 :\n" + + " return 3;\n" + + " case 3166 :\n" + + " return 3;\n" + + " case 3167 :\n" + + " return 3;\n" + + " case 3168 :\n" + + " return 3;\n" + + " case 3169 :\n" + + " return 3;\n" + + " case 3170 :\n" + + " return 3;\n" + + " case 3171 :\n" + + " return 3;\n" + + " case 3172 :\n" + + " return 3;\n" + + " case 3173 :\n" + + " return 3;\n" + + " case 3174 :\n" + + " return 3;\n" + + " case 3175 :\n" + + " return 3;\n" + + " case 3176 :\n" + + " return 3;\n" + + " case 3177 :\n" + + " return 3;\n" + + " case 3178 :\n" + + " return 3;\n" + + " case 3179 :\n" + + " return 3;\n" + + " case 3180 :\n" + + " return 3;\n" + + " case 3181 :\n" + + " return 3;\n" + + " case 3182 :\n" + + " return 3;\n" + + " case 3183 :\n" + + " return 3;\n" + + " case 3184 :\n" + + " return 3;\n" + + " case 3185 :\n" + + " return 3;\n" + + " case 3186 :\n" + + " return 3;\n" + + " case 3187 :\n" + + " return 3;\n" + + " case 3188 :\n" + + " return 3;\n" + + " case 3189 :\n" + + " return 3;\n" + + " case 3190 :\n" + + " return 3;\n" + + " case 3191 :\n" + + " return 3;\n" + + " case 3192 :\n" + + " return 3;\n" + + " case 3193 :\n" + + " return 3;\n" + + " case 3194 :\n" + + " return 3;\n" + + " case 3195 :\n" + + " return 3;\n" + + " case 3196 :\n" + + " return 3;\n" + + " case 3197 :\n" + + " return 3;\n" + + " case 3198 :\n" + + " return 3;\n" + + " case 3199 :\n" + + " return 3;\n" + + " case 3200 :\n" + + " return 3;\n" + + " case 3201 :\n" + + " return 3;\n" + + " case 3202 :\n" + + " return 3;\n" + + " case 3203 :\n" + + " return 3;\n" + + " case 3204 :\n" + + " return 3;\n" + + " case 3205 :\n" + + " return 3;\n" + + " case 3206 :\n" + + " return 3;\n" + + " case 3207 :\n" + + " return 3;\n" + + " case 3208 :\n" + + " return 3;\n" + + " case 3209 :\n" + + " return 3;\n" + + " case 3210 :\n" + + " return 3;\n" + + " case 3211 :\n" + + " return 3;\n" + + " case 3212 :\n" + + " return 3;\n" + + " case 3213 :\n" + + " return 3;\n" + + " case 3214 :\n" + + " return 3;\n" + + " case 3215 :\n" + + " return 3;\n" + + " case 3216 :\n" + + " return 3;\n" + + " case 3217 :\n" + + " return 3;\n" + + " case 3218 :\n" + + " return 3;\n" + + " case 3219 :\n" + + " return 3;\n" + + " case 3220 :\n" + + " return 3;\n" + + " case 3221 :\n" + + " return 3;\n" + + " case 3222 :\n" + + " return 3;\n" + + " case 3223 :\n" + + " return 3;\n" + + " case 3224 :\n" + + " return 3;\n" + + " case 3225 :\n" + + " return 3;\n" + + " case 3226 :\n" + + " return 3;\n" + + " case 3227 :\n" + + " return 3;\n" + + " case 3228 :\n" + + " return 3;\n" + + " case 3229 :\n" + + " return 3;\n" + + " case 3230 :\n" + + " return 3;\n" + + " case 3231 :\n" + + " return 3;\n" + + " case 3232 :\n" + + " return 3;\n" + + " case 3233 :\n" + + " return 3;\n" + + " case 3234 :\n" + + " return 3;\n" + + " case 3235 :\n" + + " return 3;\n" + + " case 3236 :\n" + + " return 3;\n" + + " case 3237 :\n" + + " return 3;\n" + + " case 3238 :\n" + + " return 3;\n" + + " case 3239 :\n" + + " return 3;\n" + + " case 3240 :\n" + + " return 3;\n" + + " case 3241 :\n" + + " return 3;\n" + + " case 3242 :\n" + + " return 3;\n" + + " case 3243 :\n" + + " return 3;\n" + + " case 3244 :\n" + + " return 3;\n" + + " case 3245 :\n" + + " return 3;\n" + + " case 3246 :\n" + + " return 3;\n" + + " case 3247 :\n" + + " return 3;\n" + + " case 3248 :\n" + + " return 3;\n" + + " case 3249 :\n" + + " return 3;\n" + + " case 3250 :\n" + + " return 3;\n" + + " case 3251 :\n" + + " return 3;\n" + + " case 3252 :\n" + + " return 3;\n" + + " case 3253 :\n" + + " return 3;\n" + + " case 3254 :\n" + + " return 3;\n" + + " case 3255 :\n" + + " return 3;\n" + + " case 3256 :\n" + + " return 3;\n" + + " case 3257 :\n" + + " return 3;\n" + + " case 3258 :\n" + + " return 3;\n" + + " case 3259 :\n" + + " return 3;\n" + + " case 3260 :\n" + + " return 3;\n" + + " case 3261 :\n" + + " return 3;\n" + + " case 3262 :\n" + + " return 3;\n" + + " case 3263 :\n" + + " return 3;\n" + + " case 3264 :\n" + + " return 3;\n" + + " case 3265 :\n" + + " return 3;\n" + + " case 3266 :\n" + + " return 3;\n" + + " case 3267 :\n" + + " return 3;\n" + + " case 3268 :\n" + + " return 3;\n" + + " case 3269 :\n" + + " return 3;\n" + + " case 3270 :\n" + + " return 3;\n" + + " case 3271 :\n" + + " return 3;\n" + + " case 3272 :\n" + + " return 3;\n" + + " case 3273 :\n" + + " return 3;\n" + + " case 3274 :\n" + + " return 3;\n" + + " case 3275 :\n" + + " return 3;\n" + + " case 3276 :\n" + + " return 3;\n" + + " case 3277 :\n" + + " return 3;\n" + + " case 3278 :\n" + + " return 3;\n" + + " case 3279 :\n" + + " return 3;\n" + + " case 3280 :\n" + + " return 3;\n" + + " case 3281 :\n" + + " return 3;\n" + + " case 3282 :\n" + + " return 3;\n" + + " case 3283 :\n" + + " return 3;\n" + + " case 3284 :\n" + + " return 3;\n" + + " case 3285 :\n" + + " return 3;\n" + + " case 3286 :\n" + + " return 3;\n" + + " case 3287 :\n" + + " return 3;\n" + + " case 3288 :\n" + + " return 3;\n" + + " case 3289 :\n" + + " return 3;\n" + + " case 3290 :\n" + + " return 3;\n" + + " case 3291 :\n" + + " return 3;\n" + + " case 3292 :\n" + + " return 3;\n" + + " case 3293 :\n" + + " return 3;\n" + + " case 3294 :\n" + + " return 3;\n" + + " case 3295 :\n" + + " return 3;\n" + + " case 3296 :\n" + + " return 3;\n" + + " case 3297 :\n" + + " return 3;\n" + + " case 3298 :\n" + + " return 3;\n" + + " case 3299 :\n" + + " return 3;\n" + + " case 3300 :\n" + + " return 3;\n" + + " case 3301 :\n" + + " return 3;\n" + + " case 3302 :\n" + + " return 3;\n" + + " case 3303 :\n" + + " return 3;\n" + + " case 3304 :\n" + + " return 3;\n" + + " case 3305 :\n" + + " return 3;\n" + + " case 3306 :\n" + + " return 3;\n" + + " case 3307 :\n" + + " return 3;\n" + + " case 3308 :\n" + + " return 3;\n" + + " case 3309 :\n" + + " return 3;\n" + + " case 3310 :\n" + + " return 3;\n" + + " case 3311 :\n" + + " return 3;\n" + + " case 3312 :\n" + + " return 3;\n" + + " case 3313 :\n" + + " return 3;\n" + + " case 3314 :\n" + + " return 3;\n" + + " case 3315 :\n" + + " return 3;\n" + + " case 3316 :\n" + + " return 3;\n" + + " case 3317 :\n" + + " return 3;\n" + + " case 3318 :\n" + + " return 3;\n" + + " case 3319 :\n" + + " return 3;\n" + + " case 3320 :\n" + + " return 3;\n" + + " case 3321 :\n" + + " return 3;\n" + + " case 3322 :\n" + + " return 3;\n" + + " case 3323 :\n" + + " return 3;\n" + + " case 3324 :\n" + + " return 3;\n" + + " case 3325 :\n" + + " return 3;\n" + + " case 3326 :\n" + + " return 3;\n" + + " case 3327 :\n" + + " return 3;\n" + + " case 3328 :\n" + + " return 3;\n" + + " case 3329 :\n" + + " return 3;\n" + + " case 3330 :\n" + + " return 3;\n" + + " case 3331 :\n" + + " return 3;\n" + + " case 3332 :\n" + + " return 3;\n" + + " case 3333 :\n" + + " return 3;\n" + + " case 3334 :\n" + + " return 3;\n" + + " case 3335 :\n" + + " return 3;\n" + + " case 3336 :\n" + + " return 3;\n" + + " case 3337 :\n" + + " return 3;\n" + + " case 3338 :\n" + + " return 3;\n" + + " case 3339 :\n" + + " return 3;\n" + + " case 3340 :\n" + + " return 3;\n" + + " case 3341 :\n" + + " return 3;\n" + + " case 3342 :\n" + + " return 3;\n" + + " case 3343 :\n" + + " return 3;\n" + + " case 3344 :\n" + + " return 3;\n" + + " case 3345 :\n" + + " return 3;\n" + + " case 3346 :\n" + + " return 3;\n" + + " case 3347 :\n" + + " return 3;\n" + + " case 3348 :\n" + + " return 3;\n" + + " case 3349 :\n" + + " return 3;\n" + + " case 3350 :\n" + + " return 3;\n" + + " case 3351 :\n" + + " return 3;\n" + + " case 3352 :\n" + + " return 3;\n" + + " case 3353 :\n" + + " return 3;\n" + + " case 3354 :\n" + + " return 3;\n" + + " case 3355 :\n" + + " return 3;\n" + + " case 3356 :\n" + + " return 3;\n" + + " case 3357 :\n" + + " return 3;\n" + + " case 3358 :\n" + + " return 3;\n" + + " case 3359 :\n" + + " return 3;\n" + + " case 3360 :\n" + + " return 3;\n" + + " case 3361 :\n" + + " return 3;\n" + + " case 3362 :\n" + + " return 3;\n" + + " case 3363 :\n" + + " return 3;\n" + + " case 3364 :\n" + + " return 3;\n" + + " case 3365 :\n" + + " return 3;\n" + + " case 3366 :\n" + + " return 3;\n" + + " case 3367 :\n" + + " return 3;\n" + + " case 3368 :\n" + + " return 3;\n" + + " case 3369 :\n" + + " return 3;\n" + + " case 3370 :\n" + + " return 3;\n" + + " case 3371 :\n" + + " return 3;\n" + + " case 3372 :\n" + + " return 3;\n" + + " case 3373 :\n" + + " return 3;\n" + + " case 3374 :\n" + + " return 3;\n" + + " case 3375 :\n" + + " return 3;\n" + + " case 3376 :\n" + + " return 3;\n" + + " case 3377 :\n" + + " return 3;\n" + + " case 3378 :\n" + + " return 3;\n" + + " case 3379 :\n" + + " return 3;\n" + + " case 3380 :\n" + + " return 3;\n" + + " case 3381 :\n" + + " return 3;\n" + + " case 3382 :\n" + + " return 3;\n" + + " case 3383 :\n" + + " return 3;\n" + + " case 3384 :\n" + + " return 3;\n" + + " case 3385 :\n" + + " return 3;\n" + + " case 3386 :\n" + + " return 3;\n" + + " case 3387 :\n" + + " return 3;\n" + + " case 3388 :\n" + + " return 3;\n" + + " case 3389 :\n" + + " return 3;\n" + + " case 3390 :\n" + + " return 3;\n" + + " case 3391 :\n" + + " return 3;\n" + + " case 3392 :\n" + + " return 3;\n" + + " case 3393 :\n" + + " return 3;\n" + + " case 3394 :\n" + + " return 3;\n" + + " case 3395 :\n" + + " return 3;\n" + + " case 3396 :\n" + + " return 3;\n" + + " case 3397 :\n" + + " return 3;\n" + + " case 3398 :\n" + + " return 3;\n" + + " case 3399 :\n" + + " return 3;\n" + + " case 3400 :\n" + + " return 3;\n" + + " case 3401 :\n" + + " return 3;\n" + + " case 3402 :\n" + + " return 3;\n" + + " case 3403 :\n" + + " return 3;\n" + + " case 3404 :\n" + + " return 3;\n" + + " case 3405 :\n" + + " return 3;\n" + + " case 3406 :\n" + + " return 3;\n" + + " case 3407 :\n" + + " return 3;\n" + + " case 3408 :\n" + + " return 3;\n" + + " case 3409 :\n" + + " return 3;\n" + + " case 3410 :\n" + + " return 3;\n" + + " case 3411 :\n" + + " return 3;\n" + + " case 3412 :\n" + + " return 3;\n" + + " case 3413 :\n" + + " return 3;\n" + + " case 3414 :\n" + + " return 3;\n" + + " case 3415 :\n" + + " return 3;\n" + + " case 3416 :\n" + + " return 3;\n" + + " case 3417 :\n" + + " return 3;\n" + + " case 3418 :\n" + + " return 3;\n" + + " case 3419 :\n" + + " return 3;\n" + + " case 3420 :\n" + + " return 3;\n" + + " case 3421 :\n" + + " return 3;\n" + + " case 3422 :\n" + + " return 3;\n" + + " case 3423 :\n" + + " return 3;\n" + + " case 3424 :\n" + + " return 3;\n" + + " case 3425 :\n" + + " return 3;\n" + + " case 3426 :\n" + + " return 3;\n" + + " case 3427 :\n" + + " return 3;\n" + + " case 3428 :\n" + + " return 3;\n" + + " case 3429 :\n" + + " return 3;\n" + + " case 3430 :\n" + + " return 3;\n" + + " case 3431 :\n" + + " return 3;\n" + + " case 3432 :\n" + + " return 3;\n" + + " case 3433 :\n" + + " return 3;\n" + + " case 3434 :\n" + + " return 3;\n" + + " case 3435 :\n" + + " return 3;\n" + + " case 3436 :\n" + + " return 3;\n" + + " case 3437 :\n" + + " return 3;\n" + + " case 3438 :\n" + + " return 3;\n" + + " case 3439 :\n" + + " return 3;\n" + + " case 3440 :\n" + + " return 3;\n" + + " case 3441 :\n" + + " return 3;\n" + + " case 3442 :\n" + + " return 3;\n" + + " case 3443 :\n" + + " return 3;\n" + + " case 3444 :\n" + + " return 3;\n" + + " case 3445 :\n" + + " return 3;\n" + + " case 3446 :\n" + + " return 3;\n" + + " case 3447 :\n" + + " return 3;\n" + + " case 3448 :\n" + + " return 3;\n" + + " case 3449 :\n" + + " return 3;\n" + + " case 3450 :\n" + + " return 3;\n" + + " case 3451 :\n" + + " return 3;\n" + + " case 3452 :\n" + + " return 3;\n" + + " case 3453 :\n" + + " return 3;\n" + + " case 3454 :\n" + + " return 3;\n" + + " case 3455 :\n" + + " return 3;\n" + + " case 3456 :\n" + + " return 3;\n" + + " case 3457 :\n" + + " return 3;\n" + + " case 3458 :\n" + + " return 3;\n" + + " case 3459 :\n" + + " return 3;\n" + + " case 3460 :\n" + + " return 3;\n" + + " case 3461 :\n" + + " return 3;\n" + + " case 3462 :\n" + + " return 3;\n" + + " case 3463 :\n" + + " return 3;\n" + + " case 3464 :\n" + + " return 3;\n" + + " case 3465 :\n" + + " return 3;\n" + + " case 3466 :\n" + + " return 3;\n" + + " case 3467 :\n" + + " return 3;\n" + + " case 3468 :\n" + + " return 3;\n" + + " case 3469 :\n" + + " return 3;\n" + + " case 3470 :\n" + + " return 3;\n" + + " case 3471 :\n" + + " return 3;\n" + + " case 3472 :\n" + + " return 3;\n" + + " case 3473 :\n" + + " return 3;\n" + + " case 3474 :\n" + + " return 3;\n" + + " case 3475 :\n" + + " return 3;\n" + + " case 3476 :\n" + + " return 3;\n" + + " case 3477 :\n" + + " return 3;\n" + + " case 3478 :\n" + + " return 3;\n" + + " case 3479 :\n" + + " return 3;\n" + + " case 3480 :\n" + + " return 3;\n" + + " case 3481 :\n" + + " return 3;\n" + + " case 3482 :\n" + + " return 3;\n" + + " case 3483 :\n" + + " return 3;\n" + + " case 3484 :\n" + + " return 3;\n" + + " case 3485 :\n" + + " return 3;\n" + + " case 3486 :\n" + + " return 3;\n" + + " case 3487 :\n" + + " return 3;\n" + + " case 3488 :\n" + + " return 3;\n" + + " case 3489 :\n" + + " return 3;\n" + + " case 3490 :\n" + + " return 3;\n" + + " case 3491 :\n" + + " return 3;\n" + + " case 3492 :\n" + + " return 3;\n" + + " case 3493 :\n" + + " return 3;\n" + + " case 3494 :\n" + + " return 3;\n" + + " case 3495 :\n" + + " return 3;\n" + + " case 3496 :\n" + + " return 3;\n" + + " case 3497 :\n" + + " return 3;\n" + + " case 3498 :\n" + + " return 3;\n" + + " case 3499 :\n" + + " return 3;\n" + + " case 3500 :\n" + + " return 3;\n" + + " case 3501 :\n" + + " return 3;\n" + + " case 3502 :\n" + + " return 3;\n" + + " case 3503 :\n" + + " return 3;\n" + + " case 3504 :\n" + + " return 3;\n" + + " case 3505 :\n" + + " return 3;\n" + + " case 3506 :\n" + + " return 3;\n" + + " case 3507 :\n" + + " return 3;\n" + + " case 3508 :\n" + + " return 3;\n" + + " case 3509 :\n" + + " return 3;\n" + + " case 3510 :\n" + + " return 3;\n" + + " case 3511 :\n" + + " return 3;\n" + + " case 3512 :\n" + + " return 3;\n" + + " case 3513 :\n" + + " return 3;\n" + + " case 3514 :\n" + + " return 3;\n" + + " case 3515 :\n" + + " return 3;\n" + + " case 3516 :\n" + + " return 3;\n" + + " case 3517 :\n" + + " return 3;\n" + + " case 3518 :\n" + + " return 3;\n" + + " case 3519 :\n" + + " return 3;\n" + + " case 3520 :\n" + + " return 3;\n" + + " case 3521 :\n" + + " return 3;\n" + + " case 3522 :\n" + + " return 3;\n" + + " case 3523 :\n" + + " return 3;\n" + + " case 3524 :\n" + + " return 3;\n" + + " case 3525 :\n" + + " return 3;\n" + + " case 3526 :\n" + + " return 3;\n" + + " case 3527 :\n" + + " return 3;\n" + + " case 3528 :\n" + + " return 3;\n" + + " case 3529 :\n" + + " return 3;\n" + + " case 3530 :\n" + + " return 3;\n" + + " case 3531 :\n" + + " return 3;\n" + + " case 3532 :\n" + + " return 3;\n" + + " case 3533 :\n" + + " return 3;\n" + + " case 3534 :\n" + + " return 3;\n" + + " case 3535 :\n" + + " return 3;\n" + + " case 3536 :\n" + + " return 3;\n" + + " case 3537 :\n" + + " return 3;\n" + + " case 3538 :\n" + + " return 3;\n" + + " case 3539 :\n" + + " return 3;\n" + + " case 3540 :\n" + + " return 3;\n" + + " case 3541 :\n" + + " return 3;\n" + + " case 3542 :\n" + + " return 3;\n" + + " case 3543 :\n" + + " return 3;\n" + + " case 3544 :\n" + + " return 3;\n" + + " case 3545 :\n" + + " return 3;\n" + + " case 3546 :\n" + + " return 3;\n" + + " case 3547 :\n" + + " return 3;\n" + + " case 3548 :\n" + + " return 3;\n" + + " case 3549 :\n" + + " return 3;\n" + + " case 3550 :\n" + + " return 3;\n" + + " case 3551 :\n" + + " return 3;\n" + + " case 3552 :\n" + + " return 3;\n" + + " case 3553 :\n" + + " return 3;\n" + + " case 3554 :\n" + + " return 3;\n" + + " case 3555 :\n" + + " return 3;\n" + + " case 3556 :\n" + + " return 3;\n" + + " case 3557 :\n" + + " return 3;\n" + + " case 3558 :\n" + + " return 3;\n" + + " case 3559 :\n" + + " return 3;\n" + + " case 3560 :\n" + + " return 3;\n" + + " case 3561 :\n" + + " return 3;\n" + + " case 3562 :\n" + + " return 3;\n" + + " case 3563 :\n" + + " return 3;\n" + + " case 3564 :\n" + + " return 3;\n" + + " case 3565 :\n" + + " return 3;\n" + + " case 3566 :\n" + + " return 3;\n" + + " case 3567 :\n" + + " return 3;\n" + + " case 3568 :\n" + + " return 3;\n" + + " case 3569 :\n" + + " return 3;\n" + + " case 3570 :\n" + + " return 3;\n" + + " case 3571 :\n" + + " return 3;\n" + + " case 3572 :\n" + + " return 3;\n" + + " case 3573 :\n" + + " return 3;\n" + + " case 3574 :\n" + + " return 3;\n" + + " case 3575 :\n" + + " return 3;\n" + + " case 3576 :\n" + + " return 3;\n" + + " case 3577 :\n" + + " return 3;\n" + + " case 3578 :\n" + + " return 3;\n" + + " case 3579 :\n" + + " return 3;\n" + + " case 3580 :\n" + + " return 3;\n" + + " case 3581 :\n" + + " return 3;\n" + + " case 3582 :\n" + + " return 3;\n" + + " case 3583 :\n" + + " return 3;\n" + + " case 3584 :\n" + + " return 3;\n" + + " case 3585 :\n" + + " return 3;\n" + + " case 3586 :\n" + + " return 3;\n" + + " case 3587 :\n" + + " return 3;\n" + + " case 3588 :\n" + + " return 3;\n" + + " case 3589 :\n" + + " return 3;\n" + + " case 3590 :\n" + + " return 3;\n" + + " case 3591 :\n" + + " return 3;\n" + + " case 3592 :\n" + + " return 3;\n" + + " case 3593 :\n" + + " return 3;\n" + + " case 3594 :\n" + + " return 3;\n" + + " case 3595 :\n" + + " return 3;\n" + + " case 3596 :\n" + + " return 3;\n" + + " case 3597 :\n" + + " return 3;\n" + + " case 3598 :\n" + + " return 3;\n" + + " case 3599 :\n" + + " return 3;\n" + + " case 3600 :\n" + + " return 3;\n" + + " case 3601 :\n" + + " return 3;\n" + + " case 3602 :\n" + + " return 3;\n" + + " case 3603 :\n" + + " return 3;\n" + + " case 3604 :\n" + + " return 3;\n" + + " case 3605 :\n" + + " return 3;\n" + + " case 3606 :\n" + + " return 3;\n" + + " case 3607 :\n" + + " return 3;\n" + + " case 3608 :\n" + + " return 3;\n" + + " case 3609 :\n" + + " return 3;\n" + + " case 3610 :\n" + + " return 3;\n" + + " case 3611 :\n" + + " return 3;\n" + + " case 3612 :\n" + + " return 3;\n" + + " case 3613 :\n" + + " return 3;\n" + + " case 3614 :\n" + + " return 3;\n" + + " case 3615 :\n" + + " return 3;\n" + + " case 3616 :\n" + + " return 3;\n" + + " case 3617 :\n" + + " return 3;\n" + + " case 3618 :\n" + + " return 3;\n" + + " case 3619 :\n" + + " return 3;\n" + + " case 3620 :\n" + + " return 3;\n" + + " case 3621 :\n" + + " return 3;\n" + + " case 3622 :\n" + + " return 3;\n" + + " case 3623 :\n" + + " return 3;\n" + + " case 3624 :\n" + + " return 3;\n" + + " case 3625 :\n" + + " return 3;\n" + + " case 3626 :\n" + + " return 3;\n" + + " case 3627 :\n" + + " return 3;\n" + + " case 3628 :\n" + + " return 3;\n" + + " case 3629 :\n" + + " return 3;\n" + + " case 3630 :\n" + + " return 3;\n" + + " case 3631 :\n" + + " return 3;\n" + + " case 3632 :\n" + + " return 3;\n" + + " case 3633 :\n" + + " return 3;\n" + + " case 3634 :\n" + + " return 3;\n" + + " case 3635 :\n" + + " return 3;\n" + + " case 3636 :\n" + + " return 3;\n" + + " case 3637 :\n" + + " return 3;\n" + + " case 3638 :\n" + + " return 3;\n" + + " case 3639 :\n" + + " return 3;\n" + + " case 3640 :\n" + + " return 3;\n" + + " case 3641 :\n" + + " return 3;\n" + + " case 3642 :\n" + + " return 3;\n" + + " case 3643 :\n" + + " return 3;\n" + + " case 3644 :\n" + + " return 3;\n" + + " case 3645 :\n" + + " return 3;\n" + + " case 3646 :\n" + + " return 3;\n" + + " case 3647 :\n" + + " return 3;\n" + + " case 3648 :\n" + + " return 3;\n" + + " case 3649 :\n" + + " return 3;\n" + + " case 3650 :\n" + + " return 3;\n" + + " case 3651 :\n" + + " return 3;\n" + + " case 3652 :\n" + + " return 3;\n" + + " case 3653 :\n" + + " return 3;\n" + + " case 3654 :\n" + + " return 3;\n" + + " case 3655 :\n" + + " return 3;\n" + + " case 3656 :\n" + + " return 3;\n" + + " case 3657 :\n" + + " return 3;\n" + + " case 3658 :\n" + + " return 3;\n" + + " case 3659 :\n" + + " return 3;\n" + + " case 3660 :\n" + + " return 3;\n" + + " case 3661 :\n" + + " return 3;\n" + + " case 3662 :\n" + + " return 3;\n" + + " case 3663 :\n" + + " return 3;\n" + + " case 3664 :\n" + + " return 3;\n" + + " case 3665 :\n" + + " return 3;\n" + + " case 3666 :\n" + + " return 3;\n" + + " case 3667 :\n" + + " return 3;\n" + + " case 3668 :\n" + + " return 3;\n" + + " case 3669 :\n" + + " return 3;\n" + + " case 3670 :\n" + + " return 3;\n" + + " case 3671 :\n" + + " return 3;\n" + + " case 3672 :\n" + + " return 3;\n" + + " case 3673 :\n" + + " return 3;\n" + + " case 3674 :\n" + + " return 3;\n" + + " case 3675 :\n" + + " return 3;\n" + + " case 3676 :\n" + + " return 3;\n" + + " case 3677 :\n" + + " return 3;\n" + + " case 3678 :\n" + + " return 3;\n" + + " case 3679 :\n" + + " return 3;\n" + + " case 3680 :\n" + + " return 3;\n" + + " case 3681 :\n" + + " return 3;\n" + + " case 3682 :\n" + + " return 3;\n" + + " case 3683 :\n" + + " return 3;\n" + + " case 3684 :\n" + + " return 3;\n" + + " case 3685 :\n" + + " return 3;\n" + + " case 3686 :\n" + + " return 3;\n" + + " case 3687 :\n" + + " return 3;\n" + + " case 3688 :\n" + + " return 3;\n" + + " case 3689 :\n" + + " return 3;\n" + + " case 3690 :\n" + + " return 3;\n" + + " case 3691 :\n" + + " return 3;\n" + + " case 3692 :\n" + + " return 3;\n" + + " case 3693 :\n" + + " return 3;\n" + + " case 3694 :\n" + + " return 3;\n" + + " case 3695 :\n" + + " return 3;\n" + + " case 3696 :\n" + + " return 3;\n" + + " case 3697 :\n" + + " return 3;\n" + + " case 3698 :\n" + + " return 3;\n" + + " case 3699 :\n" + + " return 3;\n" + + " case 3700 :\n" + + " return 3;\n" + + " case 3701 :\n" + + " return 3;\n" + + " case 3702 :\n" + + " return 3;\n" + + " case 3703 :\n" + + " return 3;\n" + + " case 3704 :\n" + + " return 3;\n" + + " case 3705 :\n" + + " return 3;\n" + + " case 3706 :\n" + + " return 3;\n" + + " case 3707 :\n" + + " return 3;\n" + + " case 3708 :\n" + + " return 3;\n" + + " case 3709 :\n" + + " return 3;\n" + + " case 3710 :\n" + + " return 3;\n" + + " case 3711 :\n" + + " return 3;\n" + + " case 3712 :\n" + + " return 3;\n" + + " case 3713 :\n" + + " return 3;\n" + + " case 3714 :\n" + + " return 3;\n" + + " case 3715 :\n" + + " return 3;\n" + + " case 3716 :\n" + + " return 3;\n" + + " case 3717 :\n" + + " return 3;\n" + + " case 3718 :\n" + + " return 3;\n" + + " case 3719 :\n" + + " return 3;\n" + + " case 3720 :\n" + + " return 3;\n" + + " case 3721 :\n" + + " return 3;\n" + + " case 3722 :\n" + + " return 3;\n" + + " case 3723 :\n" + + " return 3;\n" + + " case 3724 :\n" + + " return 3;\n" + + " case 3725 :\n" + + " return 3;\n" + + " case 3726 :\n" + + " return 3;\n" + + " case 3727 :\n" + + " return 3;\n" + + " case 3728 :\n" + + " return 3;\n" + + " case 3729 :\n" + + " return 3;\n" + + " case 3730 :\n" + + " return 3;\n" + + " case 3731 :\n" + + " return 3;\n" + + " case 3732 :\n" + + " return 3;\n" + + " case 3733 :\n" + + " return 3;\n" + + " case 3734 :\n" + + " return 3;\n" + + " case 3735 :\n" + + " return 3;\n" + + " case 3736 :\n" + + " return 3;\n" + + " case 3737 :\n" + + " return 3;\n" + + " case 3738 :\n" + + " return 3;\n" + + " case 3739 :\n" + + " return 3;\n" + + " case 3740 :\n" + + " return 3;\n" + + " case 3741 :\n" + + " return 3;\n" + + " case 3742 :\n" + + " return 3;\n" + + " case 3743 :\n" + + " return 3;\n" + + " case 3744 :\n" + + " return 3;\n" + + " case 3745 :\n" + + " return 3;\n" + + " case 3746 :\n" + + " return 3;\n" + + " case 3747 :\n" + + " return 3;\n" + + " case 3748 :\n" + + " return 3;\n" + + " case 3749 :\n" + + " return 3;\n" + + " case 3750 :\n" + + " return 3;\n" + + " case 3751 :\n" + + " return 3;\n" + + " case 3752 :\n" + + " return 3;\n" + + " case 3753 :\n" + + " return 3;\n" + + " case 3754 :\n" + + " return 3;\n" + + " case 3755 :\n" + + " return 3;\n" + + " case 3756 :\n" + + " return 3;\n" + + " case 3757 :\n" + + " return 3;\n" + + " case 3758 :\n" + + " return 3;\n" + + " case 3759 :\n" + + " return 3;\n" + + " case 3760 :\n" + + " return 3;\n" + + " case 3761 :\n" + + " return 3;\n" + + " case 3762 :\n" + + " return 3;\n" + + " case 3763 :\n" + + " return 3;\n" + + " case 3764 :\n" + + " return 3;\n" + + " case 3765 :\n" + + " return 3;\n" + + " case 3766 :\n" + + " return 3;\n" + + " case 3767 :\n" + + " return 3;\n" + + " case 3768 :\n" + + " return 3;\n" + + " case 3769 :\n" + + " return 3;\n" + + " case 3770 :\n" + + " return 3;\n" + + " case 3771 :\n" + + " return 3;\n" + + " case 3772 :\n" + + " return 3;\n" + + " case 3773 :\n" + + " return 3;\n" + + " case 3774 :\n" + + " return 3;\n" + + " case 3775 :\n" + + " return 3;\n" + + " case 3776 :\n" + + " return 3;\n" + + " case 3777 :\n" + + " return 3;\n" + + " case 3778 :\n" + + " return 3;\n" + + " case 3779 :\n" + + " return 3;\n" + + " case 3780 :\n" + + " return 3;\n" + + " case 3781 :\n" + + " return 3;\n" + + " case 3782 :\n" + + " return 3;\n" + + " case 3783 :\n" + + " return 3;\n" + + " case 3784 :\n" + + " return 3;\n" + + " case 3785 :\n" + + " return 3;\n" + + " case 3786 :\n" + + " return 3;\n" + + " case 3787 :\n" + + " return 3;\n" + + " case 3788 :\n" + + " return 3;\n" + + " case 3789 :\n" + + " return 3;\n" + + " case 3790 :\n" + + " return 3;\n" + + " case 3791 :\n" + + " return 3;\n" + + " case 3792 :\n" + + " return 3;\n" + + " case 3793 :\n" + + " return 3;\n" + + " case 3794 :\n" + + " return 3;\n" + + " case 3795 :\n" + + " return 3;\n" + + " case 3796 :\n" + + " return 3;\n" + + " case 3797 :\n" + + " return 3;\n" + + " case 3798 :\n" + + " return 3;\n" + + " case 3799 :\n" + + " return 3;\n" + + " case 3800 :\n" + + " return 3;\n" + + " case 3801 :\n" + + " return 3;\n" + + " case 3802 :\n" + + " return 3;\n" + + " case 3803 :\n" + + " return 3;\n" + + " case 3804 :\n" + + " return 3;\n" + + " case 3805 :\n" + + " return 3;\n" + + " case 3806 :\n" + + " return 3;\n" + + " case 3807 :\n" + + " return 3;\n" + + " case 3808 :\n" + + " return 3;\n" + + " case 3809 :\n" + + " return 3;\n" + + " case 3810 :\n" + + " return 3;\n" + + " case 3811 :\n" + + " return 3;\n" + + " case 3812 :\n" + + " return 3;\n" + + " case 3813 :\n" + + " return 3;\n" + + " case 3814 :\n" + + " return 3;\n" + + " case 3815 :\n" + + " return 3;\n" + + " case 3816 :\n" + + " return 3;\n" + + " case 3817 :\n" + + " return 3;\n" + + " case 3818 :\n" + + " return 3;\n" + + " case 3819 :\n" + + " return 3;\n" + + " case 3820 :\n" + + " return 3;\n" + + " case 3821 :\n" + + " return 3;\n" + + " case 3822 :\n" + + " return 3;\n" + + " case 3823 :\n" + + " return 3;\n" + + " case 3824 :\n" + + " return 3;\n" + + " case 3825 :\n" + + " return 3;\n" + + " case 3826 :\n" + + " return 3;\n" + + " case 3827 :\n" + + " return 3;\n" + + " case 3828 :\n" + + " return 3;\n" + + " case 3829 :\n" + + " return 3;\n" + + " case 3830 :\n" + + " return 3;\n" + + " case 3831 :\n" + + " return 3;\n" + + " case 3832 :\n" + + " return 3;\n" + + " case 3833 :\n" + + " return 3;\n" + + " case 3834 :\n" + + " return 3;\n" + + " case 3835 :\n" + + " return 3;\n" + + " case 3836 :\n" + + " return 3;\n" + + " case 3837 :\n" + + " return 3;\n" + + " case 3838 :\n" + + " return 3;\n" + + " case 3839 :\n" + + " return 3;\n" + + " case 3840 :\n" + + " return 3;\n" + + " case 3841 :\n" + + " return 3;\n" + + " case 3842 :\n" + + " return 3;\n" + + " case 3843 :\n" + + " return 3;\n" + + " case 3844 :\n" + + " return 3;\n" + + " case 3845 :\n" + + " return 3;\n" + + " case 3846 :\n" + + " return 3;\n" + + " case 3847 :\n" + + " return 3;\n" + + " case 3848 :\n" + + " return 3;\n" + + " case 3849 :\n" + + " return 3;\n" + + " case 3850 :\n" + + " return 3;\n" + + " case 3851 :\n" + + " return 3;\n" + + " case 3852 :\n" + + " return 3;\n" + + " case 3853 :\n" + + " return 3;\n" + + " case 3854 :\n" + + " return 3;\n" + + " case 3855 :\n" + + " return 3;\n" + + " case 3856 :\n" + + " return 3;\n" + + " case 3857 :\n" + + " return 3;\n" + + " case 3858 :\n" + + " return 3;\n" + + " case 3859 :\n" + + " return 3;\n" + + " case 3860 :\n" + + " return 3;\n" + + " case 3861 :\n" + + " return 3;\n" + + " case 3862 :\n" + + " return 3;\n" + + " case 3863 :\n" + + " return 3;\n" + + " case 3864 :\n" + + " return 3;\n" + + " case 3865 :\n" + + " return 3;\n" + + " case 3866 :\n" + + " return 3;\n" + + " case 3867 :\n" + + " return 3;\n" + + " case 3868 :\n" + + " return 3;\n" + + " case 3869 :\n" + + " return 3;\n" + + " case 3870 :\n" + + " return 3;\n" + + " case 3871 :\n" + + " return 3;\n" + + " case 3872 :\n" + + " return 3;\n" + + " case 3873 :\n" + + " return 3;\n" + + " case 3874 :\n" + + " return 3;\n" + + " case 3875 :\n" + + " return 3;\n" + + " case 3876 :\n" + + " return 3;\n" + + " case 3877 :\n" + + " return 3;\n" + + " case 3878 :\n" + + " return 3;\n" + + " case 3879 :\n" + + " return 3;\n" + + " case 3880 :\n" + + " return 3;\n" + + " case 3881 :\n" + + " return 3;\n" + + " case 3882 :\n" + + " return 3;\n" + + " case 3883 :\n" + + " return 3;\n" + + " case 3884 :\n" + + " return 3;\n" + + " case 3885 :\n" + + " return 3;\n" + + " case 3886 :\n" + + " return 3;\n" + + " case 3887 :\n" + + " return 3;\n" + + " case 3888 :\n" + + " return 3;\n" + + " case 3889 :\n" + + " return 3;\n" + + " case 3890 :\n" + + " return 3;\n" + + " case 3891 :\n" + + " return 3;\n" + + " case 3892 :\n" + + " return 3;\n" + + " case 3893 :\n" + + " return 3;\n" + + " case 3894 :\n" + + " return 3;\n" + + " case 3895 :\n" + + " return 3;\n" + + " case 3896 :\n" + + " return 3;\n" + + " case 3897 :\n" + + " return 3;\n" + + " case 3898 :\n" + + " return 3;\n" + + " case 3899 :\n" + + " return 3;\n" + + " case 3900 :\n" + + " return 3;\n" + + " case 3901 :\n" + + " return 3;\n" + + " case 3902 :\n" + + " return 3;\n" + + " case 3903 :\n" + + " return 3;\n" + + " case 3904 :\n" + + " return 3;\n" + + " case 3905 :\n" + + " return 3;\n" + + " case 3906 :\n" + + " return 3;\n" + + " case 3907 :\n" + + " return 3;\n" + + " case 3908 :\n" + + " return 3;\n" + + " case 3909 :\n" + + " return 3;\n" + + " case 3910 :\n" + + " return 3;\n" + + " case 3911 :\n" + + " return 3;\n" + + " case 3912 :\n" + + " return 3;\n" + + " case 3913 :\n" + + " return 3;\n" + + " case 3914 :\n" + + " return 3;\n" + + " case 3915 :\n" + + " return 3;\n" + + " case 3916 :\n" + + " return 3;\n" + + " case 3917 :\n" + + " return 3;\n" + + " case 3918 :\n" + + " return 3;\n" + + " case 3919 :\n" + + " return 3;\n" + + " case 3920 :\n" + + " return 3;\n" + + " case 3921 :\n" + + " return 3;\n" + + " case 3922 :\n" + + " return 3;\n" + + " case 3923 :\n" + + " return 3;\n" + + " case 3924 :\n" + + " return 3;\n" + + " case 3925 :\n" + + " return 3;\n" + + " case 3926 :\n" + + " return 3;\n" + + " case 3927 :\n" + + " return 3;\n" + + " case 3928 :\n" + + " return 3;\n" + + " case 3929 :\n" + + " return 3;\n" + + " case 3930 :\n" + + " return 3;\n" + + " case 3931 :\n" + + " return 3;\n" + + " case 3932 :\n" + + " return 3;\n" + + " case 3933 :\n" + + " return 3;\n" + + " case 3934 :\n" + + " return 3;\n" + + " case 3935 :\n" + + " return 3;\n" + + " case 3936 :\n" + + " return 3;\n" + + " case 3937 :\n" + + " return 3;\n" + + " case 3938 :\n" + + " return 3;\n" + + " case 3939 :\n" + + " return 3;\n" + + " case 3940 :\n" + + " return 3;\n" + + " case 3941 :\n" + + " return 3;\n" + + " case 3942 :\n" + + " return 3;\n" + + " case 3943 :\n" + + " return 3;\n" + + " case 3944 :\n" + + " return 3;\n" + + " case 3945 :\n" + + " return 3;\n" + + " case 3946 :\n" + + " return 3;\n" + + " case 3947 :\n" + + " return 3;\n" + + " case 3948 :\n" + + " return 3;\n" + + " case 3949 :\n" + + " return 3;\n" + + " case 3950 :\n" + + " return 3;\n" + + " case 3951 :\n" + + " return 3;\n" + + " case 3952 :\n" + + " return 3;\n" + + " case 3953 :\n" + + " return 3;\n" + + " case 3954 :\n" + + " return 3;\n" + + " case 3955 :\n" + + " return 3;\n" + + " case 3956 :\n" + + " return 3;\n" + + " case 3957 :\n" + + " return 3;\n" + + " case 3958 :\n" + + " return 3;\n" + + " case 3959 :\n" + + " return 3;\n" + + " case 3960 :\n" + + " return 3;\n" + + " case 3961 :\n" + + " return 3;\n" + + " case 3962 :\n" + + " return 3;\n" + + " case 3963 :\n" + + " return 3;\n" + + " case 3964 :\n" + + " return 3;\n" + + " case 3965 :\n" + + " return 3;\n" + + " case 3966 :\n" + + " return 3;\n" + + " case 3967 :\n" + + " return 3;\n" + + " case 3968 :\n" + + " return 3;\n" + + " case 3969 :\n" + + " return 3;\n" + + " case 3970 :\n" + + " return 3;\n" + + " case 3971 :\n" + + " return 3;\n" + + " case 3972 :\n" + + " return 3;\n" + + " case 3973 :\n" + + " return 3;\n" + + " case 3974 :\n" + + " return 3;\n" + + " case 3975 :\n" + + " return 3;\n" + + " case 3976 :\n" + + " return 3;\n" + + " case 3977 :\n" + + " return 3;\n" + + " case 3978 :\n" + + " return 3;\n" + + " case 3979 :\n" + + " return 3;\n" + + " case 3980 :\n" + + " return 3;\n" + + " case 3981 :\n" + + " return 3;\n" + + " case 3982 :\n" + + " return 3;\n" + + " case 3983 :\n" + + " return 3;\n" + + " case 3984 :\n" + + " return 3;\n" + + " case 3985 :\n" + + " return 3;\n" + + " case 3986 :\n" + + " return 3;\n" + + " case 3987 :\n" + + " return 3;\n" + + " case 3988 :\n" + + " return 3;\n" + + " case 3989 :\n" + + " return 3;\n" + + " case 3990 :\n" + + " return 3;\n" + + " case 3991 :\n" + + " return 3;\n" + + " case 3992 :\n" + + " return 3;\n" + + " case 3993 :\n" + + " return 3;\n" + + " case 3994 :\n" + + " return 3;\n" + + " case 3995 :\n" + + " return 3;\n" + + " case 3996 :\n" + + " return 3;\n" + + " case 3997 :\n" + + " return 3;\n" + + " case 3998 :\n" + + " return 3;\n" + + " case 3999 :\n" + + " return 3;\n" + + " default:\n" + + " return -1;\n" + + " }\n" + + " } catch(Exception e) {\n" + + " //ignore\n" + + " } finally {\n" + + " System.out.println(\"Enter finally block\");\n" + + " System.out.println(\"Inside finally block\");\n" + + " System.out.println(\"Leave finally block\");\n" + + " }\n" + + " return -1;\n" + + " }\n" + + " public static void main(String[] args) {\n" + + " System.out.println(foo(1));\n" + + " }\n" + + "}"}, + "Enter finally block\n" + + "Inside finally block\n" + + "Leave finally block\n" + + "3"); +} public static Class testClass() { return XLargeTest.class; }