From 0b3c1987f5be57b4d2804889e34edbc6b3d6fd64 Mon Sep 17 00:00:00 2001 From: Volker Berlin Date: Wed, 20 Mar 2019 19:11:38 +0100 Subject: [PATCH] first support for "goto_w" Java bytecode instruction --- .../jwebassembly/module/BranchManger.java | 33 +- .../module/JavaMethodWasmCodeBuilder.java | 6 +- .../jwebassembly/runtime/Wide.java | 619 +++++++++++++----- 3 files changed, 497 insertions(+), 161 deletions(-) diff --git a/src/de/inetsoftware/jwebassembly/module/BranchManger.java b/src/de/inetsoftware/jwebassembly/module/BranchManger.java index 642b4b8..3653edc 100644 --- a/src/de/inetsoftware/jwebassembly/module/BranchManger.java +++ b/src/de/inetsoftware/jwebassembly/module/BranchManger.java @@ -270,35 +270,52 @@ class BranchManger { parent.add( new BranchNode( startPos, startPos, WasmBlockOperator.BR_IF, null, 0 ) ); return; } - int gotoPos = endPos - 3; // 3 - byte size of goto instruction BranchNode branch = null; for( ; i < parsedOperations.size(); i++ ) { ParsedBlock parsedBlock = parsedOperations.get( i ); - if( parsedBlock.startPosition == gotoPos && parsedBlock.op == JavaBlockOperator.GOTO && parsedBlock.startPosition < parsedBlock.endPosition) { + if( parsedBlock.nextPosition == endPos && parsedBlock.op == JavaBlockOperator.GOTO && parsedBlock.startPosition < parsedBlock.endPosition ) { parsedOperations.remove( i ); - branch = new BranchNode( startPos, startBlock.endPosition, WasmBlockOperator.IF, null ); + int elsePos = startBlock.endPosition; + // end position can not be outside of the parent + endPos = Math.min( parsedBlock.endPosition, parent.endPos ); + + // special case if there is only one goto in the IF block. Occur with goto_w + if( parsedBlock.startPosition == startPos ) { + int nextPos = Math.min( parsedBlock.endPosition, parent.endPos ); + for( int j = i; j < parsedOperations.size(); j++ ) { + ParsedBlock parsedBlock2 = parsedOperations.get( j ); + if( parsedBlock2.nextPosition == nextPos && parsedBlock2.op == JavaBlockOperator.GOTO && parsedBlock2.startPosition < parsedBlock2.endPosition ) { + parsedOperations.remove( j ); + elsePos = nextPos; + endPos = parsedBlock2.endPosition; + startBlock.negateCompare(); + i = j; + } + } + } + + branch = new BranchNode( startPos, elsePos, WasmBlockOperator.IF, null ); parent.add( branch ); if( i > 0 ) { calculate( branch, parsedOperations.subList( 0, i ) ); + i = 0; } AnyType blockType = calculateBlockType( startPos, branch.endPos ); branch.data = blockType; - // end position can not be outside of the parent - endPos = Math.min( parsedBlock.endPosition, parent.endPos ); // if with block type signature must have an else block int breakDeep = blockType == ValueType.empty ? calculateBreakDeep( parent, endPos ) : -1; if( breakDeep >= 0 ) { branch.endOp = WasmBlockOperator.END; - branch.add( new BranchNode( startBlock.endPosition, endPos, WasmBlockOperator.BR, null, breakDeep + 1 ) ); + branch.add( new BranchNode( elsePos, endPos, WasmBlockOperator.BR, null, breakDeep + 1 ) ); endPos = branch.endPos; } else { - branch = new BranchNode( startBlock.endPosition, endPos, WasmBlockOperator.ELSE, WasmBlockOperator.END ); + branch = new BranchNode( elsePos, endPos, WasmBlockOperator.ELSE, WasmBlockOperator.END ); parent.add( branch ); } break; } - if( parsedBlock.startPosition > gotoPos ) { + if( parsedBlock.nextPosition > endPos ) { break; } } diff --git a/src/de/inetsoftware/jwebassembly/module/JavaMethodWasmCodeBuilder.java b/src/de/inetsoftware/jwebassembly/module/JavaMethodWasmCodeBuilder.java index 5351fe4..005639b 100644 --- a/src/de/inetsoftware/jwebassembly/module/JavaMethodWasmCodeBuilder.java +++ b/src/de/inetsoftware/jwebassembly/module/JavaMethodWasmCodeBuilder.java @@ -631,7 +631,11 @@ class JavaMethodWasmCodeBuilder extends WasmCodeBuilder { case 199: // ifnonnull opIfCompareCondition( NumericOperator.ifnonnull, byteCode, codePos ); break; - //TODO case 200: // goto_w + case 200: // goto_w + offset = byteCode.readInt(); + branchManager.addGotoOperator( codePos, offset, byteCode.getCodePosition(), byteCode.getLineNumber() ); + addNopInstruction( codePos ); // marker of the line number for the branch manager + break; //TODO case 201: // jsr_w default: throw new WasmException( "Unimplemented Java byte code operation: " + op, byteCode.getLineNumber() ); diff --git a/test/de/inetsoftware/jwebassembly/runtime/Wide.java b/test/de/inetsoftware/jwebassembly/runtime/Wide.java index 9cb124a..346f532 100644 --- a/test/de/inetsoftware/jwebassembly/runtime/Wide.java +++ b/test/de/inetsoftware/jwebassembly/runtime/Wide.java @@ -1,5 +1,5 @@ /* - * Copyright 2018 Volker Berlin (i-net software) + * Copyright 2019 Volker Berlin (i-net software) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -52,160 +52,475 @@ public class Wide extends AbstractBaseTest { */ @Export static int abc() { - long a0 = 0; - long a1 = 1; - long a2 = 2; - long a3 = 3; - long a4 = 4; - long a5 = 5; - long a6 = 6; - long a7 = 7; - long a8 = 8; - long a9 = 9; - long a10 = 10; - long a11 = 11; - long a12 = 12; - long a13 = 13; - long a14 = 14; - long a15 = 15; - long a16 = 16; - long a17 = 17; - long a18 = 18; - long a19 = 19; - long a20 = 20; - long a21 = 21; - long a22 = 22; - long a23 = 23; - long a24 = 24; - long a25 = 25; - long a26 = 26; - long a27 = 27; - long a28 = 28; - long a29 = 29; - long a30 = 30; - long a31 = 31; - long a32 = 32; - long a33 = 33; - long a34 = 34; - long a35 = 35; - long a36 = 36; - long a37 = 37; - long a38 = 38; - long a39 = 39; - long a40 = 40; - long a41 = 41; - long a42 = 42; - long a43 = 43; - long a44 = 44; - long a45 = 45; - long a46 = 46; - long a47 = 47; - long a48 = 48; - long a49 = 49; + int i = 42; + if( 42 == i ) { +// TODO +// for( int j = 0; j < 10; j++ ) { +// i++; +// } + i++; + } else { + int j = 0; + long a0 = 0; + long a1 = 1; + long a2 = 2; + long a3 = 3; + long a4 = 4; + long a5 = 5; + long a6 = 6; + long a7 = 7; + long a8 = 8; + long a9 = 9; + long a10 = 10; + long a11 = 11; + long a12 = 12; + long a13 = 13; + long a14 = 14; + long a15 = 15; + long a16 = 16; + long a17 = 17; + long a18 = 18; + long a19 = 19; + long a20 = 20; + long a21 = 21; + long a22 = 22; + long a23 = 23; + long a24 = 24; + long a25 = 25; + long a26 = 26; + long a27 = 27; + long a28 = 28; + long a29 = 29; + long a30 = 30; + long a31 = 31; + long a32 = 32; + long a33 = 33; + long a34 = 34; + long a35 = 35; + long a36 = 36; + long a37 = 37; + long a38 = 38; + long a39 = 39; + long a40 = 40; + long a41 = 41; + long a42 = 42; + long a43 = 43; + long a44 = 44; + long a45 = 45; + long a46 = 46; + long a47 = 47; + long a48 = 48; + long a49 = 49; + + long b0 = 0; + long b1 = 1; + long b2 = 2; + long b3 = 3; + long b4 = 4; + long b5 = 5; + long b6 = 6; + long b7 = 7; + long b8 = 8; + long b9 = 9; + long b10 = 10; + long b11 = 11; + long b12 = 12; + long b13 = 13; + long b14 = 14; + long b15 = 15; + long b16 = 16; + long b17 = 17; + long b18 = 18; + long b19 = 19; + long b20 = 20; + long b21 = 21; + long b22 = 22; + long b23 = 23; + long b24 = 24; + long b25 = 25; + long b26 = 26; + long b27 = 27; + long b28 = 28; + long b29 = 29; + long b30 = 30; + long b31 = 31; + long b32 = 32; + long b33 = 33; + long b34 = 34; + long b35 = 35; + long b36 = 36; + long b37 = 37; + long b38 = 38; + long b39 = 39; + long b40 = 40; + long b41 = 41; + long b42 = 42; + long b43 = 43; + long b44 = 44; + long b45 = 45; + long b46 = 46; + long b47 = 47; + long b48 = 48; + long b49 = 49; + + double c0 = 0; + double c1 = 1; + double c2 = 2; + double c3 = 3; + double c4 = 4; + double c5 = 5; + double c6 = 6; + double c7 = 7; + double c8 = 8; + double c9 = 9; + double c10 = 10; + double c11 = 11; + double c12 = 12; + double c13 = 13; + double c14 = 14; + double c15 = 15; + double c16 = 16; + double c17 = 17; + double c18 = 18; + double c19 = 19; + double c20 = 20; + double c21 = 21; + double c22 = 22; + double c23 = 23; + double c24 = 24; + double c25 = 25; + double c26 = 26; + double c27 = 27; + double c28 = 28; + double c29 = 29; + double c30 = 30; + double c31 = 31; + double c32 = 32; + double c33 = 33; + double c34 = 34; + double c35 = 35; + double c36 = 36; + double c37 = 37; + double c38 = 38; + double c39 = 39; + double c40 = 40; + double c41 = 41; + double c42 = 42; + double c43 = 43; + double c44 = 44; + double c45 = 45; + double c46 = 46; + double c47 = 47; + double c48 = 48; + double c49 = 49; - long b0 = 0; - long b1 = 1; - long b2 = 2; - long b3 = 3; - long b4 = 4; - long b5 = 5; - long b6 = 6; - long b7 = 7; - long b8 = 8; - long b9 = 9; - long b10 = 10; - long b11 = 11; - long b12 = 12; - long b13 = 13; - long b14 = 14; - long b15 = 15; - long b16 = 16; - long b17 = 17; - long b18 = 18; - long b19 = 19; - long b20 = 20; - long b21 = 21; - long b22 = 22; - long b23 = 23; - long b24 = 24; - long b25 = 25; - long b26 = 26; - long b27 = 27; - long b28 = 28; - long b29 = 29; - long b30 = 30; - long b31 = 31; - long b32 = 32; - long b33 = 33; - long b34 = 34; - long b35 = 35; - long b36 = 36; - long b37 = 37; - long b38 = 38; - long b39 = 39; - long b40 = 40; - long b41 = 41; - long b42 = 42; - long b43 = 43; - long b44 = 44; - long b45 = 45; - long b46 = 46; - long b47 = 47; - long b48 = 48; - long b49 = 49; + // a large block with more as 32 Kbyte of instructions that a goto_w instuction is needed + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; - double c0 = 0; - double c1 = 1; - double c2 = 2; - double c3 = 3; - double c4 = 4; - double c5 = 5; - double c6 = 6; - double c7 = 7; - double c8 = 8; - double c9 = 9; - double c10 = 10; - double c11 = 11; - double c12 = 12; - double c13 = 13; - double c14 = 14; - double c15 = 15; - double c16 = 16; - double c17 = 17; - double c18 = 18; - double c19 = 19; - double c20 = 20; - double c21 = 21; - double c22 = 22; - double c23 = 23; - double c24 = 24; - double c25 = 25; - double c26 = 26; - double c27 = 27; - double c28 = 28; - double c29 = 29; - double c30 = 30; - double c31 = 31; - double c32 = 32; - double c33 = 33; - double c34 = 34; - double c35 = 35; - double c36 = 36; - double c37 = 37; - double c38 = 38; - double c39 = 39; - double c40 = 40; - double c41 = 41; - double c42 = 42; - double c43 = 43; - double c44 = 44; - double c45 = 45; - double c46 = 46; - double c47 = 47; - double c48 = 48; - double c49 = 49; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; - return 255; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; + + } + + return i; } } }