From 742db6d102d318f831653c42cafdc7b6e983f713 Mon Sep 17 00:00:00 2001 From: Felix Martin Date: Sun, 15 Nov 2020 13:57:48 -0500 Subject: [PATCH] Add solutions for part 1 --- .gitignore | 26 +- README.md | 5 +- gifs/vim_ram64.gif | Bin 0 -> 331990 bytes projects/00/file.txt | 6 + projects/01/And.cmp | 5 + projects/01/And.hdl | 19 + projects/01/And.out | 5 + projects/01/And.tst | 29 + projects/01/And16.cmp | 7 + projects/01/And16.hdl | 32 + projects/01/And16.out | 7 + projects/01/And16.tst | 39 + projects/01/And3.hdl | 9 + projects/01/DMux.cmp | 5 + projects/01/DMux.hdl | 20 + projects/01/DMux.out | 5 + projects/01/DMux.tst | 27 + projects/01/DMux4Way.cmp | 9 + projects/01/DMux4Way.hdl | 31 + projects/01/DMux4Way.out | 9 + projects/01/DMux4Way.tst | 43 + projects/01/DMux8Way.cmp | 17 + projects/01/DMux8Way.hdl | 42 + projects/01/DMux8Way.out | 17 + projects/01/DMux8Way.tst | 75 + projects/01/Manifold16.hdl | 9 + projects/01/ManifoldNot16.hdl | 23 + projects/01/Mux.cmp | 9 + projects/01/Mux.hdl | 22 + projects/01/Mux.out | 9 + projects/01/Mux.tst | 49 + projects/01/Mux16.cmp | 9 + projects/01/Mux16.hdl | 35 + projects/01/Mux16.out | 9 + projects/01/Mux16.tst | 49 + projects/01/Mux4Way16.cmp | 9 + projects/01/Mux4Way16.hdl | 22 + projects/01/Mux4Way16.out | 9 + projects/01/Mux4Way16.tst | 49 + projects/01/Mux8Way16.cmp | 17 + projects/01/Mux8Way16.hdl | 29 + projects/01/Mux8Way16.out | 17 + projects/01/Mux8Way16.tst | 89 + projects/01/Nor.hdl | 9 + projects/01/Not.cmp | 3 + projects/01/Not.hdl | 17 + projects/01/Not.out | 3 + projects/01/Not.tst | 17 + projects/01/Not16.cmp | 6 + projects/01/Not16.hdl | 32 + projects/01/Not16.out | 6 + projects/01/Not16.tst | 29 + projects/01/Or.cmp | 5 + projects/01/Or.hdl | 20 + projects/01/Or.out | 5 + projects/01/Or.tst | 29 + projects/01/Or16.cmp | 7 + projects/01/Or16.hdl | 32 + projects/01/Or16.out | 7 + projects/01/Or16.tst | 39 + projects/01/Or8Way.cmp | 6 + projects/01/Or8Way.hdl | 25 + projects/01/Or8Way.out | 6 + projects/01/Or8Way.tst | 29 + projects/01/Xor.cmp | 5 + projects/01/Xor.hdl | 21 + projects/01/Xor.out | 5 + projects/01/Xor.tst | 29 + projects/02/ALU-nostat.cmp | 37 + projects/02/ALU-nostat.out | 37 + projects/02/ALU-nostat.tst | 353 + projects/02/ALU.cmp | 37 + projects/02/ALU.hdl | 82 + projects/02/ALU.out | 37 + projects/02/ALU.tst | 377 + projects/02/Add16.cmp | 7 + projects/02/Add16.hdl | 32 + projects/02/Add16.out | 7 + projects/02/Add16.tst | 39 + projects/02/FullAdder.cmp | 9 + projects/02/FullAdder.hdl | 19 + projects/02/FullAdder.out | 9 + projects/02/FullAdder.tst | 47 + projects/02/HalfAdder.cmp | 5 + projects/02/HalfAdder.hdl | 18 + projects/02/HalfAdder.out | 5 + projects/02/HalfAdder.tst | 29 + projects/02/Inc16.cmp | 5 + projects/02/Inc16.hdl | 17 + projects/02/Inc16.out | 5 + projects/02/Inc16.tst | 25 + projects/02/IsNeg.hdl | 9 + projects/02/Or16Way.hdl | 25 + projects/03/a/And3.hdl | 9 + projects/03/a/Bit.cmp | 215 + projects/03/a/Bit.hdl | 21 + projects/03/a/Bit.out | 215 + projects/03/a/Bit.tst | 865 + projects/03/a/Id.hdl | 10 + projects/03/a/PC.cmp | 31 + projects/03/a/PC.hdl | 41 + projects/03/a/PC.out | 31 + projects/03/a/PC.tst | 125 + projects/03/a/RAM64.cmp | 320 + projects/03/a/RAM64.hdl | 18 + projects/03/a/RAM64.out | 320 + projects/03/a/RAM64.tst | 1026 + projects/03/a/RAM8.cmp | 173 + projects/03/a/RAM8.hdl | 31 + projects/03/a/RAM8.out | 0 projects/03/a/RAM8.tst | 560 + projects/03/a/Register.cmp | 149 + projects/03/a/Register.hdl | 33 + projects/03/a/Register.out | 25 + projects/03/a/Register.tst | 569 + projects/03/b/RAM16K.cmp | 320 + projects/03/b/RAM16K.hdl | 30 + projects/03/b/RAM16K.out | 320 + projects/03/b/RAM16K.tst | 1026 + projects/03/b/RAM4K.cmp | 320 + projects/03/b/RAM4K.hdl | 30 + projects/03/b/RAM4K.out | 320 + projects/03/b/RAM4K.tst | 1026 + projects/03/b/RAM512.cmp | 320 + projects/03/b/RAM512.hdl | 30 + projects/03/b/RAM512.out | 320 + projects/03/b/RAM512.tst | 1027 + projects/04/fill/Fill.asm | 97 + projects/04/fill/Fill.hack | 39 + projects/04/fill/Fill.tst | 11 + projects/04/fill/FillAutomatic.cmp | 4 + projects/04/fill/FillAutomatic.out | 4 + projects/04/fill/FillAutomatic.tst | 37 + projects/04/mult/Mult.asm | 41 + projects/04/mult/Mult.cmp | 7 + projects/04/mult/Mult.hack | 20 + projects/04/mult/Mult.out | 7 + projects/04/mult/Mult.tst | 74 + projects/05/Add.hack | 6 + projects/05/CPU-external.cmp | 93 + projects/05/CPU-external.out | 93 + projects/05/CPU-external.tst | 150 + projects/05/CPU.cmp | 93 + projects/05/CPU.hdl | 99 + projects/05/CPU.out | 93 + projects/05/CPU.tst | 150 + projects/05/Computer.hdl | 26 + projects/05/ComputerAdd-external.cmp | 15 + projects/05/ComputerAdd-external.out | 15 + projects/05/ComputerAdd-external.tst | 32 + projects/05/ComputerAdd.cmp | 15 + projects/05/ComputerAdd.out | 15 + projects/05/ComputerAdd.tst | 32 + projects/05/ComputerMax-external.cmp | 28 + projects/05/ComputerMax-external.out | 28 + projects/05/ComputerMax-external.tst | 38 + projects/05/ComputerMax.cmp | 28 + projects/05/ComputerMax.tst | 39 + projects/05/ComputerRect-external.cmp | 65 + projects/05/ComputerRect-external.tst | 26 + projects/05/ComputerRect.cmp | 65 + projects/05/ComputerRect.out | 65 + projects/05/ComputerRect.tst | 26 + projects/05/Id.hdl | 10 + projects/05/Id16.hdl | 10 + projects/05/Max.hack | 16 + projects/05/Memory.cmp | 54 + projects/05/Memory.hdl | 42 + projects/05/Memory.out | 54 + projects/05/Memory.tst | 163 + projects/05/Nor.hdl | 9 + projects/05/Rect.hack | 25 + projects/06/add/Add.asm | 13 + projects/06/add/Add.hack | 6 + projects/06/assembler.py | 201 + projects/06/max/Max.asm | 26 + projects/06/max/MaxL.asm | 23 + projects/06/pong/Pong.asm | 28375 ++++++++++++++++ projects/06/pong/Pong.hack | 27483 +++++++++++++++ projects/06/pong/Pong.nosymbol.asm | 27483 +++++++++++++++ projects/06/pong/PongL.asm | 27490 +++++++++++++++ projects/06/pong/PongL.hack | 27483 +++++++++++++++ projects/06/pong/PongL.nosymbol.asm | 27483 +++++++++++++++ projects/06/rect/Rect.asm | 35 + projects/06/rect/RectL.asm | 32 + projects/06/rect/RectL.hack | 25 + .../07/MemoryAccess/BasicTest/BasicTest.asm | 364 + .../07/MemoryAccess/BasicTest/BasicTest.cmp | 2 + .../07/MemoryAccess/BasicTest/BasicTest.tst | 25 + .../07/MemoryAccess/BasicTest/BasicTest.vm | 31 + .../MemoryAccess/BasicTest/BasicTestVME.tst | 25 + .../MemoryAccess/PointerTest/PointerTest.asm | 189 + .../MemoryAccess/PointerTest/PointerTest.cmp | 2 + .../MemoryAccess/PointerTest/PointerTest.tst | 20 + .../MemoryAccess/PointerTest/PointerTest.vm | 22 + .../PointerTest/PointerTestVME.tst | 20 + .../07/MemoryAccess/StaticTest/StaticTest.asm | 122 + .../07/MemoryAccess/StaticTest/StaticTest.cmp | 2 + .../07/MemoryAccess/StaticTest/StaticTest.tst | 17 + .../07/MemoryAccess/StaticTest/StaticTest.vm | 17 + .../MemoryAccess/StaticTest/StaticTestVME.tst | 17 + .../StackArithmetic/SimpleAdd/SimpleAdd.cmp | 2 + .../StackArithmetic/SimpleAdd/SimpleAdd.tst | 17 + .../07/StackArithmetic/SimpleAdd/SimpleAdd.vm | 9 + .../SimpleAdd/SimpleAddVME.tst | 17 + .../StackArithmetic/StackTest/StackTest.cmp | 4 + .../StackArithmetic/StackTest/StackTest.tst | 22 + .../07/StackArithmetic/StackTest/StackTest.vm | 45 + .../StackTest/StackTestVME.tst | 22 + .../FibonacciElement/FibonacciElement.asm | 589 + .../FibonacciElement/FibonacciElement.cmp | 2 + .../FibonacciElement/FibonacciElement.tst | 18 + .../FibonacciElement/FibonacciElementVME.tst | 17 + .../08/FunctionCalls/FibonacciElement/Main.vm | 30 + .../08/FunctionCalls/FibonacciElement/Sys.vm | 15 + .../FunctionCalls/NestedCall/NestedCall.asm | 806 + .../FunctionCalls/NestedCall/NestedCall.cmp | 2 + .../FunctionCalls/NestedCall/NestedCall.html | 196 + .../FunctionCalls/NestedCall/NestedCall.tst | 65 + .../NestedCall/NestedCallStack.html | 306 + .../NestedCall/NestedCallVME.tst | 70 + projects/08/FunctionCalls/NestedCall/Sys.vm | 63 + .../SimpleFunction/SimpleFunction.asm | 190 + .../SimpleFunction/SimpleFunction.cmp | 2 + .../SimpleFunction/SimpleFunction.tst | 29 + .../SimpleFunction/SimpleFunction.vm | 16 + .../SimpleFunction/SimpleFunctionVME.tst | 29 + .../08/FunctionCalls/StaticsTest/Class1.asm | 106 + .../08/FunctionCalls/StaticsTest/Class1.vm | 20 + .../08/FunctionCalls/StaticsTest/Class2.asm | 106 + .../08/FunctionCalls/StaticsTest/Class2.vm | 20 + .../FunctionCalls/StaticsTest/StaticsTest.asm | 897 + .../FunctionCalls/StaticsTest/StaticsTest.cmp | 2 + .../FunctionCalls/StaticsTest/StaticsTest.tst | 17 + .../StaticsTest/StaticsTestVME.tst | 17 + projects/08/FunctionCalls/StaticsTest/Sys.asm | 95 + projects/08/FunctionCalls/StaticsTest/Sys.vm | 20 + .../08/ProgramFlow/BasicLoop/BasicLoop.asm | 194 + .../08/ProgramFlow/BasicLoop/BasicLoop.cmp | 2 + .../08/ProgramFlow/BasicLoop/BasicLoop.tst | 20 + .../08/ProgramFlow/BasicLoop/BasicLoop.vm | 22 + .../08/ProgramFlow/BasicLoop/BasicLoopVME.tst | 20 + .../FibonacciSeries/FibonacciSeries.asm | 350 + .../FibonacciSeries/FibonacciSeries.cmp | 2 + .../FibonacciSeries/FibonacciSeries.tst | 22 + .../FibonacciSeries/FibonacciSeries.vm | 49 + .../FibonacciSeries/FibonacciSeriesVME.tst | 22 + projects/09/Average/Main.jack | 27 + projects/09/BitmapEditor/BitmapEditor.html | 200 + projects/09/BitmapEditor/BitmapEditor.iml | 10 + .../09/CellAutomaton1D/CellularAutomaton.jack | 205 + .../CellularAutomatonController.jack | 370 + projects/09/CellAutomaton1D/Main.jack | 32 + projects/09/CellAutomaton1D/readme.md | 20 + projects/09/Fraction/Fraction.jack | 65 + projects/09/Fraction/Main.jack | 16 + projects/09/HelloWorld/Main.jack | 14 + projects/09/Jack OS API.pdf | Bin 0 -> 108857 bytes projects/09/List/List.jack | 46 + projects/09/List/Main.jack | 17 + projects/09/Square/Main.jack | 15 + projects/09/Square/Square.jack | 108 + projects/09/Square/SquareGame.jack | 79 + projects/10/ArrayTest/Main.jack | 38 + projects/10/ArrayTest/Main.xml | 286 + projects/10/ArrayTest/MainT.xml | 142 + projects/10/ExpressionLessSquare/Main.jack | 36 + projects/10/ExpressionLessSquare/Main.xml | 205 + projects/10/ExpressionLessSquare/MainT.xml | 109 + projects/10/ExpressionLessSquare/Square.jack | 99 + projects/10/ExpressionLessSquare/Square.xml | 967 + .../10/ExpressionLessSquare/SquareGame.jack | 60 + .../10/ExpressionLessSquare/SquareGame.xml | 544 + .../10/ExpressionLessSquare/SquareGameT.xml | 268 + projects/10/ExpressionLessSquare/SquareT.xml | 449 + projects/10/Square/Main.jack | 36 + projects/10/Square/Main.xml | 244 + projects/10/Square/MainT.xml | 126 + projects/10/Square/Square.jack | 110 + projects/10/Square/Square.xml | 1211 + projects/10/Square/SquareGame.jack | 81 + projects/10/Square/SquareGame.xml | 643 + projects/10/Square/SquareGameT.xml | 315 + projects/10/Square/SquareT.xml | 561 + projects/11/Average/Main.jack | 29 + projects/11/ComplexArrays/Main.jack | 70 + projects/11/ConvertToBin/Main.jack | 82 + projects/11/Pong/Ball.jack | 203 + projects/11/Pong/Bat.jack | 103 + projects/11/Pong/Main.jack | 20 + projects/11/Pong/PongGame.jack | 137 + projects/11/Seven/Main.jack | 17 + projects/11/Square/Main.jack | 17 + projects/11/Square/Square.jack | 110 + projects/11/Square/SquareGame.jack | 81 + projects/12/Array.jack | 23 + projects/12/ArrayTest/Array.jack | 29 + projects/12/ArrayTest/ArrayTest.cmp | 2 + projects/12/ArrayTest/ArrayTest.tst | 15 + projects/12/ArrayTest/Main.jack | 40 + projects/12/Keyboard.jack | 62 + projects/12/KeyboardTest/Keyboard.jack | 196 + .../12/KeyboardTest/KeyboardTestOutput.gif | Bin 0 -> 12048 bytes projects/12/KeyboardTest/Main.jack | 93 + projects/12/Math.jack | 47 + projects/12/MathTest/Main.jack | 35 + projects/12/MathTest/Math.jack | 133 + projects/12/MathTest/MathTest.cmp | 2 + projects/12/MathTest/MathTest.tst | 15 + projects/12/Memory.jack | 34 + projects/12/MemoryTest/Main.jack | 42 + projects/12/MemoryTest/Memory.jack | 120 + projects/12/MemoryTest/MemoryTest.cmp | 2 + projects/12/MemoryTest/MemoryTest.tst | 15 + projects/12/Output.jack | 203 + projects/12/OutputTest/Main.jack | 42 + projects/12/OutputTest/Output.jack | 317 + projects/12/OutputTest/OutputTestOutput.gif | Bin 0 -> 6184 bytes projects/12/Screen.jack | 43 + projects/12/ScreenTest/Main.jack | 36 + projects/12/ScreenTest/Screen.jack | 178 + projects/12/ScreenTest/ScreenTestOutput.gif | Bin 0 -> 4563 bytes projects/12/String.jack | 64 + projects/12/StringTest/Main.jack | 83 + projects/12/StringTest/String.jack | 203 + projects/12/StringTest/StringTestOutput.gif | Bin 0 -> 8126 bytes projects/12/Sys.jack | 27 + projects/12/SysTest/Main.jack | 31 + projects/12/SysTest/Sys.jack | 52 + projects/13/more fun to go.txt | 9 + projects/demo/Xor.cmp | 5 + projects/demo/Xor.hdl | 25 + projects/demo/Xor.out | 0 projects/demo/Xor.tst | 29 + tools/.DS_Store | Bin 0 -> 8196 bytes tools/Assembler.bat | 27 + tools/Assembler.sh | 32 + tools/CPUEmulator.bat | 29 + tools/CPUEmulator.sh | 33 + tools/HardwareSimulator.bat | 30 + tools/HardwareSimulator.sh | 34 + tools/JackCompiler.bat | 26 + tools/JackCompiler.sh | 35 + tools/OS/Array.vm | 23 + tools/OS/Keyboard.vm | 102 + tools/OS/Math.vm | 408 + tools/OS/Memory.vm | 279 + tools/OS/Output.vm | 1852 + tools/OS/Screen.vm | 806 + tools/OS/String.vm | 393 + tools/OS/Sys.vm | 84 + tools/TextComparer.bat | 29 + tools/TextComparer.sh | 36 + tools/VMEmulator.bat | 29 + tools/VMEmulator.sh | 33 + tools/bin/Assembler.dat | 1 + tools/bin/Virtual Machine Emulator.dat | 1 + tools/bin/classes/CPUEmulatorMain.class | Bin 0 -> 1084 bytes tools/bin/classes/HackAssemblerMain.class | Bin 0 -> 1098 bytes tools/bin/classes/HardwareSimulatorMain.class | Bin 0 -> 1182 bytes tools/bin/classes/TextComparer.class | Bin 0 -> 1739 bytes tools/bin/classes/VMEmulatorMain.class | Bin 0 -> 1073 bytes tools/bin/help/asmAbout.html | 96 + tools/bin/help/asmUsage.html | 115 + tools/bin/help/compiler.txt | 9 + tools/bin/help/cpuAbout.html | 96 + tools/bin/help/cpuUsage.html | 115 + tools/bin/help/hwAbout.html | 96 + tools/bin/help/hwUsage.html | 115 + tools/bin/help/vmAbout.html | 110 + tools/bin/help/vmUsage.html | 115 + tools/bin/images/arrow2.gif | Bin 0 -> 1073 bytes tools/bin/images/calculator2.gif | Bin 0 -> 302 bytes tools/bin/images/cancel.gif | Bin 0 -> 1133 bytes tools/bin/images/chip.gif | Bin 0 -> 1078 bytes tools/bin/images/clock2.gif | Bin 0 -> 1138 bytes tools/bin/images/equal.gif | Bin 0 -> 1042 bytes tools/bin/images/find.gif | Bin 0 -> 1014 bytes tools/bin/images/hex.gif | Bin 0 -> 1422 bytes tools/bin/images/keyboard.gif | Bin 0 -> 1017 bytes tools/bin/images/ok.gif | Bin 0 -> 988 bytes tools/bin/images/ok2.gif | Bin 0 -> 920 bytes tools/bin/images/open.gif | Bin 0 -> 930 bytes tools/bin/images/open2.gif | Bin 0 -> 969 bytes tools/bin/images/opendoc.gif | Bin 0 -> 1094 bytes tools/bin/images/redflag.gif | Bin 0 -> 1100 bytes tools/bin/images/save.gif | Bin 0 -> 1257 bytes tools/bin/images/scroll.gif | Bin 0 -> 949 bytes tools/bin/images/smallcancel.gif | Bin 0 -> 946 bytes tools/bin/images/smallequal.gif | Bin 0 -> 898 bytes tools/bin/images/smallminus.gif | Bin 0 -> 863 bytes tools/bin/images/smallnew.gif | Bin 0 -> 1000 bytes tools/bin/images/smallok.gif | Bin 0 -> 925 bytes tools/bin/images/smallplus.gif | Bin 0 -> 873 bytes tools/bin/images/vcrfastforward.gif | Bin 0 -> 1122 bytes tools/bin/images/vcrforward.gif | Bin 0 -> 1021 bytes tools/bin/images/vcrrewind.gif | Bin 0 -> 1122 bytes tools/bin/images/vcrstop.gif | Bin 0 -> 972 bytes tools/bin/scripts/defaultCPU.txt | 3 + tools/bin/scripts/defaultHW.txt | 4 + tools/bin/scripts/defaultVM.txt | 3 + tools/builtInChips/ALU.class | Bin 0 -> 1754 bytes tools/builtInChips/ALU.hdl | 55 + tools/builtInChips/ARegister.class | Bin 0 -> 337 bytes tools/builtInChips/ARegister.hdl | 24 + tools/builtInChips/Add16.class | Bin 0 -> 343 bytes tools/builtInChips/Add16.hdl | 18 + tools/builtInChips/And.class | Bin 0 -> 341 bytes tools/builtInChips/And.hdl | 16 + tools/builtInChips/And16.hdl | 17 + tools/builtInChips/Bit.class | Bin 0 -> 416 bytes tools/builtInChips/Bit.hdl | 19 + tools/builtInChips/DFF.class | Bin 0 -> 401 bytes tools/builtInChips/DFF.hdl | 18 + tools/builtInChips/DMux.class | Bin 0 -> 365 bytes tools/builtInChips/DMux.hdl | 20 + tools/builtInChips/DMux4Way.class | Bin 0 -> 408 bytes tools/builtInChips/DMux4Way.hdl | 22 + tools/builtInChips/DMux8Way.class | Bin 0 -> 488 bytes tools/builtInChips/DMux8Way.hdl | 22 + tools/builtInChips/DRegister.class | Bin 0 -> 339 bytes tools/builtInChips/DRegister.hdl | 24 + tools/builtInChips/FullAdder.class | Bin 0 -> 380 bytes tools/builtInChips/FullAdder.hdl | 19 + tools/builtInChips/HalfAdder.class | Bin 0 -> 360 bytes tools/builtInChips/HalfAdder.hdl | 18 + tools/builtInChips/Inc16.class | Bin 0 -> 333 bytes tools/builtInChips/Inc16.hdl | 18 + tools/builtInChips/Keyboard.class | Bin 0 -> 1709 bytes tools/builtInChips/Keyboard.hdl | 23 + tools/builtInChips/Mux.class | Bin 0 -> 356 bytes tools/builtInChips/Mux.hdl | 16 + tools/builtInChips/Mux16.hdl | 16 + tools/builtInChips/Mux4Way16.class | Bin 0 -> 435 bytes tools/builtInChips/Mux4Way16.hdl | 21 + tools/builtInChips/Mux8Way16.class | Bin 0 -> 527 bytes tools/builtInChips/Mux8Way16.hdl | 24 + tools/builtInChips/Nand.class | Bin 0 -> 344 bytes tools/builtInChips/Nand.hdl | 16 + tools/builtInChips/Not.class | Bin 0 -> 331 bytes tools/builtInChips/Not.hdl | 16 + tools/builtInChips/Not16.class | Bin 0 -> 327 bytes tools/builtInChips/Not16.hdl | 16 + tools/builtInChips/Or.class | Bin 0 -> 340 bytes tools/builtInChips/Or.hdl | 16 + tools/builtInChips/Or16.hdl | 16 + tools/builtInChips/Or8Way.class | Bin 0 -> 340 bytes tools/builtInChips/Or8Way.hdl | 16 + tools/builtInChips/PC.class | Bin 0 -> 1899 bytes tools/builtInChips/PC.hdl | 22 + tools/builtInChips/RAM.class | Bin 0 -> 1928 bytes tools/builtInChips/RAM16K.class | Bin 0 -> 390 bytes tools/builtInChips/RAM16K.hdl | 24 + tools/builtInChips/RAM4K.class | Bin 0 -> 309 bytes tools/builtInChips/RAM4K.hdl | 24 + tools/builtInChips/RAM512.class | Bin 0 -> 311 bytes tools/builtInChips/RAM512.hdl | 24 + tools/builtInChips/RAM64.class | Bin 0 -> 308 bytes tools/builtInChips/RAM64.hdl | 24 + tools/builtInChips/RAM8.class | Bin 0 -> 306 bytes tools/builtInChips/RAM8.hdl | 24 + tools/builtInChips/ROM32K.class | Bin 0 -> 3469 bytes tools/builtInChips/ROM32K.hdl | 30 + tools/builtInChips/Register.class | Bin 0 -> 423 bytes tools/builtInChips/Register.hdl | 19 + tools/builtInChips/RegisterWithGUI.class | Bin 0 -> 1769 bytes tools/builtInChips/Screen.class | Bin 0 -> 1322 bytes tools/builtInChips/Screen.hdl | 35 + tools/builtInChips/Xor.class | Bin 0 -> 341 bytes tools/builtInChips/Xor.hdl | 16 + tools/builtInVMCode/Array.class | Bin 0 -> 436 bytes tools/builtInVMCode/JackOSClass.class | Bin 0 -> 1782 bytes tools/builtInVMCode/Keyboard.class | Bin 0 -> 1362 bytes tools/builtInVMCode/Math.class | Bin 0 -> 650 bytes tools/builtInVMCode/Memory.class | Bin 0 -> 788 bytes tools/builtInVMCode/Output.class | Bin 0 -> 4264 bytes tools/builtInVMCode/Screen.class | Bin 0 -> 1921 bytes tools/builtInVMCode/String.class | Bin 0 -> 1630 bytes tools/builtInVMCode/Sys.class | Bin 0 -> 1885 bytes 479 files changed, 202980 insertions(+), 13 deletions(-) create mode 100644 gifs/vim_ram64.gif create mode 100644 projects/00/file.txt create mode 100644 projects/01/And.cmp create mode 100644 projects/01/And.hdl create mode 100644 projects/01/And.out create mode 100644 projects/01/And.tst create mode 100644 projects/01/And16.cmp create mode 100644 projects/01/And16.hdl create mode 100644 projects/01/And16.out create mode 100644 projects/01/And16.tst create mode 100644 projects/01/And3.hdl create mode 100644 projects/01/DMux.cmp create mode 100644 projects/01/DMux.hdl create mode 100644 projects/01/DMux.out create mode 100644 projects/01/DMux.tst create mode 100644 projects/01/DMux4Way.cmp create mode 100644 projects/01/DMux4Way.hdl create mode 100644 projects/01/DMux4Way.out create mode 100644 projects/01/DMux4Way.tst create mode 100644 projects/01/DMux8Way.cmp create mode 100644 projects/01/DMux8Way.hdl create mode 100644 projects/01/DMux8Way.out create mode 100644 projects/01/DMux8Way.tst create mode 100644 projects/01/Manifold16.hdl create mode 100644 projects/01/ManifoldNot16.hdl create mode 100644 projects/01/Mux.cmp create mode 100644 projects/01/Mux.hdl create mode 100644 projects/01/Mux.out create mode 100644 projects/01/Mux.tst create mode 100644 projects/01/Mux16.cmp create mode 100644 projects/01/Mux16.hdl create mode 100644 projects/01/Mux16.out create mode 100644 projects/01/Mux16.tst create mode 100644 projects/01/Mux4Way16.cmp create mode 100644 projects/01/Mux4Way16.hdl create mode 100644 projects/01/Mux4Way16.out create mode 100644 projects/01/Mux4Way16.tst create mode 100644 projects/01/Mux8Way16.cmp create mode 100644 projects/01/Mux8Way16.hdl create mode 100644 projects/01/Mux8Way16.out create mode 100644 projects/01/Mux8Way16.tst create mode 100644 projects/01/Nor.hdl create mode 100644 projects/01/Not.cmp create mode 100644 projects/01/Not.hdl create mode 100644 projects/01/Not.out create mode 100644 projects/01/Not.tst create mode 100644 projects/01/Not16.cmp create mode 100644 projects/01/Not16.hdl create mode 100644 projects/01/Not16.out create mode 100644 projects/01/Not16.tst create mode 100644 projects/01/Or.cmp create mode 100644 projects/01/Or.hdl create mode 100644 projects/01/Or.out create mode 100644 projects/01/Or.tst create mode 100644 projects/01/Or16.cmp create mode 100644 projects/01/Or16.hdl create mode 100644 projects/01/Or16.out create mode 100644 projects/01/Or16.tst create mode 100644 projects/01/Or8Way.cmp create mode 100644 projects/01/Or8Way.hdl create mode 100644 projects/01/Or8Way.out create mode 100644 projects/01/Or8Way.tst create mode 100644 projects/01/Xor.cmp create mode 100644 projects/01/Xor.hdl create mode 100644 projects/01/Xor.out create mode 100644 projects/01/Xor.tst create mode 100644 projects/02/ALU-nostat.cmp create mode 100644 projects/02/ALU-nostat.out create mode 100644 projects/02/ALU-nostat.tst create mode 100644 projects/02/ALU.cmp create mode 100644 projects/02/ALU.hdl create mode 100644 projects/02/ALU.out create mode 100644 projects/02/ALU.tst create mode 100644 projects/02/Add16.cmp create mode 100644 projects/02/Add16.hdl create mode 100644 projects/02/Add16.out create mode 100644 projects/02/Add16.tst create mode 100644 projects/02/FullAdder.cmp create mode 100644 projects/02/FullAdder.hdl create mode 100644 projects/02/FullAdder.out create mode 100644 projects/02/FullAdder.tst create mode 100644 projects/02/HalfAdder.cmp create mode 100644 projects/02/HalfAdder.hdl create mode 100644 projects/02/HalfAdder.out create mode 100644 projects/02/HalfAdder.tst create mode 100644 projects/02/Inc16.cmp create mode 100644 projects/02/Inc16.hdl create mode 100644 projects/02/Inc16.out create mode 100644 projects/02/Inc16.tst create mode 100644 projects/02/IsNeg.hdl create mode 100644 projects/02/Or16Way.hdl create mode 100644 projects/03/a/And3.hdl create mode 100644 projects/03/a/Bit.cmp create mode 100644 projects/03/a/Bit.hdl create mode 100644 projects/03/a/Bit.out create mode 100644 projects/03/a/Bit.tst create mode 100644 projects/03/a/Id.hdl create mode 100644 projects/03/a/PC.cmp create mode 100644 projects/03/a/PC.hdl create mode 100644 projects/03/a/PC.out create mode 100644 projects/03/a/PC.tst create mode 100644 projects/03/a/RAM64.cmp create mode 100644 projects/03/a/RAM64.hdl create mode 100644 projects/03/a/RAM64.out create mode 100644 projects/03/a/RAM64.tst create mode 100644 projects/03/a/RAM8.cmp create mode 100644 projects/03/a/RAM8.hdl create mode 100644 projects/03/a/RAM8.out create mode 100644 projects/03/a/RAM8.tst create mode 100644 projects/03/a/Register.cmp create mode 100644 projects/03/a/Register.hdl create mode 100644 projects/03/a/Register.out create mode 100644 projects/03/a/Register.tst create mode 100644 projects/03/b/RAM16K.cmp create mode 100644 projects/03/b/RAM16K.hdl create mode 100644 projects/03/b/RAM16K.out create mode 100644 projects/03/b/RAM16K.tst create mode 100644 projects/03/b/RAM4K.cmp create mode 100644 projects/03/b/RAM4K.hdl create mode 100644 projects/03/b/RAM4K.out create mode 100644 projects/03/b/RAM4K.tst create mode 100644 projects/03/b/RAM512.cmp create mode 100644 projects/03/b/RAM512.hdl create mode 100644 projects/03/b/RAM512.out create mode 100644 projects/03/b/RAM512.tst create mode 100644 projects/04/fill/Fill.asm create mode 100644 projects/04/fill/Fill.hack create mode 100644 projects/04/fill/Fill.tst create mode 100644 projects/04/fill/FillAutomatic.cmp create mode 100644 projects/04/fill/FillAutomatic.out create mode 100644 projects/04/fill/FillAutomatic.tst create mode 100644 projects/04/mult/Mult.asm create mode 100644 projects/04/mult/Mult.cmp create mode 100644 projects/04/mult/Mult.hack create mode 100644 projects/04/mult/Mult.out create mode 100644 projects/04/mult/Mult.tst create mode 100644 projects/05/Add.hack create mode 100644 projects/05/CPU-external.cmp create mode 100644 projects/05/CPU-external.out create mode 100644 projects/05/CPU-external.tst create mode 100644 projects/05/CPU.cmp create mode 100644 projects/05/CPU.hdl create mode 100644 projects/05/CPU.out create mode 100644 projects/05/CPU.tst create mode 100644 projects/05/Computer.hdl create mode 100644 projects/05/ComputerAdd-external.cmp create mode 100644 projects/05/ComputerAdd-external.out create mode 100644 projects/05/ComputerAdd-external.tst create mode 100644 projects/05/ComputerAdd.cmp create mode 100644 projects/05/ComputerAdd.out create mode 100644 projects/05/ComputerAdd.tst create mode 100644 projects/05/ComputerMax-external.cmp create mode 100644 projects/05/ComputerMax-external.out create mode 100644 projects/05/ComputerMax-external.tst create mode 100644 projects/05/ComputerMax.cmp create mode 100644 projects/05/ComputerMax.tst create mode 100644 projects/05/ComputerRect-external.cmp create mode 100644 projects/05/ComputerRect-external.tst create mode 100644 projects/05/ComputerRect.cmp create mode 100644 projects/05/ComputerRect.out create mode 100644 projects/05/ComputerRect.tst create mode 100644 projects/05/Id.hdl create mode 100644 projects/05/Id16.hdl create mode 100644 projects/05/Max.hack create mode 100644 projects/05/Memory.cmp create mode 100644 projects/05/Memory.hdl create mode 100644 projects/05/Memory.out create mode 100644 projects/05/Memory.tst create mode 100644 projects/05/Nor.hdl create mode 100644 projects/05/Rect.hack create mode 100644 projects/06/add/Add.asm create mode 100644 projects/06/add/Add.hack create mode 100755 projects/06/assembler.py create mode 100644 projects/06/max/Max.asm create mode 100644 projects/06/max/MaxL.asm create mode 100644 projects/06/pong/Pong.asm create mode 100644 projects/06/pong/Pong.hack create mode 100644 projects/06/pong/Pong.nosymbol.asm create mode 100644 projects/06/pong/PongL.asm create mode 100644 projects/06/pong/PongL.hack create mode 100644 projects/06/pong/PongL.nosymbol.asm create mode 100644 projects/06/rect/Rect.asm create mode 100644 projects/06/rect/RectL.asm create mode 100644 projects/06/rect/RectL.hack create mode 100644 projects/07/MemoryAccess/BasicTest/BasicTest.asm create mode 100644 projects/07/MemoryAccess/BasicTest/BasicTest.cmp create mode 100644 projects/07/MemoryAccess/BasicTest/BasicTest.tst create mode 100644 projects/07/MemoryAccess/BasicTest/BasicTest.vm create mode 100644 projects/07/MemoryAccess/BasicTest/BasicTestVME.tst create mode 100644 projects/07/MemoryAccess/PointerTest/PointerTest.asm create mode 100644 projects/07/MemoryAccess/PointerTest/PointerTest.cmp create mode 100644 projects/07/MemoryAccess/PointerTest/PointerTest.tst create mode 100644 projects/07/MemoryAccess/PointerTest/PointerTest.vm create mode 100644 projects/07/MemoryAccess/PointerTest/PointerTestVME.tst create mode 100644 projects/07/MemoryAccess/StaticTest/StaticTest.asm create mode 100644 projects/07/MemoryAccess/StaticTest/StaticTest.cmp create mode 100644 projects/07/MemoryAccess/StaticTest/StaticTest.tst create mode 100644 projects/07/MemoryAccess/StaticTest/StaticTest.vm create mode 100644 projects/07/MemoryAccess/StaticTest/StaticTestVME.tst create mode 100644 projects/07/StackArithmetic/SimpleAdd/SimpleAdd.cmp create mode 100644 projects/07/StackArithmetic/SimpleAdd/SimpleAdd.tst create mode 100644 projects/07/StackArithmetic/SimpleAdd/SimpleAdd.vm create mode 100644 projects/07/StackArithmetic/SimpleAdd/SimpleAddVME.tst create mode 100644 projects/07/StackArithmetic/StackTest/StackTest.cmp create mode 100644 projects/07/StackArithmetic/StackTest/StackTest.tst create mode 100644 projects/07/StackArithmetic/StackTest/StackTest.vm create mode 100644 projects/07/StackArithmetic/StackTest/StackTestVME.tst create mode 100644 projects/08/FunctionCalls/FibonacciElement/FibonacciElement.asm create mode 100644 projects/08/FunctionCalls/FibonacciElement/FibonacciElement.cmp create mode 100644 projects/08/FunctionCalls/FibonacciElement/FibonacciElement.tst create mode 100644 projects/08/FunctionCalls/FibonacciElement/FibonacciElementVME.tst create mode 100644 projects/08/FunctionCalls/FibonacciElement/Main.vm create mode 100644 projects/08/FunctionCalls/FibonacciElement/Sys.vm create mode 100644 projects/08/FunctionCalls/NestedCall/NestedCall.asm create mode 100644 projects/08/FunctionCalls/NestedCall/NestedCall.cmp create mode 100644 projects/08/FunctionCalls/NestedCall/NestedCall.html create mode 100644 projects/08/FunctionCalls/NestedCall/NestedCall.tst create mode 100644 projects/08/FunctionCalls/NestedCall/NestedCallStack.html create mode 100644 projects/08/FunctionCalls/NestedCall/NestedCallVME.tst create mode 100644 projects/08/FunctionCalls/NestedCall/Sys.vm create mode 100644 projects/08/FunctionCalls/SimpleFunction/SimpleFunction.asm create mode 100644 projects/08/FunctionCalls/SimpleFunction/SimpleFunction.cmp create mode 100644 projects/08/FunctionCalls/SimpleFunction/SimpleFunction.tst create mode 100644 projects/08/FunctionCalls/SimpleFunction/SimpleFunction.vm create mode 100644 projects/08/FunctionCalls/SimpleFunction/SimpleFunctionVME.tst create mode 100644 projects/08/FunctionCalls/StaticsTest/Class1.asm create mode 100644 projects/08/FunctionCalls/StaticsTest/Class1.vm create mode 100644 projects/08/FunctionCalls/StaticsTest/Class2.asm create mode 100644 projects/08/FunctionCalls/StaticsTest/Class2.vm create mode 100644 projects/08/FunctionCalls/StaticsTest/StaticsTest.asm create mode 100644 projects/08/FunctionCalls/StaticsTest/StaticsTest.cmp create mode 100644 projects/08/FunctionCalls/StaticsTest/StaticsTest.tst create mode 100644 projects/08/FunctionCalls/StaticsTest/StaticsTestVME.tst create mode 100644 projects/08/FunctionCalls/StaticsTest/Sys.asm create mode 100644 projects/08/FunctionCalls/StaticsTest/Sys.vm create mode 100644 projects/08/ProgramFlow/BasicLoop/BasicLoop.asm create mode 100644 projects/08/ProgramFlow/BasicLoop/BasicLoop.cmp create mode 100644 projects/08/ProgramFlow/BasicLoop/BasicLoop.tst create mode 100644 projects/08/ProgramFlow/BasicLoop/BasicLoop.vm create mode 100644 projects/08/ProgramFlow/BasicLoop/BasicLoopVME.tst create mode 100644 projects/08/ProgramFlow/FibonacciSeries/FibonacciSeries.asm create mode 100644 projects/08/ProgramFlow/FibonacciSeries/FibonacciSeries.cmp create mode 100644 projects/08/ProgramFlow/FibonacciSeries/FibonacciSeries.tst create mode 100644 projects/08/ProgramFlow/FibonacciSeries/FibonacciSeries.vm create mode 100644 projects/08/ProgramFlow/FibonacciSeries/FibonacciSeriesVME.tst create mode 100644 projects/09/Average/Main.jack create mode 100644 projects/09/BitmapEditor/BitmapEditor.html create mode 100644 projects/09/BitmapEditor/BitmapEditor.iml create mode 100644 projects/09/CellAutomaton1D/CellularAutomaton.jack create mode 100644 projects/09/CellAutomaton1D/CellularAutomatonController.jack create mode 100644 projects/09/CellAutomaton1D/Main.jack create mode 100644 projects/09/CellAutomaton1D/readme.md create mode 100644 projects/09/Fraction/Fraction.jack create mode 100644 projects/09/Fraction/Main.jack create mode 100644 projects/09/HelloWorld/Main.jack create mode 100644 projects/09/Jack OS API.pdf create mode 100644 projects/09/List/List.jack create mode 100644 projects/09/List/Main.jack create mode 100644 projects/09/Square/Main.jack create mode 100644 projects/09/Square/Square.jack create mode 100644 projects/09/Square/SquareGame.jack create mode 100644 projects/10/ArrayTest/Main.jack create mode 100644 projects/10/ArrayTest/Main.xml create mode 100644 projects/10/ArrayTest/MainT.xml create mode 100644 projects/10/ExpressionLessSquare/Main.jack create mode 100644 projects/10/ExpressionLessSquare/Main.xml create mode 100644 projects/10/ExpressionLessSquare/MainT.xml create mode 100644 projects/10/ExpressionLessSquare/Square.jack create mode 100644 projects/10/ExpressionLessSquare/Square.xml create mode 100644 projects/10/ExpressionLessSquare/SquareGame.jack create mode 100644 projects/10/ExpressionLessSquare/SquareGame.xml create mode 100644 projects/10/ExpressionLessSquare/SquareGameT.xml create mode 100644 projects/10/ExpressionLessSquare/SquareT.xml create mode 100644 projects/10/Square/Main.jack create mode 100644 projects/10/Square/Main.xml create mode 100644 projects/10/Square/MainT.xml create mode 100644 projects/10/Square/Square.jack create mode 100644 projects/10/Square/Square.xml create mode 100644 projects/10/Square/SquareGame.jack create mode 100644 projects/10/Square/SquareGame.xml create mode 100644 projects/10/Square/SquareGameT.xml create mode 100644 projects/10/Square/SquareT.xml create mode 100644 projects/11/Average/Main.jack create mode 100644 projects/11/ComplexArrays/Main.jack create mode 100644 projects/11/ConvertToBin/Main.jack create mode 100644 projects/11/Pong/Ball.jack create mode 100644 projects/11/Pong/Bat.jack create mode 100644 projects/11/Pong/Main.jack create mode 100644 projects/11/Pong/PongGame.jack create mode 100644 projects/11/Seven/Main.jack create mode 100644 projects/11/Square/Main.jack create mode 100644 projects/11/Square/Square.jack create mode 100644 projects/11/Square/SquareGame.jack create mode 100644 projects/12/Array.jack create mode 100644 projects/12/ArrayTest/Array.jack create mode 100644 projects/12/ArrayTest/ArrayTest.cmp create mode 100644 projects/12/ArrayTest/ArrayTest.tst create mode 100644 projects/12/ArrayTest/Main.jack create mode 100644 projects/12/Keyboard.jack create mode 100644 projects/12/KeyboardTest/Keyboard.jack create mode 100644 projects/12/KeyboardTest/KeyboardTestOutput.gif create mode 100644 projects/12/KeyboardTest/Main.jack create mode 100644 projects/12/Math.jack create mode 100644 projects/12/MathTest/Main.jack create mode 100644 projects/12/MathTest/Math.jack create mode 100644 projects/12/MathTest/MathTest.cmp create mode 100644 projects/12/MathTest/MathTest.tst create mode 100644 projects/12/Memory.jack create mode 100644 projects/12/MemoryTest/Main.jack create mode 100644 projects/12/MemoryTest/Memory.jack create mode 100644 projects/12/MemoryTest/MemoryTest.cmp create mode 100644 projects/12/MemoryTest/MemoryTest.tst create mode 100644 projects/12/Output.jack create mode 100644 projects/12/OutputTest/Main.jack create mode 100644 projects/12/OutputTest/Output.jack create mode 100644 projects/12/OutputTest/OutputTestOutput.gif create mode 100644 projects/12/Screen.jack create mode 100644 projects/12/ScreenTest/Main.jack create mode 100644 projects/12/ScreenTest/Screen.jack create mode 100644 projects/12/ScreenTest/ScreenTestOutput.gif create mode 100644 projects/12/String.jack create mode 100644 projects/12/StringTest/Main.jack create mode 100644 projects/12/StringTest/String.jack create mode 100644 projects/12/StringTest/StringTestOutput.gif create mode 100644 projects/12/Sys.jack create mode 100644 projects/12/SysTest/Main.jack create mode 100644 projects/12/SysTest/Sys.jack create mode 100644 projects/13/more fun to go.txt create mode 100644 projects/demo/Xor.cmp create mode 100644 projects/demo/Xor.hdl create mode 100644 projects/demo/Xor.out create mode 100644 projects/demo/Xor.tst create mode 100644 tools/.DS_Store create mode 100644 tools/Assembler.bat create mode 100755 tools/Assembler.sh create mode 100644 tools/CPUEmulator.bat create mode 100755 tools/CPUEmulator.sh create mode 100644 tools/HardwareSimulator.bat create mode 100755 tools/HardwareSimulator.sh create mode 100644 tools/JackCompiler.bat create mode 100755 tools/JackCompiler.sh create mode 100644 tools/OS/Array.vm create mode 100644 tools/OS/Keyboard.vm create mode 100644 tools/OS/Math.vm create mode 100644 tools/OS/Memory.vm create mode 100644 tools/OS/Output.vm create mode 100644 tools/OS/Screen.vm create mode 100644 tools/OS/String.vm create mode 100644 tools/OS/Sys.vm create mode 100644 tools/TextComparer.bat create mode 100755 tools/TextComparer.sh create mode 100644 tools/VMEmulator.bat create mode 100755 tools/VMEmulator.sh create mode 100644 tools/bin/Assembler.dat create mode 100644 tools/bin/Virtual Machine Emulator.dat create mode 100644 tools/bin/classes/CPUEmulatorMain.class create mode 100644 tools/bin/classes/HackAssemblerMain.class create mode 100644 tools/bin/classes/HardwareSimulatorMain.class create mode 100644 tools/bin/classes/TextComparer.class create mode 100644 tools/bin/classes/VMEmulatorMain.class create mode 100644 tools/bin/help/asmAbout.html create mode 100644 tools/bin/help/asmUsage.html create mode 100644 tools/bin/help/compiler.txt create mode 100644 tools/bin/help/cpuAbout.html create mode 100644 tools/bin/help/cpuUsage.html create mode 100644 tools/bin/help/hwAbout.html create mode 100644 tools/bin/help/hwUsage.html create mode 100644 tools/bin/help/vmAbout.html create mode 100644 tools/bin/help/vmUsage.html create mode 100644 tools/bin/images/arrow2.gif create mode 100644 tools/bin/images/calculator2.gif create mode 100644 tools/bin/images/cancel.gif create mode 100644 tools/bin/images/chip.gif create mode 100644 tools/bin/images/clock2.gif create mode 100644 tools/bin/images/equal.gif create mode 100644 tools/bin/images/find.gif create mode 100644 tools/bin/images/hex.gif create mode 100644 tools/bin/images/keyboard.gif create mode 100644 tools/bin/images/ok.gif create mode 100644 tools/bin/images/ok2.gif create mode 100644 tools/bin/images/open.gif create mode 100644 tools/bin/images/open2.gif create mode 100644 tools/bin/images/opendoc.gif create mode 100644 tools/bin/images/redflag.gif create mode 100644 tools/bin/images/save.gif create mode 100644 tools/bin/images/scroll.gif create mode 100644 tools/bin/images/smallcancel.gif create mode 100644 tools/bin/images/smallequal.gif create mode 100644 tools/bin/images/smallminus.gif create mode 100644 tools/bin/images/smallnew.gif create mode 100644 tools/bin/images/smallok.gif create mode 100644 tools/bin/images/smallplus.gif create mode 100644 tools/bin/images/vcrfastforward.gif create mode 100644 tools/bin/images/vcrforward.gif create mode 100644 tools/bin/images/vcrrewind.gif create mode 100644 tools/bin/images/vcrstop.gif create mode 100644 tools/bin/scripts/defaultCPU.txt create mode 100644 tools/bin/scripts/defaultHW.txt create mode 100644 tools/bin/scripts/defaultVM.txt create mode 100644 tools/builtInChips/ALU.class create mode 100644 tools/builtInChips/ALU.hdl create mode 100644 tools/builtInChips/ARegister.class create mode 100644 tools/builtInChips/ARegister.hdl create mode 100644 tools/builtInChips/Add16.class create mode 100644 tools/builtInChips/Add16.hdl create mode 100644 tools/builtInChips/And.class create mode 100644 tools/builtInChips/And.hdl create mode 100644 tools/builtInChips/And16.hdl create mode 100644 tools/builtInChips/Bit.class create mode 100644 tools/builtInChips/Bit.hdl create mode 100644 tools/builtInChips/DFF.class create mode 100644 tools/builtInChips/DFF.hdl create mode 100644 tools/builtInChips/DMux.class create mode 100644 tools/builtInChips/DMux.hdl create mode 100644 tools/builtInChips/DMux4Way.class create mode 100644 tools/builtInChips/DMux4Way.hdl create mode 100644 tools/builtInChips/DMux8Way.class create mode 100644 tools/builtInChips/DMux8Way.hdl create mode 100644 tools/builtInChips/DRegister.class create mode 100644 tools/builtInChips/DRegister.hdl create mode 100644 tools/builtInChips/FullAdder.class create mode 100644 tools/builtInChips/FullAdder.hdl create mode 100644 tools/builtInChips/HalfAdder.class create mode 100644 tools/builtInChips/HalfAdder.hdl create mode 100644 tools/builtInChips/Inc16.class create mode 100644 tools/builtInChips/Inc16.hdl create mode 100644 tools/builtInChips/Keyboard.class create mode 100644 tools/builtInChips/Keyboard.hdl create mode 100644 tools/builtInChips/Mux.class create mode 100644 tools/builtInChips/Mux.hdl create mode 100644 tools/builtInChips/Mux16.hdl create mode 100644 tools/builtInChips/Mux4Way16.class create mode 100644 tools/builtInChips/Mux4Way16.hdl create mode 100644 tools/builtInChips/Mux8Way16.class create mode 100644 tools/builtInChips/Mux8Way16.hdl create mode 100644 tools/builtInChips/Nand.class create mode 100644 tools/builtInChips/Nand.hdl create mode 100644 tools/builtInChips/Not.class create mode 100644 tools/builtInChips/Not.hdl create mode 100644 tools/builtInChips/Not16.class create mode 100644 tools/builtInChips/Not16.hdl create mode 100644 tools/builtInChips/Or.class create mode 100644 tools/builtInChips/Or.hdl create mode 100644 tools/builtInChips/Or16.hdl create mode 100644 tools/builtInChips/Or8Way.class create mode 100644 tools/builtInChips/Or8Way.hdl create mode 100644 tools/builtInChips/PC.class create mode 100644 tools/builtInChips/PC.hdl create mode 100644 tools/builtInChips/RAM.class create mode 100644 tools/builtInChips/RAM16K.class create mode 100644 tools/builtInChips/RAM16K.hdl create mode 100644 tools/builtInChips/RAM4K.class create mode 100644 tools/builtInChips/RAM4K.hdl create mode 100644 tools/builtInChips/RAM512.class create mode 100644 tools/builtInChips/RAM512.hdl create mode 100644 tools/builtInChips/RAM64.class create mode 100644 tools/builtInChips/RAM64.hdl create mode 100644 tools/builtInChips/RAM8.class create mode 100644 tools/builtInChips/RAM8.hdl create mode 100644 tools/builtInChips/ROM32K.class create mode 100644 tools/builtInChips/ROM32K.hdl create mode 100644 tools/builtInChips/Register.class create mode 100644 tools/builtInChips/Register.hdl create mode 100644 tools/builtInChips/RegisterWithGUI.class create mode 100644 tools/builtInChips/Screen.class create mode 100644 tools/builtInChips/Screen.hdl create mode 100644 tools/builtInChips/Xor.class create mode 100644 tools/builtInChips/Xor.hdl create mode 100644 tools/builtInVMCode/Array.class create mode 100644 tools/builtInVMCode/JackOSClass.class create mode 100644 tools/builtInVMCode/Keyboard.class create mode 100644 tools/builtInVMCode/Math.class create mode 100644 tools/builtInVMCode/Memory.class create mode 100644 tools/builtInVMCode/Output.class create mode 100644 tools/builtInVMCode/Screen.class create mode 100644 tools/builtInVMCode/String.class create mode 100644 tools/builtInVMCode/Sys.class diff --git a/.gitignore b/.gitignore index 997bd2f..6774fd6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,15 +1,5 @@ -# ---> Rust -# Generated by Cargo -# will have compiled files and executables -/target/ - -# Remove Cargo.lock from gitignore if creating an executable, leave it for libraries -# More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html -Cargo.lock - -# These are backup files generated by rustfmt -**/*.rs.bk - +# ---> N2T +tools/bin/Hardware Simulator.dat # ---> Python # Byte-compiled / optimized / DLL files __pycache__/ @@ -141,3 +131,15 @@ dmypy.json # Pyre type checker .pyre/ +# ---> Rust +# Generated by Cargo +# will have compiled files and executables +/target/ + +# Remove Cargo.lock from gitignore if creating an executable, leave it for libraries +# More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html +Cargo.lock + +# These are backup files generated by rustfmt +**/*.rs.bk + diff --git a/README.md b/README.md index 310dd7f..eb9500e 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,6 @@ # N2T -Nand to Tetris solutions building a general-purpose computer from first principles. \ No newline at end of file +Nand to Tetris solutions building a general-purpose computer from first +principles. + +![Create HDL for 64-bit RAM in Vim](gifs/vim_ram64.gif) diff --git a/gifs/vim_ram64.gif b/gifs/vim_ram64.gif new file mode 100644 index 0000000000000000000000000000000000000000..ede1ac2856113951098b7a3c3bed9f8b8d2d79e6 GIT binary patch literal 331990 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 0) goto BLACKSCREEN_LOOP_END + @i + D = M + @const_num_screen_words + D = D - M + @BLACKSCREEN_LOOP_END + D;JGE + + // current_word = SCREEN + 1 + @i + D = M + @SCREEN + D = D + A + @current_word + M = D + + // RAM[current_word] = pixel_value + @pixel_value + D = M + @current_word + A = M + M = D + + // i++ + @i + M = M + 1 + + // goto BLACKSCREEN_LOOP + @BLACKSCREEN_LOOP + 0;JMP + (BLACKSCREEN_LOOP_END) + + // goto MAINLOOP + @MAINLOOP + 0;JMP diff --git a/projects/04/fill/Fill.hack b/projects/04/fill/Fill.hack new file mode 100644 index 0000000..516e8e3 --- /dev/null +++ b/projects/04/fill/Fill.hack @@ -0,0 +1,39 @@ +0000000000010000 +1110101010001000 +0010000000000000 +1110110000010000 +0000000000010001 +1110001100001000 +0110000000000000 +1111110000010000 +0000000000010000 +1110001100000101 +0000000000001100 +1110001100000010 +0000000000010010 +1110101010001000 +0000000000010010 +1110101010000111 +0000000000010010 +1110111010001000 +0000000000010000 +1111110000010000 +0000000000010001 +1111010011010000 +0000000000000000 +1110001100000010 +0100000000000000 +1110110000010000 +0000000000010000 +1111000010010000 +0000000000010011 +1110001100001000 +0000000000010010 +1111110000010000 +0000000000010011 +1111110000100000 +1110001100001000 +0000000000010000 +1111110111001000 +0000000000010010 +1110101010000111 diff --git a/projects/04/fill/Fill.tst b/projects/04/fill/Fill.tst new file mode 100644 index 0000000..149bfee --- /dev/null +++ b/projects/04/fill/Fill.tst @@ -0,0 +1,11 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/04/fill/Fill.tst + +load Fill.hack; +echo "Make sure that 'No Animation' is selected. Then, select the keyboard, press any key for some time, and inspect the screen."; + +repeat { + ticktock; +} diff --git a/projects/04/fill/FillAutomatic.cmp b/projects/04/fill/FillAutomatic.cmp new file mode 100644 index 0000000..a71db27 --- /dev/null +++ b/projects/04/fill/FillAutomatic.cmp @@ -0,0 +1,4 @@ +|RAM[16384]|RAM[17648]|RAM[18349]|RAM[19444]|RAM[20771]|RAM[21031]|RAM[22596]|RAM[23754]|RAM[24575]| +| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | +| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | diff --git a/projects/04/fill/FillAutomatic.out b/projects/04/fill/FillAutomatic.out new file mode 100644 index 0000000..a71db27 --- /dev/null +++ b/projects/04/fill/FillAutomatic.out @@ -0,0 +1,4 @@ +|RAM[16384]|RAM[17648]|RAM[18349]|RAM[19444]|RAM[20771]|RAM[21031]|RAM[22596]|RAM[23754]|RAM[24575]| +| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | +| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | diff --git a/projects/04/fill/FillAutomatic.tst b/projects/04/fill/FillAutomatic.tst new file mode 100644 index 0000000..90bfef9 --- /dev/null +++ b/projects/04/fill/FillAutomatic.tst @@ -0,0 +1,37 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/04/fill/FillAutomatic + +// This script can be used to test the Fill program automatically, +// rather than interactively. Specifically, the script sets the keyboard +// memory map (RAM[24576]) to 0, 1, and then again to 0. This simulates the +// acts of leaving the keyboard untouched, pressing some key, and then releasing +// the key. After each on of these simulated events, the script outputs the values +// of some selected registers from the screen memory map (RAM[16384]-RAM[24576]). +// This is done in order to test that these registers are set to 000...0 or 111....1, +// as mandated by how the Fill program should react to the keyboard events. + +load Fill.hack, +output-file FillAutomatic.out, +compare-to FillAutomatic.cmp, +output-list RAM[16384]%D2.6.2 RAM[17648]%D2.6.2 RAM[18349]%D2.6.2 RAM[19444]%D2.6.2 RAM[20771]%D2.6.2 RAM[21031]%D2.6.2 RAM[22596]%D2.6.2 RAM[23754]%D2.6.2 RAM[24575]%D2.6.2; + +set RAM[24576] 0, // the keyboard is untouched +repeat 1000000 { + ticktock; +} +output; // test that the screen is white + +set RAM[24576] 1, // a keyboard key is pressed +repeat 1000000 { + ticktock; +} +output; // test that the screen is black + +set RAM[24576] 0, // they keyboard in untouched +repeat 1000000 { + ticktock; +} +output; // test that the screen is white + diff --git a/projects/04/mult/Mult.asm b/projects/04/mult/Mult.asm new file mode 100644 index 0000000..9a00726 --- /dev/null +++ b/projects/04/mult/Mult.asm @@ -0,0 +1,41 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/04/Mult.asm + +// Multiplies R0 and R1 and stores the result in R2. +// (R0, R1, R2 refer to RAM[0], RAM[1], and RAM[2], respectively.) + + // R2 = 0 + @R2 + M = 0 + // i = 0 + @i + M = 0 + +(LOOP) + // (if i >= R0 <=> if i - R0 >= 0) goto END + @i + D = M + @R0 + D = D - M + @END + D;JGE + + // R2 = R2 + R1 + @R1 + D = M + @R2 + M = M + D + + // i++ + @i + M = M + 1 + + // goto LOOP + @LOOP + 0;JMP + +(END) + @END + 0;JMP diff --git a/projects/04/mult/Mult.cmp b/projects/04/mult/Mult.cmp new file mode 100644 index 0000000..296b5fb --- /dev/null +++ b/projects/04/mult/Mult.cmp @@ -0,0 +1,7 @@ +| RAM[0] | RAM[1] | RAM[2] | +| 0 | 0 | 0 | +| 1 | 0 | 0 | +| 0 | 2 | 0 | +| 3 | 1 | 3 | +| 2 | 4 | 8 | +| 6 | 7 | 42 | \ No newline at end of file diff --git a/projects/04/mult/Mult.hack b/projects/04/mult/Mult.hack new file mode 100644 index 0000000..3cc19cb --- /dev/null +++ b/projects/04/mult/Mult.hack @@ -0,0 +1,20 @@ +0000000000010000 +1110101010001000 +0000000000000010 +1110101010001000 +0000000000010000 +1111110000010000 +0000000000000001 +1111010011010000 +0000000000010010 +1110001100000011 +0000000000010000 +1111110111001000 +0000000000000000 +1111110000010000 +0000000000000010 +1111000010001000 +0000000000000100 +1110101010000111 +0000000000010010 +1110101010000111 diff --git a/projects/04/mult/Mult.out b/projects/04/mult/Mult.out new file mode 100644 index 0000000..e31b5df --- /dev/null +++ b/projects/04/mult/Mult.out @@ -0,0 +1,7 @@ +| RAM[0] | RAM[1] | RAM[2] | +| 0 | 0 | 0 | +| 1 | 0 | 0 | +| 0 | 2 | 0 | +| 3 | 1 | 3 | +| 2 | 4 | 8 | +| 6 | 7 | 42 | diff --git a/projects/04/mult/Mult.tst b/projects/04/mult/Mult.tst new file mode 100644 index 0000000..f877664 --- /dev/null +++ b/projects/04/mult/Mult.tst @@ -0,0 +1,74 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/04/mult/Mult.tst + +load Mult.hack, +output-file Mult.out, +compare-to Mult.cmp, +output-list RAM[0]%D2.6.2 RAM[1]%D2.6.2 RAM[2]%D2.6.2; + +set RAM[0] 0, // Set test arguments +set RAM[1] 0, +set RAM[2] -1; // Test that program initialized product to 0 +repeat 20 { + ticktock; +} +set RAM[0] 0, // Restore arguments in case program used them as loop counter +set RAM[1] 0, +output; + +set PC 0, +set RAM[0] 1, // Set test arguments +set RAM[1] 0, +set RAM[2] -1; // Ensure that program initialized product to 0 +repeat 50 { + ticktock; +} +set RAM[0] 1, // Restore arguments in case program used them as loop counter +set RAM[1] 0, +output; + +set PC 0, +set RAM[0] 0, // Set test arguments +set RAM[1] 2, +set RAM[2] -1; // Ensure that program initialized product to 0 +repeat 80 { + ticktock; +} +set RAM[0] 0, // Restore arguments in case program used them as loop counter +set RAM[1] 2, +output; + +set PC 0, +set RAM[0] 3, // Set test arguments +set RAM[1] 1, +set RAM[2] -1; // Ensure that program initialized product to 0 +repeat 120 { + ticktock; +} +set RAM[0] 3, // Restore arguments in case program used them as loop counter +set RAM[1] 1, +output; + +set PC 0, +set RAM[0] 2, // Set test arguments +set RAM[1] 4, +set RAM[2] -1; // Ensure that program initialized product to 0 +repeat 150 { + ticktock; +} +set RAM[0] 2, // Restore arguments in case program used them as loop counter +set RAM[1] 4, +output; + +set PC 0, +set RAM[0] 6, // Set test arguments +set RAM[1] 7, +set RAM[2] -1; // Ensure that program initialized product to 0 +repeat 210 { + ticktock; +} +set RAM[0] 6, // Restore arguments in case program used them as loop counter +set RAM[1] 7, +output; diff --git a/projects/05/Add.hack b/projects/05/Add.hack new file mode 100644 index 0000000..fe5969d --- /dev/null +++ b/projects/05/Add.hack @@ -0,0 +1,6 @@ +0000000000000010 +1110110000010000 +0000000000000011 +1110000010010000 +0000000000000000 +1110001100001000 diff --git a/projects/05/CPU-external.cmp b/projects/05/CPU-external.cmp new file mode 100644 index 0000000..58f43bd --- /dev/null +++ b/projects/05/CPU-external.cmp @@ -0,0 +1,93 @@ +|time| inM | instruction |reset| outM |writeM |addre| pc | +|0+ | 0|0011000000111001| 0 |*******| 0 | 0| 0| +|1 | 0|0011000000111001| 0 |*******| 0 |12345| 1| +|1+ | 0|1110110000010000| 0 |*******| 0 |12345| 1| +|2 | 0|1110110000010000| 0 |*******| 0 |12345| 2| +|2+ | 0|0101101110100000| 0 |*******| 0 |12345| 2| +|3 | 0|0101101110100000| 0 |*******| 0 |23456| 3| +|3+ | 0|1110000111010000| 0 |*******| 0 |23456| 3| +|4 | 0|1110000111010000| 0 |*******| 0 |23456| 4| +|4+ | 0|0000001111101000| 0 |*******| 0 |23456| 4| +|5 | 0|0000001111101000| 0 |*******| 0 | 1000| 5| +|5+ | 0|1110001100001000| 0 | 11111| 1 | 1000| 5| +|6 | 0|1110001100001000| 0 | 11111| 1 | 1000| 6| +|6+ | 0|0000001111101001| 0 |*******| 0 | 1000| 6| +|7 | 0|0000001111101001| 0 |*******| 0 | 1001| 7| +|7+ | 0|1110001110011000| 0 | 11110| 1 | 1001| 7| +|8 | 0|1110001110011000| 0 | 11109| 1 | 1001| 8| +|8+ | 0|0000001111101000| 0 |*******| 0 | 1001| 8| +|9 | 0|0000001111101000| 0 |*******| 0 | 1000| 9| +|9+ | 11111|1111010011010000| 0 |*******| 0 | 1000| 9| +|10 | 11111|1111010011010000| 0 |*******| 0 | 1000| 10| +|10+ | 11111|0000000000001110| 0 |*******| 0 | 1000| 10| +|11 | 11111|0000000000001110| 0 |*******| 0 | 14| 11| +|11+ | 11111|1110001100000100| 0 |*******| 0 | 14| 11| +|12 | 11111|1110001100000100| 0 |*******| 0 | 14| 14| +|12+ | 11111|0000001111100111| 0 |*******| 0 | 14| 14| +|13 | 11111|0000001111100111| 0 |*******| 0 | 999| 15| +|13+ | 11111|1110110111100000| 0 |*******| 0 | 999| 15| +|14 | 11111|1110110111100000| 0 |*******| 0 | 1000| 16| +|14+ | 11111|1110001100001000| 0 | -1| 1 | 1000| 16| +|15 | 11111|1110001100001000| 0 | -1| 1 | 1000| 17| +|15+ | 11111|0000000000010101| 0 |*******| 0 | 1000| 17| +|16 | 11111|0000000000010101| 0 |*******| 0 | 21| 18| +|16+ | 11111|1110011111000010| 0 |*******| 0 | 21| 18| +|17 | 11111|1110011111000010| 0 |*******| 0 | 21| 21| +|17+ | 11111|0000000000000010| 0 |*******| 0 | 21| 21| +|18 | 11111|0000000000000010| 0 |*******| 0 | 2| 22| +|18+ | 11111|1110000010010000| 0 |*******| 0 | 2| 22| +|19 | 11111|1110000010010000| 0 |*******| 0 | 2| 23| +|19+ | 11111|0000001111101000| 0 |*******| 0 | 2| 23| +|20 | 11111|0000001111101000| 0 |*******| 0 | 1000| 24| +|20+ | 11111|1110111010010000| 0 |*******| 0 | 1000| 24| +|21 | 11111|1110111010010000| 0 |*******| 0 | 1000| 25| +|21+ | 11111|1110001100000001| 0 |*******| 0 | 1000| 25| +|22 | 11111|1110001100000001| 0 |*******| 0 | 1000| 26| +|22+ | 11111|1110001100000010| 0 |*******| 0 | 1000| 26| +|23 | 11111|1110001100000010| 0 |*******| 0 | 1000| 27| +|23+ | 11111|1110001100000011| 0 |*******| 0 | 1000| 27| +|24 | 11111|1110001100000011| 0 |*******| 0 | 1000| 28| +|24+ | 11111|1110001100000100| 0 |*******| 0 | 1000| 28| +|25 | 11111|1110001100000100| 0 |*******| 0 | 1000| 1000| +|25+ | 11111|1110001100000101| 0 |*******| 0 | 1000| 1000| +|26 | 11111|1110001100000101| 0 |*******| 0 | 1000| 1000| +|26+ | 11111|1110001100000110| 0 |*******| 0 | 1000| 1000| +|27 | 11111|1110001100000110| 0 |*******| 0 | 1000| 1000| +|27+ | 11111|1110001100000111| 0 |*******| 0 | 1000| 1000| +|28 | 11111|1110001100000111| 0 |*******| 0 | 1000| 1000| +|28+ | 11111|1110101010010000| 0 |*******| 0 | 1000| 1000| +|29 | 11111|1110101010010000| 0 |*******| 0 | 1000| 1001| +|29+ | 11111|1110001100000001| 0 |*******| 0 | 1000| 1001| +|30 | 11111|1110001100000001| 0 |*******| 0 | 1000| 1002| +|30+ | 11111|1110001100000010| 0 |*******| 0 | 1000| 1002| +|31 | 11111|1110001100000010| 0 |*******| 0 | 1000| 1000| +|31+ | 11111|1110001100000011| 0 |*******| 0 | 1000| 1000| +|32 | 11111|1110001100000011| 0 |*******| 0 | 1000| 1000| +|32+ | 11111|1110001100000100| 0 |*******| 0 | 1000| 1000| +|33 | 11111|1110001100000100| 0 |*******| 0 | 1000| 1001| +|33+ | 11111|1110001100000101| 0 |*******| 0 | 1000| 1001| +|34 | 11111|1110001100000101| 0 |*******| 0 | 1000| 1002| +|34+ | 11111|1110001100000110| 0 |*******| 0 | 1000| 1002| +|35 | 11111|1110001100000110| 0 |*******| 0 | 1000| 1000| +|35+ | 11111|1110001100000111| 0 |*******| 0 | 1000| 1000| +|36 | 11111|1110001100000111| 0 |*******| 0 | 1000| 1000| +|36+ | 11111|1110111111010000| 0 |*******| 0 | 1000| 1000| +|37 | 11111|1110111111010000| 0 |*******| 0 | 1000| 1001| +|37+ | 11111|1110001100000001| 0 |*******| 0 | 1000| 1001| +|38 | 11111|1110001100000001| 0 |*******| 0 | 1000| 1000| +|38+ | 11111|1110001100000010| 0 |*******| 0 | 1000| 1000| +|39 | 11111|1110001100000010| 0 |*******| 0 | 1000| 1001| +|39+ | 11111|1110001100000011| 0 |*******| 0 | 1000| 1001| +|40 | 11111|1110001100000011| 0 |*******| 0 | 1000| 1000| +|40+ | 11111|1110001100000100| 0 |*******| 0 | 1000| 1000| +|41 | 11111|1110001100000100| 0 |*******| 0 | 1000| 1001| +|41+ | 11111|1110001100000101| 0 |*******| 0 | 1000| 1001| +|42 | 11111|1110001100000101| 0 |*******| 0 | 1000| 1000| +|42+ | 11111|1110001100000110| 0 |*******| 0 | 1000| 1000| +|43 | 11111|1110001100000110| 0 |*******| 0 | 1000| 1001| +|43+ | 11111|1110001100000111| 0 |*******| 0 | 1000| 1001| +|44 | 11111|1110001100000111| 0 |*******| 0 | 1000| 1000| +|44+ | 11111|1110001100000111| 1 |*******| 0 | 1000| 1000| +|45 | 11111|1110001100000111| 1 |*******| 0 | 1000| 0| +|45+ | 11111|0111111111111111| 0 |*******| 0 | 1000| 0| +|46 | 11111|0111111111111111| 0 |*******| 0 |32767| 1| diff --git a/projects/05/CPU-external.out b/projects/05/CPU-external.out new file mode 100644 index 0000000..6ac7330 --- /dev/null +++ b/projects/05/CPU-external.out @@ -0,0 +1,93 @@ +|time| inM | instruction |reset| outM |writeM |addre| pc | +|0+ | 0|0011000000111001| 0 | 0| 0 | 0| 0| +|1 | 0|0011000000111001| 0 | 0| 0 |12345| 1| +|1+ | 0|1110110000010000| 0 | 12345| 0 |12345| 1| +|2 | 0|1110110000010000| 0 | 12345| 0 |12345| 2| +|2+ | 0|0101101110100000| 0 | -1| 0 |12345| 2| +|3 | 0|0101101110100000| 0 | -1| 0 |23456| 3| +|3+ | 0|1110000111010000| 0 | 11111| 0 |23456| 3| +|4 | 0|1110000111010000| 0 | 12345| 0 |23456| 4| +|4+ | 0|0000001111101000| 0 | -11111| 0 |23456| 4| +|5 | 0|0000001111101000| 0 | -11111| 0 | 1000| 5| +|5+ | 0|1110001100001000| 0 | 11111| 1 | 1000| 5| +|6 | 0|1110001100001000| 0 | 11111| 1 | 1000| 6| +|6+ | 0|0000001111101001| 0 | -11111| 0 | 1000| 6| +|7 | 0|0000001111101001| 0 | -11111| 0 | 1001| 7| +|7+ | 0|1110001110011000| 0 | 11110| 1 | 1001| 7| +|8 | 0|1110001110011000| 0 | 11109| 1 | 1001| 8| +|8+ | 0|0000001111101000| 0 | -11110| 0 | 1001| 8| +|9 | 0|0000001111101000| 0 | -11110| 0 | 1000| 9| +|9+ | 11111|1111010011010000| 0 | -1| 0 | 1000| 9| +|10 | 11111|1111010011010000| 0 | -11112| 0 | 1000| 10| +|10+ | 11111|0000000000001110| 0 | 1000| 0 | 1000| 10| +|11 | 11111|0000000000001110| 0 | 14| 0 | 14| 11| +|11+ | 11111|1110001100000100| 0 | -1| 0 | 14| 11| +|12 | 11111|1110001100000100| 0 | -1| 0 | 14| 14| +|12+ | 11111|0000001111100111| 0 | 1| 0 | 14| 14| +|13 | 11111|0000001111100111| 0 | 1| 0 | 999| 15| +|13+ | 11111|1110110111100000| 0 | 1000| 0 | 999| 15| +|14 | 11111|1110110111100000| 0 | 1001| 0 | 1000| 16| +|14+ | 11111|1110001100001000| 0 | -1| 1 | 1000| 16| +|15 | 11111|1110001100001000| 0 | -1| 1 | 1000| 17| +|15+ | 11111|0000000000010101| 0 | 1000| 0 | 1000| 17| +|16 | 11111|0000000000010101| 0 | 21| 0 | 21| 18| +|16+ | 11111|1110011111000010| 0 | 0| 0 | 21| 18| +|17 | 11111|1110011111000010| 0 | 0| 0 | 21| 21| +|17+ | 11111|0000000000000010| 0 | 21| 0 | 21| 21| +|18 | 11111|0000000000000010| 0 | 2| 0 | 2| 22| +|18+ | 11111|1110000010010000| 0 | 1| 0 | 2| 22| +|19 | 11111|1110000010010000| 0 | 3| 0 | 2| 23| +|19+ | 11111|0000001111101000| 0 | -1| 0 | 2| 23| +|20 | 11111|0000001111101000| 0 | -1| 0 | 1000| 24| +|20+ | 11111|1110111010010000| 0 | -1| 0 | 1000| 24| +|21 | 11111|1110111010010000| 0 | -1| 0 | 1000| 25| +|21+ | 11111|1110001100000001| 0 | -1| 0 | 1000| 25| +|22 | 11111|1110001100000001| 0 | -1| 0 | 1000| 26| +|22+ | 11111|1110001100000010| 0 | -1| 0 | 1000| 26| +|23 | 11111|1110001100000010| 0 | -1| 0 | 1000| 27| +|23+ | 11111|1110001100000011| 0 | -1| 0 | 1000| 27| +|24 | 11111|1110001100000011| 0 | -1| 0 | 1000| 28| +|24+ | 11111|1110001100000100| 0 | -1| 0 | 1000| 28| +|25 | 11111|1110001100000100| 0 | -1| 0 | 1000| 1000| +|25+ | 11111|1110001100000101| 0 | -1| 0 | 1000| 1000| +|26 | 11111|1110001100000101| 0 | -1| 0 | 1000| 1000| +|26+ | 11111|1110001100000110| 0 | -1| 0 | 1000| 1000| +|27 | 11111|1110001100000110| 0 | -1| 0 | 1000| 1000| +|27+ | 11111|1110001100000111| 0 | -1| 0 | 1000| 1000| +|28 | 11111|1110001100000111| 0 | -1| 0 | 1000| 1000| +|28+ | 11111|1110101010010000| 0 | 0| 0 | 1000| 1000| +|29 | 11111|1110101010010000| 0 | 0| 0 | 1000| 1001| +|29+ | 11111|1110001100000001| 0 | 0| 0 | 1000| 1001| +|30 | 11111|1110001100000001| 0 | 0| 0 | 1000| 1002| +|30+ | 11111|1110001100000010| 0 | 0| 0 | 1000| 1002| +|31 | 11111|1110001100000010| 0 | 0| 0 | 1000| 1000| +|31+ | 11111|1110001100000011| 0 | 0| 0 | 1000| 1000| +|32 | 11111|1110001100000011| 0 | 0| 0 | 1000| 1000| +|32+ | 11111|1110001100000100| 0 | 0| 0 | 1000| 1000| +|33 | 11111|1110001100000100| 0 | 0| 0 | 1000| 1001| +|33+ | 11111|1110001100000101| 0 | 0| 0 | 1000| 1001| +|34 | 11111|1110001100000101| 0 | 0| 0 | 1000| 1002| +|34+ | 11111|1110001100000110| 0 | 0| 0 | 1000| 1002| +|35 | 11111|1110001100000110| 0 | 0| 0 | 1000| 1000| +|35+ | 11111|1110001100000111| 0 | 0| 0 | 1000| 1000| +|36 | 11111|1110001100000111| 0 | 0| 0 | 1000| 1000| +|36+ | 11111|1110111111010000| 0 | 1| 0 | 1000| 1000| +|37 | 11111|1110111111010000| 0 | 1| 0 | 1000| 1001| +|37+ | 11111|1110001100000001| 0 | 1| 0 | 1000| 1001| +|38 | 11111|1110001100000001| 0 | 1| 0 | 1000| 1000| +|38+ | 11111|1110001100000010| 0 | 1| 0 | 1000| 1000| +|39 | 11111|1110001100000010| 0 | 1| 0 | 1000| 1001| +|39+ | 11111|1110001100000011| 0 | 1| 0 | 1000| 1001| +|40 | 11111|1110001100000011| 0 | 1| 0 | 1000| 1000| +|40+ | 11111|1110001100000100| 0 | 1| 0 | 1000| 1000| +|41 | 11111|1110001100000100| 0 | 1| 0 | 1000| 1001| +|41+ | 11111|1110001100000101| 0 | 1| 0 | 1000| 1001| +|42 | 11111|1110001100000101| 0 | 1| 0 | 1000| 1000| +|42+ | 11111|1110001100000110| 0 | 1| 0 | 1000| 1000| +|43 | 11111|1110001100000110| 0 | 1| 0 | 1000| 1001| +|43+ | 11111|1110001100000111| 0 | 1| 0 | 1000| 1001| +|44 | 11111|1110001100000111| 0 | 1| 0 | 1000| 1000| +|44+ | 11111|1110001100000111| 1 | 1| 0 | 1000| 1000| +|45 | 11111|1110001100000111| 1 | 1| 0 | 1000| 0| +|45+ | 11111|0111111111111111| 0 | 1| 0 | 1000| 0| +|46 | 11111|0111111111111111| 0 | 1| 0 |32767| 1| diff --git a/projects/05/CPU-external.tst b/projects/05/CPU-external.tst new file mode 100644 index 0000000..5aa0295 --- /dev/null +++ b/projects/05/CPU-external.tst @@ -0,0 +1,150 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/05/CPU-external.tst + +load CPU.hdl, +output-file CPU-external.out, +compare-to CPU-external.cmp, +output-list time%S0.4.0 inM%D0.6.0 instruction%B0.16.0 reset%B2.1.2 outM%D1.6.0 writeM%B3.1.3 addressM%D0.5.0 pc%D0.5.0; + + +set instruction %B0011000000111001, // @12345 +tick, output, tock, output; + +set instruction %B1110110000010000, // D=A +tick, output, tock, output; + +set instruction %B0101101110100000, // @23456 +tick, output, tock, output; + +set instruction %B1110000111010000, // D=A-D +tick, output, tock, output; + +set instruction %B0000001111101000, // @1000 +tick, output, tock, output; + +set instruction %B1110001100001000, // M=D +tick, output, tock, output; + +set instruction %B0000001111101001, // @1001 +tick, output, tock, output; + +set instruction %B1110001110011000, // MD=D-1 +tick, output, tock, output; + +set instruction %B0000001111101000, // @1000 +tick, output, tock, output; + +set instruction %B1111010011010000, // D=D-M +set inM 11111, +tick, output, tock, output; + +set instruction %B0000000000001110, // @14 +tick, output, tock, output; + +set instruction %B1110001100000100, // D;jlt +tick, output, tock, output; + +set instruction %B0000001111100111, // @999 +tick, output, tock, output; + +set instruction %B1110110111100000, // A=A+1 +tick, output, tock, output; + +set instruction %B1110001100001000, // M=D +tick, output, tock, output; + +set instruction %B0000000000010101, // @21 +tick, output, tock, output; + +set instruction %B1110011111000010, // D+1;jeq +tick, output, tock, output; + +set instruction %B0000000000000010, // @2 +tick, output, tock, output; + +set instruction %B1110000010010000, // D=D+A +tick, output, tock, output; + +set instruction %B0000001111101000, // @1000 +tick, output, tock, output; + +set instruction %B1110111010010000, // D=-1 +tick, output, tock, output; + +set instruction %B1110001100000001, // D;JGT +tick, output, tock, output; + +set instruction %B1110001100000010, // D;JEQ +tick, output, tock, output; + +set instruction %B1110001100000011, // D;JGE +tick, output, tock, output; + +set instruction %B1110001100000100, // D;JLT +tick, output, tock, output; + +set instruction %B1110001100000101, // D;JNE +tick, output, tock, output; + +set instruction %B1110001100000110, // D;JLE +tick, output, tock, output; + +set instruction %B1110001100000111, // D;JMP +tick, output, tock, output; + +set instruction %B1110101010010000, // D=0 +tick, output, tock, output; + +set instruction %B1110001100000001, // D;JGT +tick, output, tock, output; + +set instruction %B1110001100000010, // D;JEQ +tick, output, tock, output; + +set instruction %B1110001100000011, // D;JGE +tick, output, tock, output; + +set instruction %B1110001100000100, // D;JLT +tick, output, tock, output; + +set instruction %B1110001100000101, // D;JNE +tick, output, tock, output; + +set instruction %B1110001100000110, // D;JLE +tick, output, tock, output; + +set instruction %B1110001100000111, // D;JMP +tick, output, tock, output; + +set instruction %B1110111111010000, // D=1 +tick, output, tock, output; + +set instruction %B1110001100000001, // D;JGT +tick, output, tock, output; + +set instruction %B1110001100000010, // D;JEQ +tick, output, tock, output; + +set instruction %B1110001100000011, // D;JGE +tick, output, tock, output; + +set instruction %B1110001100000100, // D;JLT +tick, output, tock, output; + +set instruction %B1110001100000101, // D;JNE +tick, output, tock, output; + +set instruction %B1110001100000110, // D;JLE +tick, output, tock, output; + +set instruction %B1110001100000111, // D;JMP +tick, output, tock, output; + +set reset 1; +tick, output, tock, output; + +set instruction %B0111111111111111, // @32767 +set reset 0; +tick, output, tock, output; diff --git a/projects/05/CPU.cmp b/projects/05/CPU.cmp new file mode 100644 index 0000000..345674c --- /dev/null +++ b/projects/05/CPU.cmp @@ -0,0 +1,93 @@ +|time| inM | instruction |reset| outM |writeM |addre| pc |DRegiste| +|0+ | 0|0011000000111001| 0 |*******| 0 | 0| 0| 0 | +|1 | 0|0011000000111001| 0 |*******| 0 |12345| 1| 0 | +|1+ | 0|1110110000010000| 0 |*******| 0 |12345| 1| 12345 | +|2 | 0|1110110000010000| 0 |*******| 0 |12345| 2| 12345 | +|2+ | 0|0101101110100000| 0 |*******| 0 |12345| 2| 12345 | +|3 | 0|0101101110100000| 0 |*******| 0 |23456| 3| 12345 | +|3+ | 0|1110000111010000| 0 |*******| 0 |23456| 3| 11111 | +|4 | 0|1110000111010000| 0 |*******| 0 |23456| 4| 11111 | +|4+ | 0|0000001111101000| 0 |*******| 0 |23456| 4| 11111 | +|5 | 0|0000001111101000| 0 |*******| 0 | 1000| 5| 11111 | +|5+ | 0|1110001100001000| 0 | 11111| 1 | 1000| 5| 11111 | +|6 | 0|1110001100001000| 0 | 11111| 1 | 1000| 6| 11111 | +|6+ | 0|0000001111101001| 0 |*******| 0 | 1000| 6| 11111 | +|7 | 0|0000001111101001| 0 |*******| 0 | 1001| 7| 11111 | +|7+ | 0|1110001110011000| 0 | 11110| 1 | 1001| 7| 11110 | +|8 | 0|1110001110011000| 0 | 11109| 1 | 1001| 8| 11110 | +|8+ | 0|0000001111101000| 0 |*******| 0 | 1001| 8| 11110 | +|9 | 0|0000001111101000| 0 |*******| 0 | 1000| 9| 11110 | +|9+ | 11111|1111010011010000| 0 |*******| 0 | 1000| 9| -1 | +|10 | 11111|1111010011010000| 0 |*******| 0 | 1000| 10| -1 | +|10+ | 11111|0000000000001110| 0 |*******| 0 | 1000| 10| -1 | +|11 | 11111|0000000000001110| 0 |*******| 0 | 14| 11| -1 | +|11+ | 11111|1110001100000100| 0 |*******| 0 | 14| 11| -1 | +|12 | 11111|1110001100000100| 0 |*******| 0 | 14| 14| -1 | +|12+ | 11111|0000001111100111| 0 |*******| 0 | 14| 14| -1 | +|13 | 11111|0000001111100111| 0 |*******| 0 | 999| 15| -1 | +|13+ | 11111|1110110111100000| 0 |*******| 0 | 999| 15| -1 | +|14 | 11111|1110110111100000| 0 |*******| 0 | 1000| 16| -1 | +|14+ | 11111|1110001100001000| 0 | -1| 1 | 1000| 16| -1 | +|15 | 11111|1110001100001000| 0 | -1| 1 | 1000| 17| -1 | +|15+ | 11111|0000000000010101| 0 |*******| 0 | 1000| 17| -1 | +|16 | 11111|0000000000010101| 0 |*******| 0 | 21| 18| -1 | +|16+ | 11111|1110011111000010| 0 |*******| 0 | 21| 18| -1 | +|17 | 11111|1110011111000010| 0 |*******| 0 | 21| 21| -1 | +|17+ | 11111|0000000000000010| 0 |*******| 0 | 21| 21| -1 | +|18 | 11111|0000000000000010| 0 |*******| 0 | 2| 22| -1 | +|18+ | 11111|1110000010010000| 0 |*******| 0 | 2| 22| 1 | +|19 | 11111|1110000010010000| 0 |*******| 0 | 2| 23| 1 | +|19+ | 11111|0000001111101000| 0 |*******| 0 | 2| 23| 1 | +|20 | 11111|0000001111101000| 0 |*******| 0 | 1000| 24| 1 | +|20+ | 11111|1110111010010000| 0 |*******| 0 | 1000| 24| -1 | +|21 | 11111|1110111010010000| 0 |*******| 0 | 1000| 25| -1 | +|21+ | 11111|1110001100000001| 0 |*******| 0 | 1000| 25| -1 | +|22 | 11111|1110001100000001| 0 |*******| 0 | 1000| 26| -1 | +|22+ | 11111|1110001100000010| 0 |*******| 0 | 1000| 26| -1 | +|23 | 11111|1110001100000010| 0 |*******| 0 | 1000| 27| -1 | +|23+ | 11111|1110001100000011| 0 |*******| 0 | 1000| 27| -1 | +|24 | 11111|1110001100000011| 0 |*******| 0 | 1000| 28| -1 | +|24+ | 11111|1110001100000100| 0 |*******| 0 | 1000| 28| -1 | +|25 | 11111|1110001100000100| 0 |*******| 0 | 1000| 1000| -1 | +|25+ | 11111|1110001100000101| 0 |*******| 0 | 1000| 1000| -1 | +|26 | 11111|1110001100000101| 0 |*******| 0 | 1000| 1000| -1 | +|26+ | 11111|1110001100000110| 0 |*******| 0 | 1000| 1000| -1 | +|27 | 11111|1110001100000110| 0 |*******| 0 | 1000| 1000| -1 | +|27+ | 11111|1110001100000111| 0 |*******| 0 | 1000| 1000| -1 | +|28 | 11111|1110001100000111| 0 |*******| 0 | 1000| 1000| -1 | +|28+ | 11111|1110101010010000| 0 |*******| 0 | 1000| 1000| 0 | +|29 | 11111|1110101010010000| 0 |*******| 0 | 1000| 1001| 0 | +|29+ | 11111|1110001100000001| 0 |*******| 0 | 1000| 1001| 0 | +|30 | 11111|1110001100000001| 0 |*******| 0 | 1000| 1002| 0 | +|30+ | 11111|1110001100000010| 0 |*******| 0 | 1000| 1002| 0 | +|31 | 11111|1110001100000010| 0 |*******| 0 | 1000| 1000| 0 | +|31+ | 11111|1110001100000011| 0 |*******| 0 | 1000| 1000| 0 | +|32 | 11111|1110001100000011| 0 |*******| 0 | 1000| 1000| 0 | +|32+ | 11111|1110001100000100| 0 |*******| 0 | 1000| 1000| 0 | +|33 | 11111|1110001100000100| 0 |*******| 0 | 1000| 1001| 0 | +|33+ | 11111|1110001100000101| 0 |*******| 0 | 1000| 1001| 0 | +|34 | 11111|1110001100000101| 0 |*******| 0 | 1000| 1002| 0 | +|34+ | 11111|1110001100000110| 0 |*******| 0 | 1000| 1002| 0 | +|35 | 11111|1110001100000110| 0 |*******| 0 | 1000| 1000| 0 | +|35+ | 11111|1110001100000111| 0 |*******| 0 | 1000| 1000| 0 | +|36 | 11111|1110001100000111| 0 |*******| 0 | 1000| 1000| 0 | +|36+ | 11111|1110111111010000| 0 |*******| 0 | 1000| 1000| 1 | +|37 | 11111|1110111111010000| 0 |*******| 0 | 1000| 1001| 1 | +|37+ | 11111|1110001100000001| 0 |*******| 0 | 1000| 1001| 1 | +|38 | 11111|1110001100000001| 0 |*******| 0 | 1000| 1000| 1 | +|38+ | 11111|1110001100000010| 0 |*******| 0 | 1000| 1000| 1 | +|39 | 11111|1110001100000010| 0 |*******| 0 | 1000| 1001| 1 | +|39+ | 11111|1110001100000011| 0 |*******| 0 | 1000| 1001| 1 | +|40 | 11111|1110001100000011| 0 |*******| 0 | 1000| 1000| 1 | +|40+ | 11111|1110001100000100| 0 |*******| 0 | 1000| 1000| 1 | +|41 | 11111|1110001100000100| 0 |*******| 0 | 1000| 1001| 1 | +|41+ | 11111|1110001100000101| 0 |*******| 0 | 1000| 1001| 1 | +|42 | 11111|1110001100000101| 0 |*******| 0 | 1000| 1000| 1 | +|42+ | 11111|1110001100000110| 0 |*******| 0 | 1000| 1000| 1 | +|43 | 11111|1110001100000110| 0 |*******| 0 | 1000| 1001| 1 | +|43+ | 11111|1110001100000111| 0 |*******| 0 | 1000| 1001| 1 | +|44 | 11111|1110001100000111| 0 |*******| 0 | 1000| 1000| 1 | +|44+ | 11111|1110001100000111| 1 |*******| 0 | 1000| 1000| 1 | +|45 | 11111|1110001100000111| 1 |*******| 0 | 1000| 0| 1 | +|45+ | 11111|0111111111111111| 0 |*******| 0 | 1000| 0| 1 | +|46 | 11111|0111111111111111| 0 |*******| 0 |32767| 1| 1 | diff --git a/projects/05/CPU.hdl b/projects/05/CPU.hdl new file mode 100644 index 0000000..e17ff8a --- /dev/null +++ b/projects/05/CPU.hdl @@ -0,0 +1,99 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/05/CPU.hdl + +/** + * The Hack CPU (Central Processing unit), consisting of an ALU, + * two registers named A and D, and a program counter named PC. + * The CPU is designed to fetch and execute instructions written in + * the Hack machine language. In particular, functions as follows: + * Executes the inputted instruction according to the Hack machine + * language specification. The D and A in the language specification + * refer to CPU-resident registers, while M refers to the external + * memory location addressed by A, i.e. to Memory[A]. The inM input + * holds the value of this location. If the current instruction needs + * to write a value to M, the value is placed in outM, the address + * of the target location is placed in the addressM output, and the + * writeM control bit is asserted. (When writeM==0, any value may + * appear in outM). The outM and writeM outputs are combinational: + * they are affected instantaneously by the execution of the current + * instruction. The addressM and pc outputs are clocked: although they + * are affected by the execution of the current instruction, they commit + * to their new values only in the next time step. If reset==1 then the + * CPU jumps to address 0 (i.e. pc is set to 0 in next time step) rather + * than to the address resulting from executing the current instruction. + */ + +CHIP CPU { + + IN inM[16], // M value input (M = contents of RAM[A]) + instruction[16], // Instruction for execution + reset; // Signals whether to re-start the current + // program (reset==1) or continue executing + // the current program (reset==0). + + OUT outM[16], // M value output + writeM, // Write to M? + addressM[15], // Address in data memory (of M) + pc[15]; // address of next instruction + + PARTS: + + /* Instruction bits ixxaccccccdddjjj */ + + /* i[15]: 0 -> A-Instruction; 1 -> C-Instruction; */ + Id(in=instruction[15], out=selins); + Not(in=selins, out=selains); + Id(in=selins, out=selcins); + /* i[14..13]: don't care */ + /* i[12]: 0 -> load A into ALU; 1 -> load M into ALU; */ + Id(in=instruction[12], out=selaluinput); + /* i[11..6]: ALU configuration */ + /* i[5..3]: target memory select*/ + Id(in=instruction[5], out=sela); + Id(in=instruction[4], out=seld); + Id(in=instruction[3], out=selm); + /* i[2..0]: JMP configuration */ + Id(in=instruction[2], out=seljlt); + Id(in=instruction[1], out=seljeq); + Id(in=instruction[0], out=seljgt); + + /* If selin = 0 -> A-Instruction -> Address; if selin = 1 -> C-Instruction -> ALU output; */ + Mux16(a=instruction, b=aluout, sel=selins, out=amuxout); + + /* Load A register if it is an A-Instruction or if A is a dest register. */ + Or(a=selains, b=sela, out=loada); + ARegister(in=amuxout, load=loada, out=aout); + + /* Load D register if it is a C-Instruction and if D is selected. */ + And(a=selcins, b=seld, out=loadd); + DRegister(in=aluout, load=loadd, out=dout); + + /* Write M register if it is C-Instruction and if M is selected. */ + And(a=selcins, b=selm, out=writeM); + + /* If selaluinput = 0 input A into ALU, otherwise, load M into ALU. */ + Mux16(a=aout, b=inM, sel=selaluinput, out=mmuxout); + + ALU(x=dout, y=mmuxout, zx=instruction[11], nx=instruction[10], zy=instruction[9], ny=instruction[8], f=instruction[7], no=instruction[6], out=aluout, zr=zrout, ng=ngout); + /* + IN x[16], y[16], // 16-bit inputs zx, nx, zy, ny, f, no; + OUT out[16], // 16-bit output zr, // 1 if (out == 0), 0 otherwise ng; // 1 if (out < 0), 0 otherwise + */ + + /* Magic to decided whether we jump or not. */ + And(a=seljlt, b=ngout, out=seljumpjlt); + And(a=seljeq, b=zrout, out=seljumpjeq); + Nor(a=ngout, b=zrout, out=positiveout); + And(a=seljgt, b=positiveout, out=seljumpjgt); + + Or(a=seljumpjlt, b=seljumpjeq, out=seljump1); + Or(a=seljump1, b=seljumpjgt, out=seljump2); + And(a=seljump2, b=selcins, out=seljump); + + PC(in=aout, load=seljump, inc=true, reset=reset, out[0..14]=pc); + + Id16(in=aluout, out=outM); + Id16(in=aout, out[0..14]=addressM); +} diff --git a/projects/05/CPU.out b/projects/05/CPU.out new file mode 100644 index 0000000..95f17b5 --- /dev/null +++ b/projects/05/CPU.out @@ -0,0 +1,93 @@ +|time| inM | instruction |reset| outM |writeM |addre| pc |DRegiste| +|0+ | 0|0011000000111001| 0 | 0| 0 | 0| 0| 0 | +|1 | 0|0011000000111001| 0 | 0| 0 |12345| 1| 0 | +|1+ | 0|1110110000010000| 0 | 12345| 0 |12345| 1| 12345 | +|2 | 0|1110110000010000| 0 | 12345| 0 |12345| 2| 12345 | +|2+ | 0|0101101110100000| 0 | -1| 0 |12345| 2| 12345 | +|3 | 0|0101101110100000| 0 | -1| 0 |23456| 3| 12345 | +|3+ | 0|1110000111010000| 0 | 11111| 0 |23456| 3| 11111 | +|4 | 0|1110000111010000| 0 | 12345| 0 |23456| 4| 11111 | +|4+ | 0|0000001111101000| 0 | -11111| 0 |23456| 4| 11111 | +|5 | 0|0000001111101000| 0 | -11111| 0 | 1000| 5| 11111 | +|5+ | 0|1110001100001000| 0 | 11111| 1 | 1000| 5| 11111 | +|6 | 0|1110001100001000| 0 | 11111| 1 | 1000| 6| 11111 | +|6+ | 0|0000001111101001| 0 | -11111| 0 | 1000| 6| 11111 | +|7 | 0|0000001111101001| 0 | -11111| 0 | 1001| 7| 11111 | +|7+ | 0|1110001110011000| 0 | 11110| 1 | 1001| 7| 11110 | +|8 | 0|1110001110011000| 0 | 11109| 1 | 1001| 8| 11110 | +|8+ | 0|0000001111101000| 0 | -11110| 0 | 1001| 8| 11110 | +|9 | 0|0000001111101000| 0 | -11110| 0 | 1000| 9| 11110 | +|9+ | 11111|1111010011010000| 0 | -1| 0 | 1000| 9| -1 | +|10 | 11111|1111010011010000| 0 | -11112| 0 | 1000| 10| -1 | +|10+ | 11111|0000000000001110| 0 | 1000| 0 | 1000| 10| -1 | +|11 | 11111|0000000000001110| 0 | 14| 0 | 14| 11| -1 | +|11+ | 11111|1110001100000100| 0 | -1| 0 | 14| 11| -1 | +|12 | 11111|1110001100000100| 0 | -1| 0 | 14| 14| -1 | +|12+ | 11111|0000001111100111| 0 | 1| 0 | 14| 14| -1 | +|13 | 11111|0000001111100111| 0 | 1| 0 | 999| 15| -1 | +|13+ | 11111|1110110111100000| 0 | 1000| 0 | 999| 15| -1 | +|14 | 11111|1110110111100000| 0 | 1001| 0 | 1000| 16| -1 | +|14+ | 11111|1110001100001000| 0 | -1| 1 | 1000| 16| -1 | +|15 | 11111|1110001100001000| 0 | -1| 1 | 1000| 17| -1 | +|15+ | 11111|0000000000010101| 0 | 1000| 0 | 1000| 17| -1 | +|16 | 11111|0000000000010101| 0 | 21| 0 | 21| 18| -1 | +|16+ | 11111|1110011111000010| 0 | 0| 0 | 21| 18| -1 | +|17 | 11111|1110011111000010| 0 | 0| 0 | 21| 21| -1 | +|17+ | 11111|0000000000000010| 0 | 21| 0 | 21| 21| -1 | +|18 | 11111|0000000000000010| 0 | 2| 0 | 2| 22| -1 | +|18+ | 11111|1110000010010000| 0 | 1| 0 | 2| 22| 1 | +|19 | 11111|1110000010010000| 0 | 3| 0 | 2| 23| 1 | +|19+ | 11111|0000001111101000| 0 | -1| 0 | 2| 23| 1 | +|20 | 11111|0000001111101000| 0 | -1| 0 | 1000| 24| 1 | +|20+ | 11111|1110111010010000| 0 | -1| 0 | 1000| 24| -1 | +|21 | 11111|1110111010010000| 0 | -1| 0 | 1000| 25| -1 | +|21+ | 11111|1110001100000001| 0 | -1| 0 | 1000| 25| -1 | +|22 | 11111|1110001100000001| 0 | -1| 0 | 1000| 26| -1 | +|22+ | 11111|1110001100000010| 0 | -1| 0 | 1000| 26| -1 | +|23 | 11111|1110001100000010| 0 | -1| 0 | 1000| 27| -1 | +|23+ | 11111|1110001100000011| 0 | -1| 0 | 1000| 27| -1 | +|24 | 11111|1110001100000011| 0 | -1| 0 | 1000| 28| -1 | +|24+ | 11111|1110001100000100| 0 | -1| 0 | 1000| 28| -1 | +|25 | 11111|1110001100000100| 0 | -1| 0 | 1000| 1000| -1 | +|25+ | 11111|1110001100000101| 0 | -1| 0 | 1000| 1000| -1 | +|26 | 11111|1110001100000101| 0 | -1| 0 | 1000| 1000| -1 | +|26+ | 11111|1110001100000110| 0 | -1| 0 | 1000| 1000| -1 | +|27 | 11111|1110001100000110| 0 | -1| 0 | 1000| 1000| -1 | +|27+ | 11111|1110001100000111| 0 | -1| 0 | 1000| 1000| -1 | +|28 | 11111|1110001100000111| 0 | -1| 0 | 1000| 1000| -1 | +|28+ | 11111|1110101010010000| 0 | 0| 0 | 1000| 1000| 0 | +|29 | 11111|1110101010010000| 0 | 0| 0 | 1000| 1001| 0 | +|29+ | 11111|1110001100000001| 0 | 0| 0 | 1000| 1001| 0 | +|30 | 11111|1110001100000001| 0 | 0| 0 | 1000| 1002| 0 | +|30+ | 11111|1110001100000010| 0 | 0| 0 | 1000| 1002| 0 | +|31 | 11111|1110001100000010| 0 | 0| 0 | 1000| 1000| 0 | +|31+ | 11111|1110001100000011| 0 | 0| 0 | 1000| 1000| 0 | +|32 | 11111|1110001100000011| 0 | 0| 0 | 1000| 1000| 0 | +|32+ | 11111|1110001100000100| 0 | 0| 0 | 1000| 1000| 0 | +|33 | 11111|1110001100000100| 0 | 0| 0 | 1000| 1001| 0 | +|33+ | 11111|1110001100000101| 0 | 0| 0 | 1000| 1001| 0 | +|34 | 11111|1110001100000101| 0 | 0| 0 | 1000| 1002| 0 | +|34+ | 11111|1110001100000110| 0 | 0| 0 | 1000| 1002| 0 | +|35 | 11111|1110001100000110| 0 | 0| 0 | 1000| 1000| 0 | +|35+ | 11111|1110001100000111| 0 | 0| 0 | 1000| 1000| 0 | +|36 | 11111|1110001100000111| 0 | 0| 0 | 1000| 1000| 0 | +|36+ | 11111|1110111111010000| 0 | 1| 0 | 1000| 1000| 1 | +|37 | 11111|1110111111010000| 0 | 1| 0 | 1000| 1001| 1 | +|37+ | 11111|1110001100000001| 0 | 1| 0 | 1000| 1001| 1 | +|38 | 11111|1110001100000001| 0 | 1| 0 | 1000| 1000| 1 | +|38+ | 11111|1110001100000010| 0 | 1| 0 | 1000| 1000| 1 | +|39 | 11111|1110001100000010| 0 | 1| 0 | 1000| 1001| 1 | +|39+ | 11111|1110001100000011| 0 | 1| 0 | 1000| 1001| 1 | +|40 | 11111|1110001100000011| 0 | 1| 0 | 1000| 1000| 1 | +|40+ | 11111|1110001100000100| 0 | 1| 0 | 1000| 1000| 1 | +|41 | 11111|1110001100000100| 0 | 1| 0 | 1000| 1001| 1 | +|41+ | 11111|1110001100000101| 0 | 1| 0 | 1000| 1001| 1 | +|42 | 11111|1110001100000101| 0 | 1| 0 | 1000| 1000| 1 | +|42+ | 11111|1110001100000110| 0 | 1| 0 | 1000| 1000| 1 | +|43 | 11111|1110001100000110| 0 | 1| 0 | 1000| 1001| 1 | +|43+ | 11111|1110001100000111| 0 | 1| 0 | 1000| 1001| 1 | +|44 | 11111|1110001100000111| 0 | 1| 0 | 1000| 1000| 1 | +|44+ | 11111|1110001100000111| 1 | 1| 0 | 1000| 1000| 1 | +|45 | 11111|1110001100000111| 1 | 1| 0 | 1000| 0| 1 | +|45+ | 11111|0111111111111111| 0 | 1| 0 | 1000| 0| 1 | +|46 | 11111|0111111111111111| 0 | 1| 0 |32767| 1| 1 | diff --git a/projects/05/CPU.tst b/projects/05/CPU.tst new file mode 100644 index 0000000..98eee1c --- /dev/null +++ b/projects/05/CPU.tst @@ -0,0 +1,150 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/05/CPU.tst + +load CPU.hdl, +output-file CPU.out, +compare-to CPU.cmp, +output-list time%S0.4.0 inM%D0.6.0 instruction%B0.16.0 reset%B2.1.2 outM%D1.6.0 writeM%B3.1.3 addressM%D0.5.0 pc%D0.5.0 DRegister[]%D1.6.1; + + +set instruction %B0011000000111001, // @12345 +tick, output, tock, output; + +set instruction %B1110110000010000, // D=A +tick, output, tock, output; + +set instruction %B0101101110100000, // @23456 +tick, output, tock, output; + +set instruction %B1110000111010000, // D=A-D +tick, output, tock, output; + +set instruction %B0000001111101000, // @1000 +tick, output, tock, output; + +set instruction %B1110001100001000, // M=D +tick, output, tock, output; + +set instruction %B0000001111101001, // @1001 +tick, output, tock, output; + +set instruction %B1110001110011000, // MD=D-1 +tick, output, tock, output; + +set instruction %B0000001111101000, // @1000 +tick, output, tock, output; + +set instruction %B1111010011010000, // D=D-M +set inM 11111, +tick, output, tock, output; + +set instruction %B0000000000001110, // @14 +tick, output, tock, output; + +set instruction %B1110001100000100, // D;jlt +tick, output, tock, output; + +set instruction %B0000001111100111, // @999 +tick, output, tock, output; + +set instruction %B1110110111100000, // A=A+1 +tick, output, tock, output; + +set instruction %B1110001100001000, // M=D +tick, output, tock, output; + +set instruction %B0000000000010101, // @21 +tick, output, tock, output; + +set instruction %B1110011111000010, // D+1;jeq +tick, output, tock, output; + +set instruction %B0000000000000010, // @2 +tick, output, tock, output; + +set instruction %B1110000010010000, // D=D+A +tick, output, tock, output; + +set instruction %B0000001111101000, // @1000 +tick, output, tock, output; + +set instruction %B1110111010010000, // D=-1 +tick, output, tock, output; + +set instruction %B1110001100000001, // D;JGT +tick, output, tock, output; + +set instruction %B1110001100000010, // D;JEQ +tick, output, tock, output; + +set instruction %B1110001100000011, // D;JGE +tick, output, tock, output; + +set instruction %B1110001100000100, // D;JLT +tick, output, tock, output; + +set instruction %B1110001100000101, // D;JNE +tick, output, tock, output; + +set instruction %B1110001100000110, // D;JLE +tick, output, tock, output; + +set instruction %B1110001100000111, // D;JMP +tick, output, tock, output; + +set instruction %B1110101010010000, // D=0 +tick, output, tock, output; + +set instruction %B1110001100000001, // D;JGT +tick, output, tock, output; + +set instruction %B1110001100000010, // D;JEQ +tick, output, tock, output; + +set instruction %B1110001100000011, // D;JGE +tick, output, tock, output; + +set instruction %B1110001100000100, // D;JLT +tick, output, tock, output; + +set instruction %B1110001100000101, // D;JNE +tick, output, tock, output; + +set instruction %B1110001100000110, // D;JLE +tick, output, tock, output; + +set instruction %B1110001100000111, // D;JMP +tick, output, tock, output; + +set instruction %B1110111111010000, // D=1 +tick, output, tock, output; + +set instruction %B1110001100000001, // D;JGT +tick, output, tock, output; + +set instruction %B1110001100000010, // D;JEQ +tick, output, tock, output; + +set instruction %B1110001100000011, // D;JGE +tick, output, tock, output; + +set instruction %B1110001100000100, // D;JLT +tick, output, tock, output; + +set instruction %B1110001100000101, // D;JNE +tick, output, tock, output; + +set instruction %B1110001100000110, // D;JLE +tick, output, tock, output; + +set instruction %B1110001100000111, // D;JMP +tick, output, tock, output; + +set reset 1; +tick, output, tock, output; + +set instruction %B0111111111111111, // @32767 +set reset 0; +tick, output, tock, output; diff --git a/projects/05/Computer.hdl b/projects/05/Computer.hdl new file mode 100644 index 0000000..ada303b --- /dev/null +++ b/projects/05/Computer.hdl @@ -0,0 +1,26 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/05/Computer.hdl + +/** + * The HACK computer, including CPU, ROM and RAM. + * When reset is 0, the program stored in the computer's ROM executes. + * When reset is 1, the execution of the program restarts. + * Thus, to start a program's execution, reset must be pushed "up" (1) + * and "down" (0). From this point onward the user is at the mercy of + * the software. In particular, depending on the program's code, the + * screen may show some output and the user may be able to interact + * with the computer via the keyboard. + */ + +CHIP Computer { + + IN reset; + + PARTS: + + ROM32K(address=pc, out=instruction); + Memory(in=outm, load=writem, address=addressm, out=memout); + CPU(inM=memout, instruction=instruction, reset=reset, outM=outm, writeM=writem, addressM=addressm, pc=pc); +} diff --git a/projects/05/ComputerAdd-external.cmp b/projects/05/ComputerAdd-external.cmp new file mode 100644 index 0000000..a3a8eaf --- /dev/null +++ b/projects/05/ComputerAdd-external.cmp @@ -0,0 +1,15 @@ +| time |reset|RAM16K[0]|RAM16K[1]|RAM16K[2]| +| 0 | 0 | 0 | 0 | 0 | +| 1 | 0 | 0 | 0 | 0 | +| 2 | 0 | 0 | 0 | 0 | +| 3 | 0 | 0 | 0 | 0 | +| 4 | 0 | 0 | 0 | 0 | +| 5 | 0 | 0 | 0 | 0 | +| 6 | 0 | 5 | 0 | 0 | +| 7 | 1 | 0 | 0 | 0 | +| 8 | 0 | 0 | 0 | 0 | +| 9 | 0 | 0 | 0 | 0 | +| 10 | 0 | 0 | 0 | 0 | +| 11 | 0 | 0 | 0 | 0 | +| 12 | 0 | 0 | 0 | 0 | +| 13 | 0 | 5 | 0 | 0 | diff --git a/projects/05/ComputerAdd-external.out b/projects/05/ComputerAdd-external.out new file mode 100644 index 0000000..2407eca --- /dev/null +++ b/projects/05/ComputerAdd-external.out @@ -0,0 +1,15 @@ +| time |reset|RAM16K[0]|RAM16K[1]|RAM16K[2]| +| 0 | 0 | 0 | 0 | 0 | +| 1 | 0 | 0 | 0 | 0 | +| 2 | 0 | 0 | 0 | 0 | +| 3 | 0 | 0 | 0 | 0 | +| 4 | 0 | 0 | 0 | 0 | +| 5 | 0 | 0 | 0 | 0 | +| 6 | 0 | 5 | 0 | 0 | +| 7 | 1 | 0 | 0 | 0 | +| 8 | 0 | 0 | 0 | 0 | +| 9 | 0 | 0 | 0 | 0 | +| 10 | 0 | 0 | 0 | 0 | +| 11 | 0 | 0 | 0 | 0 | +| 12 | 0 | 0 | 0 | 0 | +| 13 | 0 | 5 | 0 | 0 | diff --git a/projects/05/ComputerAdd-external.tst b/projects/05/ComputerAdd-external.tst new file mode 100644 index 0000000..09cc1a7 --- /dev/null +++ b/projects/05/ComputerAdd-external.tst @@ -0,0 +1,32 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/05/ComputerAdd-external.tst + +load Computer.hdl, +output-file ComputerAdd-external.out, +compare-to ComputerAdd-external.cmp, +output-list time%S1.4.1 reset%B2.1.2 RAM16K[0]%D1.7.1 RAM16K[1]%D1.7.1 RAM16K[2]%D1.7.1; + +// Load a program written in the Hack machine language. +// The program adds the two constants 2 and 3 and writes the result in RAM[0]. +ROM32K load Add.hack, +output; + +// First run (at the beginning PC=0) +repeat 6 { + tick, tock, output; +} + +// Reset the PC +set reset 1, +set RAM16K[0] 0, +tick, tock, output; + + +// Second run, to check that the PC was reset correctly. +set reset 0, + +repeat 6 { + tick, tock, output; +} diff --git a/projects/05/ComputerAdd.cmp b/projects/05/ComputerAdd.cmp new file mode 100644 index 0000000..f295464 --- /dev/null +++ b/projects/05/ComputerAdd.cmp @@ -0,0 +1,15 @@ +| time |reset|ARegister|DRegister|PC[]|RAM16K[0]|RAM16K[1]|RAM16K[2]| +| 0 | 0 | 0 | 0 | 0| 0 | 0 | 0 | +| 1 | 0 | 2 | 0 | 1| 0 | 0 | 0 | +| 2 | 0 | 2 | 2 | 2| 0 | 0 | 0 | +| 3 | 0 | 3 | 2 | 3| 0 | 0 | 0 | +| 4 | 0 | 3 | 5 | 4| 0 | 0 | 0 | +| 5 | 0 | 0 | 5 | 5| 0 | 0 | 0 | +| 6 | 0 | 0 | 5 | 6| 5 | 0 | 0 | +| 7 | 1 | 0 | 5 | 0| 0 | 0 | 0 | +| 8 | 0 | 2 | 5 | 1| 0 | 0 | 0 | +| 9 | 0 | 2 | 2 | 2| 0 | 0 | 0 | +| 10 | 0 | 3 | 2 | 3| 0 | 0 | 0 | +| 11 | 0 | 3 | 5 | 4| 0 | 0 | 0 | +| 12 | 0 | 0 | 5 | 5| 0 | 0 | 0 | +| 13 | 0 | 0 | 5 | 6| 5 | 0 | 0 | diff --git a/projects/05/ComputerAdd.out b/projects/05/ComputerAdd.out new file mode 100644 index 0000000..5748770 --- /dev/null +++ b/projects/05/ComputerAdd.out @@ -0,0 +1,15 @@ +| time |reset|ARegister|DRegister|PC[]|RAM16K[0]|RAM16K[1]|RAM16K[2]| +| 0 | 0 | 0 | 0 | 0| 0 | 0 | 0 | +| 1 | 0 | 2 | 0 | 1| 0 | 0 | 0 | +| 2 | 0 | 2 | 2 | 2| 0 | 0 | 0 | +| 3 | 0 | 3 | 2 | 3| 0 | 0 | 0 | +| 4 | 0 | 3 | 5 | 4| 0 | 0 | 0 | +| 5 | 0 | 0 | 5 | 5| 0 | 0 | 0 | +| 6 | 0 | 0 | 5 | 6| 5 | 0 | 0 | +| 7 | 1 | 0 | 5 | 0| 0 | 0 | 0 | +| 8 | 0 | 2 | 5 | 1| 0 | 0 | 0 | +| 9 | 0 | 2 | 2 | 2| 0 | 0 | 0 | +| 10 | 0 | 3 | 2 | 3| 0 | 0 | 0 | +| 11 | 0 | 3 | 5 | 4| 0 | 0 | 0 | +| 12 | 0 | 0 | 5 | 5| 0 | 0 | 0 | +| 13 | 0 | 0 | 5 | 6| 5 | 0 | 0 | diff --git a/projects/05/ComputerAdd.tst b/projects/05/ComputerAdd.tst new file mode 100644 index 0000000..27f4411 --- /dev/null +++ b/projects/05/ComputerAdd.tst @@ -0,0 +1,32 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/05/ComputerAdd.tst + +load Computer.hdl, +output-file ComputerAdd.out, +compare-to ComputerAdd.cmp, +output-list time%S1.4.1 reset%B2.1.2 ARegister[0]%D1.7.1 DRegister[0]%D1.7.1 PC[]%D0.4.0 RAM16K[0]%D1.7.1 RAM16K[1]%D1.7.1 RAM16K[2]%D1.7.1; + +// Load a program written in the Hack machine language. +// The program adds the two constants 2 and 3 and writes the result in RAM[0]. +ROM32K load Add.hack, +output; + +// First run (at the beginning PC=0) +repeat 6 { + tick, tock, output; +} + +// Reset the PC +set reset 1, +set RAM16K[0] 0, +tick, tock, output; + + +// Second run, to check that the PC was reset correctly. +set reset 0, + +repeat 6 { + tick, tock, output; +} diff --git a/projects/05/ComputerMax-external.cmp b/projects/05/ComputerMax-external.cmp new file mode 100644 index 0000000..f864733 --- /dev/null +++ b/projects/05/ComputerMax-external.cmp @@ -0,0 +1,28 @@ +| time |reset|RAM16K[0]|RAM16K[1]|RAM16K[2]| +| 0 | 0 | 3 | 5 | 0 | +| 1 | 0 | 3 | 5 | 0 | +| 2 | 0 | 3 | 5 | 0 | +| 3 | 0 | 3 | 5 | 0 | +| 4 | 0 | 3 | 5 | 0 | +| 5 | 0 | 3 | 5 | 0 | +| 6 | 0 | 3 | 5 | 0 | +| 7 | 0 | 3 | 5 | 0 | +| 8 | 0 | 3 | 5 | 0 | +| 9 | 0 | 3 | 5 | 0 | +| 10 | 0 | 3 | 5 | 0 | +| 11 | 0 | 3 | 5 | 0 | +| 12 | 0 | 3 | 5 | 5 | +| 13 | 0 | 3 | 5 | 5 | +| 14 | 0 | 3 | 5 | 5 | +| 15 | 1 | 3 | 5 | 5 | +| 15 | 0 | 23456 | 12345 | 5 | +| 16 | 0 | 23456 | 12345 | 5 | +| 17 | 0 | 23456 | 12345 | 5 | +| 18 | 0 | 23456 | 12345 | 5 | +| 19 | 0 | 23456 | 12345 | 5 | +| 20 | 0 | 23456 | 12345 | 5 | +| 21 | 0 | 23456 | 12345 | 5 | +| 22 | 0 | 23456 | 12345 | 5 | +| 23 | 0 | 23456 | 12345 | 5 | +| 24 | 0 | 23456 | 12345 | 5 | +| 25 | 0 | 23456 | 12345 | 23456 | diff --git a/projects/05/ComputerMax-external.out b/projects/05/ComputerMax-external.out new file mode 100644 index 0000000..4a6dff5 --- /dev/null +++ b/projects/05/ComputerMax-external.out @@ -0,0 +1,28 @@ +| time |reset|RAM16K[0]|RAM16K[1]|RAM16K[2]| +| 0 | 0 | 3 | 5 | 0 | +| 1 | 0 | 3 | 5 | 0 | +| 2 | 0 | 3 | 5 | 0 | +| 3 | 0 | 3 | 5 | 0 | +| 4 | 0 | 3 | 5 | 0 | +| 5 | 0 | 3 | 5 | 0 | +| 6 | 0 | 3 | 5 | 0 | +| 7 | 0 | 3 | 5 | 0 | +| 8 | 0 | 3 | 5 | 0 | +| 9 | 0 | 3 | 5 | 0 | +| 10 | 0 | 3 | 5 | 0 | +| 11 | 0 | 3 | 5 | 0 | +| 12 | 0 | 3 | 5 | 5 | +| 13 | 0 | 3 | 5 | 5 | +| 14 | 0 | 3 | 5 | 5 | +| 15 | 1 | 3 | 5 | 5 | +| 15 | 0 | 23456 | 12345 | 5 | +| 16 | 0 | 23456 | 12345 | 5 | +| 17 | 0 | 23456 | 12345 | 5 | +| 18 | 0 | 23456 | 12345 | 5 | +| 19 | 0 | 23456 | 12345 | 5 | +| 20 | 0 | 23456 | 12345 | 5 | +| 21 | 0 | 23456 | 12345 | 5 | +| 22 | 0 | 23456 | 12345 | 5 | +| 23 | 0 | 23456 | 12345 | 5 | +| 24 | 0 | 23456 | 12345 | 5 | +| 25 | 0 | 23456 | 12345 | 23456 | diff --git a/projects/05/ComputerMax-external.tst b/projects/05/ComputerMax-external.tst new file mode 100644 index 0000000..52b6bef --- /dev/null +++ b/projects/05/ComputerMax-external.tst @@ -0,0 +1,38 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/05/ComputerMax-external.tst + +load Computer.hdl, +output-file ComputerMax-external.out, +compare-to ComputerMax-external.cmp, +output-list time%S1.4.1 reset%B2.1.2 RAM16K[0]%D1.7.1 RAM16K[1]%D1.7.1 RAM16K[2]%D1.7.1; + +// Load a program written in the Hack machine language. +// The program computes the maximum of RAM[0] and RAM[1] +// and writes the result in RAM[2]. +ROM32K load Max.hack, + +// first run: compute max(3,5) +set RAM16K[0] 3, +set RAM16K[1] 5, +output; + +repeat 14 { + tick, tock, output; +} + +// reset the PC +set reset 1, +tick, tock, output; + +// second run: compute max(23456,12345) +set reset 0, +set RAM16K[0] 23456, +set RAM16K[1] 12345, +output; + +// The run on these inputs needs less cycles (different branching) +repeat 10 { + tick, tock, output; +} diff --git a/projects/05/ComputerMax.cmp b/projects/05/ComputerMax.cmp new file mode 100644 index 0000000..42276cd --- /dev/null +++ b/projects/05/ComputerMax.cmp @@ -0,0 +1,28 @@ +| time |reset|ARegister|DRegister|PC[]|RAM16K[0]|RAM16K[1]|RAM16K[2]| +| 0 | 0 | 0 | 0 | 0| 3 | 5 | 0 | +| 1 | 0 | 0 | 0 | 1| 3 | 5 | 0 | +| 2 | 0 | 0 | 3 | 2| 3 | 5 | 0 | +| 3 | 0 | 1 | 3 | 3| 3 | 5 | 0 | +| 4 | 0 | 1 | -2 | 4| 3 | 5 | 0 | +| 5 | 0 | 10 | -2 | 5| 3 | 5 | 0 | +| 6 | 0 | 10 | -2 | 6| 3 | 5 | 0 | +| 7 | 0 | 1 | -2 | 7| 3 | 5 | 0 | +| 8 | 0 | 1 | 5 | 8| 3 | 5 | 0 | +| 9 | 0 | 12 | 5 | 9| 3 | 5 | 0 | +| 10 | 0 | 12 | 5 | 12| 3 | 5 | 0 | +| 11 | 0 | 2 | 5 | 13| 3 | 5 | 0 | +| 12 | 0 | 2 | 5 | 14| 3 | 5 | 5 | +| 13 | 0 | 14 | 5 | 15| 3 | 5 | 5 | +| 14 | 0 | 14 | 5 | 14| 3 | 5 | 5 | +| 15 | 1 | 14 | 5 | 0| 3 | 5 | 5 | +| 15 | 0 | 14 | 5 | 0| 23456 | 12345 | 5 | +| 16 | 0 | 0 | 5 | 1| 23456 | 12345 | 5 | +| 17 | 0 | 0 | 23456 | 2| 23456 | 12345 | 5 | +| 18 | 0 | 1 | 23456 | 3| 23456 | 12345 | 5 | +| 19 | 0 | 1 | 11111 | 4| 23456 | 12345 | 5 | +| 20 | 0 | 10 | 11111 | 5| 23456 | 12345 | 5 | +| 21 | 0 | 10 | 11111 | 10| 23456 | 12345 | 5 | +| 22 | 0 | 0 | 11111 | 11| 23456 | 12345 | 5 | +| 23 | 0 | 0 | 23456 | 12| 23456 | 12345 | 5 | +| 24 | 0 | 2 | 23456 | 13| 23456 | 12345 | 5 | +| 25 | 0 | 2 | 23456 | 14| 23456 | 12345 | 23456 | diff --git a/projects/05/ComputerMax.tst b/projects/05/ComputerMax.tst new file mode 100644 index 0000000..e090754 --- /dev/null +++ b/projects/05/ComputerMax.tst @@ -0,0 +1,39 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/05/ComputerMax.tst + +load Computer.hdl, +output-file ComputerMax.out, +compare-to ComputerMax.cmp, +output-list time%S1.4.1 reset%B2.1.2 ARegister[]%D1.7.1 DRegister[]%D1.7.1 PC[]%D0.4.0 RAM16K[0]%D1.7.1 RAM16K[1]%D1.7.1 RAM16K[2]%D1.7.1; + +// Load a program written in the Hack machine language. +// The program computes the maximum of RAM[0] and RAM[1] +// and writes the result in RAM[2]. + +ROM32K load Max.hack, + +// first run: compute max(3,5) +set RAM16K[0] 3, +set RAM16K[1] 5, +output; + +repeat 14 { + tick, tock, output; +} + +// reset the PC +set reset 1, +tick, tock, output; + +// second run: compute max(23456,12345) +set reset 0, +set RAM16K[0] 23456, +set RAM16K[1] 12345, +output; + +// The run on these inputs needs less cycles (different branching) +repeat 10 { + tick, tock, output; +} diff --git a/projects/05/ComputerRect-external.cmp b/projects/05/ComputerRect-external.cmp new file mode 100644 index 0000000..f276922 --- /dev/null +++ b/projects/05/ComputerRect-external.cmp @@ -0,0 +1,65 @@ +| time | +| 0 | +| 1 | +| 2 | +| 3 | +| 4 | +| 5 | +| 6 | +| 7 | +| 8 | +| 9 | +| 10 | +| 11 | +| 12 | +| 13 | +| 14 | +| 15 | +| 16 | +| 17 | +| 18 | +| 19 | +| 20 | +| 21 | +| 22 | +| 23 | +| 24 | +| 25 | +| 26 | +| 27 | +| 28 | +| 29 | +| 30 | +| 31 | +| 32 | +| 33 | +| 34 | +| 35 | +| 36 | +| 37 | +| 38 | +| 39 | +| 40 | +| 41 | +| 42 | +| 43 | +| 44 | +| 45 | +| 46 | +| 47 | +| 48 | +| 49 | +| 50 | +| 51 | +| 52 | +| 53 | +| 54 | +| 55 | +| 56 | +| 57 | +| 58 | +| 59 | +| 60 | +| 61 | +| 62 | +| 63 | diff --git a/projects/05/ComputerRect-external.tst b/projects/05/ComputerRect-external.tst new file mode 100644 index 0000000..f9102f7 --- /dev/null +++ b/projects/05/ComputerRect-external.tst @@ -0,0 +1,26 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/05/ComputerRect-external.tst + +load Computer.hdl, +output-file ComputerRect-external.out, +compare-to ComputerRect-external.cmp, +output-list time%S1.4.1; + +// Load a program written in the Hack machine language. +// The program draws a rectangle of width 16 pixels and +// length RAM[0] at the top left of the screen. +ROM32K load Rect.hack, + +echo "Before you run this script, select the 'Screen' option from the 'View' menu"; + +echo "A small rectangle should be drawn at the top left of the screen (the 'Screen' option of the 'View' menu should be selected.)"; + +// draw a rectangle 16 pixels wide and 4 pixels long +set RAM16K[0] 4, +output; + +repeat 63 { + tick, tock, output; +} diff --git a/projects/05/ComputerRect.cmp b/projects/05/ComputerRect.cmp new file mode 100644 index 0000000..a6b5cc9 --- /dev/null +++ b/projects/05/ComputerRect.cmp @@ -0,0 +1,65 @@ +| time |ARegister|DRegister|PC[]|RAM16K[0]|RAM16K[1]|RAM16K[2]| +| 0 | 0 | 0 | 0| 4 | 0 | 0 | +| 1 | 0 | 0 | 1| 4 | 0 | 0 | +| 2 | 0 | 4 | 2| 4 | 0 | 0 | +| 3 | 23 | 4 | 3| 4 | 0 | 0 | +| 4 | 23 | 4 | 4| 4 | 0 | 0 | +| 5 | 16 | 4 | 5| 4 | 0 | 0 | +| 6 | 16 | 4 | 6| 4 | 0 | 0 | +| 7 | 16384 | 4 | 7| 4 | 0 | 0 | +| 8 | 16384 | 16384 | 8| 4 | 0 | 0 | +| 9 | 17 | 16384 | 9| 4 | 0 | 0 | +| 10 | 17 | 16384 | 10| 4 | 0 | 0 | +| 11 | 17 | 16384 | 11| 4 | 0 | 0 | +| 12 | 16384 | 16384 | 12| 4 | 0 | 0 | +| 13 | 16384 | 16384 | 13| 4 | 0 | 0 | +| 14 | 17 | 16384 | 14| 4 | 0 | 0 | +| 15 | 17 | 16384 | 15| 4 | 0 | 0 | +| 16 | 32 | 16384 | 16| 4 | 0 | 0 | +| 17 | 32 | 16416 | 17| 4 | 0 | 0 | +| 18 | 17 | 16416 | 18| 4 | 0 | 0 | +| 19 | 17 | 16416 | 19| 4 | 0 | 0 | +| 20 | 16 | 16416 | 20| 4 | 0 | 0 | +| 21 | 16 | 3 | 21| 4 | 0 | 0 | +| 22 | 10 | 3 | 22| 4 | 0 | 0 | +| 23 | 10 | 3 | 10| 4 | 0 | 0 | +| 24 | 17 | 3 | 11| 4 | 0 | 0 | +| 25 | 16416 | 3 | 12| 4 | 0 | 0 | +| 26 | 16416 | 3 | 13| 4 | 0 | 0 | +| 27 | 17 | 3 | 14| 4 | 0 | 0 | +| 28 | 17 | 16416 | 15| 4 | 0 | 0 | +| 29 | 32 | 16416 | 16| 4 | 0 | 0 | +| 30 | 32 | 16448 | 17| 4 | 0 | 0 | +| 31 | 17 | 16448 | 18| 4 | 0 | 0 | +| 32 | 17 | 16448 | 19| 4 | 0 | 0 | +| 33 | 16 | 16448 | 20| 4 | 0 | 0 | +| 34 | 16 | 2 | 21| 4 | 0 | 0 | +| 35 | 10 | 2 | 22| 4 | 0 | 0 | +| 36 | 10 | 2 | 10| 4 | 0 | 0 | +| 37 | 17 | 2 | 11| 4 | 0 | 0 | +| 38 | 16448 | 2 | 12| 4 | 0 | 0 | +| 39 | 16448 | 2 | 13| 4 | 0 | 0 | +| 40 | 17 | 2 | 14| 4 | 0 | 0 | +| 41 | 17 | 16448 | 15| 4 | 0 | 0 | +| 42 | 32 | 16448 | 16| 4 | 0 | 0 | +| 43 | 32 | 16480 | 17| 4 | 0 | 0 | +| 44 | 17 | 16480 | 18| 4 | 0 | 0 | +| 45 | 17 | 16480 | 19| 4 | 0 | 0 | +| 46 | 16 | 16480 | 20| 4 | 0 | 0 | +| 47 | 16 | 1 | 21| 4 | 0 | 0 | +| 48 | 10 | 1 | 22| 4 | 0 | 0 | +| 49 | 10 | 1 | 10| 4 | 0 | 0 | +| 50 | 17 | 1 | 11| 4 | 0 | 0 | +| 51 | 16480 | 1 | 12| 4 | 0 | 0 | +| 52 | 16480 | 1 | 13| 4 | 0 | 0 | +| 53 | 17 | 1 | 14| 4 | 0 | 0 | +| 54 | 17 | 16480 | 15| 4 | 0 | 0 | +| 55 | 32 | 16480 | 16| 4 | 0 | 0 | +| 56 | 32 | 16512 | 17| 4 | 0 | 0 | +| 57 | 17 | 16512 | 18| 4 | 0 | 0 | +| 58 | 17 | 16512 | 19| 4 | 0 | 0 | +| 59 | 16 | 16512 | 20| 4 | 0 | 0 | +| 60 | 16 | 0 | 21| 4 | 0 | 0 | +| 61 | 10 | 0 | 22| 4 | 0 | 0 | +| 62 | 10 | 0 | 23| 4 | 0 | 0 | +| 63 | 23 | 0 | 24| 4 | 0 | 0 | diff --git a/projects/05/ComputerRect.out b/projects/05/ComputerRect.out new file mode 100644 index 0000000..a6b3965 --- /dev/null +++ b/projects/05/ComputerRect.out @@ -0,0 +1,65 @@ +| time |ARegister|DRegister|PC[]|RAM16K[0]|RAM16K[1]|RAM16K[2]| +| 0 | 0 | 0 | 0| 4 | 0 | 0 | +| 1 | 0 | 0 | 1| 4 | 0 | 0 | +| 2 | 0 | 4 | 2| 4 | 0 | 0 | +| 3 | 23 | 4 | 3| 4 | 0 | 0 | +| 4 | 23 | 4 | 4| 4 | 0 | 0 | +| 5 | 16 | 4 | 5| 4 | 0 | 0 | +| 6 | 16 | 4 | 6| 4 | 0 | 0 | +| 7 | 16384 | 4 | 7| 4 | 0 | 0 | +| 8 | 16384 | 16384 | 8| 4 | 0 | 0 | +| 9 | 17 | 16384 | 9| 4 | 0 | 0 | +| 10 | 17 | 16384 | 10| 4 | 0 | 0 | +| 11 | 17 | 16384 | 11| 4 | 0 | 0 | +| 12 | 16384 | 16384 | 12| 4 | 0 | 0 | +| 13 | 16384 | 16384 | 13| 4 | 0 | 0 | +| 14 | 17 | 16384 | 14| 4 | 0 | 0 | +| 15 | 17 | 16384 | 15| 4 | 0 | 0 | +| 16 | 32 | 16384 | 16| 4 | 0 | 0 | +| 17 | 32 | 16416 | 17| 4 | 0 | 0 | +| 18 | 17 | 16416 | 18| 4 | 0 | 0 | +| 19 | 17 | 16416 | 19| 4 | 0 | 0 | +| 20 | 16 | 16416 | 20| 4 | 0 | 0 | +| 21 | 16 | 3 | 21| 4 | 0 | 0 | +| 22 | 10 | 3 | 22| 4 | 0 | 0 | +| 23 | 10 | 3 | 10| 4 | 0 | 0 | +| 24 | 17 | 3 | 11| 4 | 0 | 0 | +| 25 | 16416 | 3 | 12| 4 | 0 | 0 | +| 26 | 16416 | 3 | 13| 4 | 0 | 0 | +| 27 | 17 | 3 | 14| 4 | 0 | 0 | +| 28 | 17 | 16416 | 15| 4 | 0 | 0 | +| 29 | 32 | 16416 | 16| 4 | 0 | 0 | +| 30 | 32 | 16448 | 17| 4 | 0 | 0 | +| 31 | 17 | 16448 | 18| 4 | 0 | 0 | +| 32 | 17 | 16448 | 19| 4 | 0 | 0 | +| 33 | 16 | 16448 | 20| 4 | 0 | 0 | +| 34 | 16 | 2 | 21| 4 | 0 | 0 | +| 35 | 10 | 2 | 22| 4 | 0 | 0 | +| 36 | 10 | 2 | 10| 4 | 0 | 0 | +| 37 | 17 | 2 | 11| 4 | 0 | 0 | +| 38 | 16448 | 2 | 12| 4 | 0 | 0 | +| 39 | 16448 | 2 | 13| 4 | 0 | 0 | +| 40 | 17 | 2 | 14| 4 | 0 | 0 | +| 41 | 17 | 16448 | 15| 4 | 0 | 0 | +| 42 | 32 | 16448 | 16| 4 | 0 | 0 | +| 43 | 32 | 16480 | 17| 4 | 0 | 0 | +| 44 | 17 | 16480 | 18| 4 | 0 | 0 | +| 45 | 17 | 16480 | 19| 4 | 0 | 0 | +| 46 | 16 | 16480 | 20| 4 | 0 | 0 | +| 47 | 16 | 1 | 21| 4 | 0 | 0 | +| 48 | 10 | 1 | 22| 4 | 0 | 0 | +| 49 | 10 | 1 | 10| 4 | 0 | 0 | +| 50 | 17 | 1 | 11| 4 | 0 | 0 | +| 51 | 16480 | 1 | 12| 4 | 0 | 0 | +| 52 | 16480 | 1 | 13| 4 | 0 | 0 | +| 53 | 17 | 1 | 14| 4 | 0 | 0 | +| 54 | 17 | 16480 | 15| 4 | 0 | 0 | +| 55 | 32 | 16480 | 16| 4 | 0 | 0 | +| 56 | 32 | 16512 | 17| 4 | 0 | 0 | +| 57 | 17 | 16512 | 18| 4 | 0 | 0 | +| 58 | 17 | 16512 | 19| 4 | 0 | 0 | +| 59 | 16 | 16512 | 20| 4 | 0 | 0 | +| 60 | 16 | 0 | 21| 4 | 0 | 0 | +| 61 | 10 | 0 | 22| 4 | 0 | 0 | +| 62 | 10 | 0 | 23| 4 | 0 | 0 | +| 63 | 23 | 0 | 24| 4 | 0 | 0 | diff --git a/projects/05/ComputerRect.tst b/projects/05/ComputerRect.tst new file mode 100644 index 0000000..b1e2126 --- /dev/null +++ b/projects/05/ComputerRect.tst @@ -0,0 +1,26 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/05/ComputerRect.tst + +load Computer.hdl, +output-file ComputerRect.out, +compare-to ComputerRect.cmp, +output-list time%S1.4.1 ARegister[]%D1.7.1 DRegister[]%D1.7.1 PC[]%D0.4.0 RAM16K[0]%D1.7.1 RAM16K[1]%D1.7.1 RAM16K[2]%D1.7.1; + +// Load a program written in the Hack machine language. +// The program draws a rectangle of width 16 pixels and +// length RAM[0] at the top left of the screen. +ROM32K load Rect.hack, + +echo "Before you run this script, select the 'Screen' option from the 'View' menu"; + +echo "A small rectangle should be drawn at the top left of the screen (the 'Screen' option of the 'View' menu should be selected.)"; + +// Draws a rectangle 16 pixels wide and 4 pixels long +set RAM16K[0] 4, +output; + +repeat 63 { + tick, tock, output; +} diff --git a/projects/05/Id.hdl b/projects/05/Id.hdl new file mode 100644 index 0000000..620dbb0 --- /dev/null +++ b/projects/05/Id.hdl @@ -0,0 +1,10 @@ + +CHIP Id { + IN in; + OUT out; + + PARTS: + + Not(in=in, out=notin); + Not(in=notin, out=out); +} diff --git a/projects/05/Id16.hdl b/projects/05/Id16.hdl new file mode 100644 index 0000000..d000554 --- /dev/null +++ b/projects/05/Id16.hdl @@ -0,0 +1,10 @@ + +CHIP Id16 { + IN in[16]; + OUT out[16]; + + PARTS: + + Not16(in=in, out=notin); + Not16(in=notin, out=out); +} diff --git a/projects/05/Max.hack b/projects/05/Max.hack new file mode 100644 index 0000000..2e04a8d --- /dev/null +++ b/projects/05/Max.hack @@ -0,0 +1,16 @@ +0000000000000000 +1111110000010000 +0000000000000001 +1111010011010000 +0000000000001010 +1110001100000001 +0000000000000001 +1111110000010000 +0000000000001100 +1110101010000111 +0000000000000000 +1111110000010000 +0000000000000010 +1110001100001000 +0000000000001110 +1110101010000111 diff --git a/projects/05/Memory.cmp b/projects/05/Memory.cmp new file mode 100644 index 0000000..613d171 --- /dev/null +++ b/projects/05/Memory.cmp @@ -0,0 +1,54 @@ +| in |load | address | out | +| -1 | 1 | 000000000000000 | 0 | +| -1 | 1 | 000000000000000 | -1 | +| 9999 | 0 | 000000000000000 | -1 | +| 9999 | 0 | 000000000000000 | -1 | +| 9999 | 0 | 010000000000000 | 0 | +| 9999 | 0 | 100000000000000 | 0 | +| 2222 | 1 | 010000000000000 | 0 | +| 2222 | 1 | 010000000000000 | 2222 | +| 9999 | 0 | 010000000000000 | 2222 | +| 9999 | 0 | 010000000000000 | 2222 | +| 9999 | 0 | 000000000000000 | -1 | +| 9999 | 0 | 100000000000000 | 0 | +| 9999 | 0 | 000000000000001 | 0 | +| 9999 | 0 | 000000000000010 | 0 | +| 9999 | 0 | 000000000000100 | 0 | +| 9999 | 0 | 000000000001000 | 0 | +| 9999 | 0 | 000000000010000 | 0 | +| 9999 | 0 | 000000000100000 | 0 | +| 9999 | 0 | 000000001000000 | 0 | +| 9999 | 0 | 000000010000000 | 0 | +| 9999 | 0 | 000000100000000 | 0 | +| 9999 | 0 | 000001000000000 | 0 | +| 9999 | 0 | 000010000000000 | 0 | +| 9999 | 0 | 000100000000000 | 0 | +| 9999 | 0 | 001000000000000 | 0 | +| 9999 | 0 | 010000000000000 | 2222 | +| 1234 | 1 | 001001000110100 | 0 | +| 1234 | 1 | 001001000110100 | 1234 | +| 1234 | 0 | 010001000110100 | 0 | +| 1234 | 0 | 110001000110100 | 0 | +| 2345 | 1 | 010001101000101 | 0 | +| 2345 | 1 | 010001101000101 | 2345 | +| 2345 | 0 | 000001101000101 | 0 | +| 2345 | 0 | 100001101000101 | 0 | +| 2345 | 0 | 110000000000000 | 75 | +| -1 | 1 | 100111111001111 | -1 | +| -1 | 1 | 101000001001111 | -1 | +| -1 | 1 | 000111111001111 | 0 | +| -1 | 1 | 010111111001111 | 0 | +| -1 | 0 | 100111111001110 | 0 | +| -1 | 0 | 100111111001101 | 0 | +| -1 | 0 | 100111111001011 | 0 | +| -1 | 0 | 100111111000111 | 0 | +| -1 | 0 | 100111111011111 | 0 | +| -1 | 0 | 100111111101111 | 0 | +| -1 | 0 | 100111110001111 | 0 | +| -1 | 0 | 100111101001111 | 0 | +| -1 | 0 | 100111011001111 | 0 | +| -1 | 0 | 100110111001111 | 0 | +| -1 | 0 | 100101111001111 | 0 | +| -1 | 0 | 100011111001111 | 0 | +| -1 | 0 | 101111111001111 | 0 | +| -1 | 0 | 110000000000000 | 89 | diff --git a/projects/05/Memory.hdl b/projects/05/Memory.hdl new file mode 100644 index 0000000..44427ff --- /dev/null +++ b/projects/05/Memory.hdl @@ -0,0 +1,42 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/05/Memory.hdl + +/** + * The complete address space of the Hack computer's memory, + * including RAM and memory-mapped I/O. + * The chip facilitates read and write operations, as follows: + * Read: out(t) = Memory[address(t)](t) + * Write: if load(t-1) then Memory[address(t-1)](t) = in(t-1) + * In words: the chip always outputs the value stored at the memory + * location specified by address. If load==1, the in value is loaded + * into the memory location specified by address. This value becomes + * available through the out output from the next time step onward. + * Address space rules: + * Only the upper 16K+8K+1 words of the Memory chip are used. + * Access to address>0x6000 is invalid. Access to any address in + * the range 0x4000-0x5FFF results in accessing the screen memory + * map. Access to address 0x6000 results in accessing the keyboard + * memory map. The behavior in these addresses is described in the + * Screen and Keyboard chip specifications given in the book. + */ + +CHIP Memory { + IN in[16], load, address[15]; + OUT out[16]; + + PARTS: + + DMux4Way(in=true, sel=address[13..14], a=selectrama, b=selectramb, c=selectscreen, d=selectkeyboard); + + Or(a=selectrama, b=selectramb, out=selectram); + And(a=load, b=selectram, out=loadram); + And(a=load, b=selectscreen, out=loadscreen); + + RAM16K(in=in, load=loadram, address=address[0..13], out=outram); + Screen(in=in, load=loadscreen, address=address[0..12], out=outscreen); + Keyboard(out=outkeyboard); + + Mux4Way16(a=outram, b=outram, c=outscreen, d=outkeyboard, sel=address[13..14], out=out); +} diff --git a/projects/05/Memory.out b/projects/05/Memory.out new file mode 100644 index 0000000..1dbf7ed --- /dev/null +++ b/projects/05/Memory.out @@ -0,0 +1,54 @@ +| in |load | address | out | +| -1 | 1 | 000000000000000 | 0 | +| -1 | 1 | 000000000000000 | -1 | +| 9999 | 0 | 000000000000000 | -1 | +| 9999 | 0 | 000000000000000 | -1 | +| 9999 | 0 | 010000000000000 | 0 | +| 9999 | 0 | 100000000000000 | 0 | +| 2222 | 1 | 010000000000000 | 0 | +| 2222 | 1 | 010000000000000 | 2222 | +| 9999 | 0 | 010000000000000 | 2222 | +| 9999 | 0 | 010000000000000 | 2222 | +| 9999 | 0 | 000000000000000 | -1 | +| 9999 | 0 | 100000000000000 | 0 | +| 9999 | 0 | 000000000000001 | 0 | +| 9999 | 0 | 000000000000010 | 0 | +| 9999 | 0 | 000000000000100 | 0 | +| 9999 | 0 | 000000000001000 | 0 | +| 9999 | 0 | 000000000010000 | 0 | +| 9999 | 0 | 000000000100000 | 0 | +| 9999 | 0 | 000000001000000 | 0 | +| 9999 | 0 | 000000010000000 | 0 | +| 9999 | 0 | 000000100000000 | 0 | +| 9999 | 0 | 000001000000000 | 0 | +| 9999 | 0 | 000010000000000 | 0 | +| 9999 | 0 | 000100000000000 | 0 | +| 9999 | 0 | 001000000000000 | 0 | +| 9999 | 0 | 010000000000000 | 2222 | +| 1234 | 1 | 001001000110100 | 0 | +| 1234 | 1 | 001001000110100 | 1234 | +| 1234 | 0 | 010001000110100 | 0 | +| 1234 | 0 | 110001000110100 | 0 | +| 2345 | 1 | 010001101000101 | 0 | +| 2345 | 1 | 010001101000101 | 2345 | +| 2345 | 0 | 000001101000101 | 0 | +| 2345 | 0 | 100001101000101 | 0 | +| 2345 | 0 | 110000000000000 | 75 | +| -1 | 1 | 100111111001111 | -1 | +| -1 | 1 | 101000001001111 | -1 | +| -1 | 1 | 000111111001111 | 0 | +| -1 | 1 | 010111111001111 | 0 | +| -1 | 0 | 100111111001110 | 0 | +| -1 | 0 | 100111111001101 | 0 | +| -1 | 0 | 100111111001011 | 0 | +| -1 | 0 | 100111111000111 | 0 | +| -1 | 0 | 100111111011111 | 0 | +| -1 | 0 | 100111111101111 | 0 | +| -1 | 0 | 100111110001111 | 0 | +| -1 | 0 | 100111101001111 | 0 | +| -1 | 0 | 100111011001111 | 0 | +| -1 | 0 | 100110111001111 | 0 | +| -1 | 0 | 100101111001111 | 0 | +| -1 | 0 | 100011111001111 | 0 | +| -1 | 0 | 101111111001111 | 0 | +| -1 | 0 | 110000000000000 | 89 | diff --git a/projects/05/Memory.tst b/projects/05/Memory.tst new file mode 100644 index 0000000..f712a48 --- /dev/null +++ b/projects/05/Memory.tst @@ -0,0 +1,163 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/05/Memory.tst + +load Memory.hdl, +output-file Memory.out, +compare-to Memory.cmp, +output-list in%D1.6.1 load%B2.1.2 address%B1.15.1 out%D1.6.1; + +echo "Before you run this script, select the 'Screen' option from the 'View' menu"; + +set in -1, // Set RAM[0] = -1 +set load 1, +set address 0, +tick, +output; +tock, +output; + +set in 9999, // RAM[0] holds value +set load 0, +tick, +output; +tock, +output; + +set address %X2000, // Did not also write to upper RAM or Screen +eval, +output; +set address %X4000, +eval, +output; + +set in 2222, // Set RAM[2000] = 2222 +set load 1, +set address %X2000, +tick, +output; +tock, +output; + +set in 9999, // RAM[2000] holds value +set load 0, +tick, +output; +tock, +output; + +set address 0, // Did not also write to lower RAM or Screen +eval, +output; +set address %X4000, +eval, +output; + +set load 0, // Low order address bits connected +set address %X0001, eval, output; +set address %X0002, eval, output; +set address %X0004, eval, output; +set address %X0008, eval, output; +set address %X0010, eval, output; +set address %X0020, eval, output; +set address %X0040, eval, output; +set address %X0080, eval, output; +set address %X0100, eval, output; +set address %X0200, eval, output; +set address %X0400, eval, output; +set address %X0800, eval, output; +set address %X1000, eval, output; +set address %X2000, eval, output; + +set address %X1234, // RAM[1234] = 1234 +set in 1234, +set load 1, +tick, +output; +tock, +output; + +set load 0, +set address %X2234, // Did not also write to upper RAM or Screen +eval, output; +set address %X6234, +eval, output; + +set address %X2345, // RAM[2345] = 2345 +set in 2345, +set load 1, +tick, +output; +tock, +output; + +set load 0, +set address %X0345, // Did not also write to lower RAM or Screen +eval, output; +set address %X4345, +eval, output; + +// Keyboard test + +set address 24576, +echo "Click the Keyboard icon and hold down the 'K' key (uppercase) until you see the next message (it should appear shortly after that) ...", +// It's important to keep holding the key down since if the system is busy, +// the memory will zero itself before being outputted. + +while out <> 75 { + eval, +} + +clear-echo, +output; + +// Screen test + +set load 1, +set in -1, +set address %X4FCF, +tick, +tock, +output, + +set address %X504F, +tick, +tock, +output; + +set address %X0FCF, // Did not also write to lower or upper RAM +eval, +output; +set address %X2FCF, +eval, +output; + +set load 0, // Low order address bits connected +set address %X4FCE, eval, output; +set address %X4FCD, eval, output; +set address %X4FCB, eval, output; +set address %X4FC7, eval, output; +set address %X4FDF, eval, output; +set address %X4FEF, eval, output; +set address %X4F8F, eval, output; +set address %X4F4F, eval, output; +set address %X4ECF, eval, output; +set address %X4DCF, eval, output; +set address %X4BCF, eval, output; +set address %X47CF, eval, output; +set address %X5FCF, eval, output; + + +set load 0, +set address 24576, +echo "Make sure you see ONLY two horizontal lines in the middle of the screen. Hold down 'Y' (uppercase) until you see the next message ...", +// It's important to keep holding the key down since if the system is busy, +// the memory will zero itself before being outputted. + +while out <> 89 { + eval, +} + +clear-echo, +output; diff --git a/projects/05/Nor.hdl b/projects/05/Nor.hdl new file mode 100644 index 0000000..79476a4 --- /dev/null +++ b/projects/05/Nor.hdl @@ -0,0 +1,9 @@ + +CHIP Nor { + IN a, b; + OUT out; + + PARTS: + Or(a=a, b=b, out=orout); + Not(in=orout, out=out); +} diff --git a/projects/05/Rect.hack b/projects/05/Rect.hack new file mode 100644 index 0000000..ee017ab --- /dev/null +++ b/projects/05/Rect.hack @@ -0,0 +1,25 @@ +0000000000000000 +1111110000010000 +0000000000010111 +1110001100000110 +0000000000010000 +1110001100001000 +0100000000000000 +1110110000010000 +0000000000010001 +1110001100001000 +0000000000010001 +1111110000100000 +1110111010001000 +0000000000010001 +1111110000010000 +0000000000100000 +1110000010010000 +0000000000010001 +1110001100001000 +0000000000010000 +1111110010011000 +0000000000001010 +1110001100000001 +0000000000010111 +1110101010000111 diff --git a/projects/06/add/Add.asm b/projects/06/add/Add.asm new file mode 100644 index 0000000..3d4ec46 --- /dev/null +++ b/projects/06/add/Add.asm @@ -0,0 +1,13 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/06/add/Add.asm + +// Computes R0 = 2 + 3 (R0 refers to RAM[0]) + +@2 +D=A +@3 +D=D+A +@0 +M=D diff --git a/projects/06/add/Add.hack b/projects/06/add/Add.hack new file mode 100644 index 0000000..8297cbb --- /dev/null +++ b/projects/06/add/Add.hack @@ -0,0 +1,6 @@ +0000000000000010 +1110110000010000 +0000000000000011 +1110000010010000 +0000000000000000 +1110001100001000 diff --git a/projects/06/assembler.py b/projects/06/assembler.py new file mode 100755 index 0000000..6379838 --- /dev/null +++ b/projects/06/assembler.py @@ -0,0 +1,201 @@ +#!/usr/bin/env python3 + +import sys +import re + + + +def preprocess(lines): + lines = remove_whitespaces(lines) + lines = replace_symbols(lines) + return lines + + +def replace_symbols(lines): + symbols = { + "SP": "0", + "LCL": "1", + "ARG": "2", + "THIS": "3", + "THAT": "4", + "R0": "0", + "R1": "1", + "R2": "2", + "R3": "3", + "R4": "4", + "R5": "5", + "R6": "6", + "R7": "7", + "R8": "8", + "R9": "9", + "R10": "10", + "R11": "11", + "R12": "12", + "R13": "13", + "R14": "14", + "R15": "15", + "SCREEN": "16384", + "KBD": "24576", + } + + # Find all labels, remove them, and add them to symbol table. + address = 0 + re_label = re.compile("\((\S*)\)") + lines_without_labels = [] + for line in lines: + m = re_label.match(line) + if m: + label = m.groups()[0] + if label in symbols: + raise Exception("Multiple defines for {}.".format(line)) + symbols[label] = str(address) + else: + lines_without_labels.append(line) + address += 1 + lines = lines_without_labels + + # Find all address instruction and replace symbols. + lines_without_symbols = [] + re_symbol = re.compile("@([A-Za-z]\S*)") + address = 16 + for line in lines: + m = re_symbol.match(line) + if m: + symbol = m.groups()[0] + if symbol in symbols: + symbol_value = symbols[symbol] + else: + symbol_value = str(address) + symbols[symbol] = symbol_value + address += 1 + lines_without_symbols.append("@" + symbol_value) + else: + lines_without_symbols.append(line) + return lines_without_symbols + + +def assemble(lines): + lines = assemble_instructions(lines) + return lines + + +def remove_whitespaces(lines): + r_whitespace = re.compile("\s") + r_comment = re.compile("//.*") + lines = [r_whitespace.sub("", line) for line in lines] + lines = [r_comment.sub("", line) for line in lines] + return [line for line in lines if line] + + +def assemble_instructions(lines): + return [assemble_instruction(line) for line in lines] + + +def assemble_instruction(line): + if line.startswith("@"): + return assemble_a_instruction(line) + else: + return assemble_c_instruction(line) + + +def assemble_a_instruction(line): + adr_str = line.replace("@", "") + adr_int = int(adr_str) + adr_bin_str = bin(adr_int)[2:] + adr_bin_str = "0" * (16 - len(adr_bin_str)) + adr_bin_str + return adr_bin_str + + +def assemble_c_instruction(line): + r = re.compile("(\S+)=(\S+);(\S+)") + if not ";" in line: + line = line + ";null" + if not "=" in line: + line = "null=" + line + dest, comp, jump = r.match(line).groups() + ins_str = "111" + comp_lookup(comp) + dest_lookup(dest) + jump_lookup(jump) + return ins_str + +def comp_lookup(comp_str): + return { + "0": "0101010", + "1": "0111111", + "-1": "0111010", + "D": "0001100", + "A": "0110000", + "M": "1110000", + "!D": "0001101", + "!A": "0110001", + "!M": "1110001", + "-D": "0001111", + "-A": "0110011", + "-M": "1110011", + "D+1": "0011111", + "A+1": "0110111", + "M+1": "1110111", + "D-1": "0001110", + "A-1": "0110010", + "M-1": "1110010", + "D+A": "0000010", + "D+M": "1000010", + "D-A": "0010011", + "D-M": "1010011", + "A-D": "0000111", + "M-D": "1000111", + "D&A": "0000000", + "D&M": "1000000", + "D|A": "0010101", + "D|M": "1010101" + }[comp_str] + + +def dest_lookup(dest_str): + return { + "null": "000", + "M": "001", + "D": "010", + "MD": "011", + "A": "100", + "AM": "101", + "AD": "110", + "AMD": "111" + }[dest_str] + + +def jump_lookup(jump_str): + return { + "null": "000", + "JGT": "001", + "JEQ": "010", + "JGE": "011", + "JLT": "100", + "JNE": "101", + "JLE": "110", + "JMP": "111" + }[jump_str] + + +if __name__ == "__main__": + try: + hack_asm_file = sys.argv[1] + if not hack_asm_file.endswith(".asm"): + sys.exit("Hack asm file must have a .asm file ending.") + hack_asm_ns_file = hack_asm_file.replace(".asm", ".nosymbol.asm") + hack_bin_file = hack_asm_file.replace(".asm", ".hack") + except IndexError: + sys.exit("Call: ./assembler.py ") + + with open(hack_asm_file, 'r') as f: + assembly_lines = f.readlines() + + preprocessed_lines = preprocess(assembly_lines) + binary_lines = assemble(preprocessed_lines) + + with open(hack_asm_ns_file, 'w') as f: + for line in preprocessed_lines: + f.write(line + "\n") + + with open(hack_bin_file, 'w') as f: + for line in binary_lines: + f.write(line + "\n") + diff --git a/projects/06/max/Max.asm b/projects/06/max/Max.asm new file mode 100644 index 0000000..b62c138 --- /dev/null +++ b/projects/06/max/Max.asm @@ -0,0 +1,26 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/06/max/Max.asm + +// Computes R2 = max(R0, R1) (R0,R1,R2 refer to RAM[0],RAM[1],RAM[2]) + + @R0 + D=M // D = first number + @R1 + D=D-M // D = first number - second number + @OUTPUT_FIRST + D;JGT // if D>0 (first is greater) goto output_first + @R1 + D=M // D = second number + @OUTPUT_D + 0;JMP // goto output_d +(OUTPUT_FIRST) + @R0 + D=M // D = first number +(OUTPUT_D) + @R2 + M=D // M[2] = D (greatest number) +(INFINITE_LOOP) + @INFINITE_LOOP + 0;JMP // infinite loop diff --git a/projects/06/max/MaxL.asm b/projects/06/max/MaxL.asm new file mode 100644 index 0000000..fc3ccbf --- /dev/null +++ b/projects/06/max/MaxL.asm @@ -0,0 +1,23 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/06/max/MaxL.asm + +// Symbol-less version of the Max.asm program. + +@0 +D=M +@1 +D=D-M +@10 +D;JGT +@1 +D=M +@12 +0;JMP +@0 +D=M +@2 +M=D +@14 +0;JMP diff --git a/projects/06/pong/Pong.asm b/projects/06/pong/Pong.asm new file mode 100644 index 0000000..79691f0 --- /dev/null +++ b/projects/06/pong/Pong.asm @@ -0,0 +1,28375 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/06/pong/Pong.asm + +// The Pong game program was originally written in the high-level Jack language. +// The Jack code was then translated by the Jack compiler into VM code. +// The VM code was then translated by the VM translator into the Hack +// assembly code shown here. + +@256 +D=A +@SP +M=D +@133 +0;JMP +@R15 +M=D +@SP +AM=M-1 +D=M +A=A-1 +D=M-D +M=0 +@END_EQ +D;JNE +@SP +A=M-1 +M=-1 +(END_EQ) +@R15 +A=M +0;JMP +@R15 +M=D +@SP +AM=M-1 +D=M +A=A-1 +D=M-D +M=0 +@END_GT +D;JLE +@SP +A=M-1 +M=-1 +(END_GT) +@R15 +A=M +0;JMP +@R15 +M=D +@SP +AM=M-1 +D=M +A=A-1 +D=M-D +M=0 +@END_LT +D;JGE +@SP +A=M-1 +M=-1 +(END_LT) +@R15 +A=M +0;JMP +@5 +D=A +@LCL +A=M-D +D=M +@R13 +M=D +@SP +AM=M-1 +D=M +@ARG +A=M +M=D +D=A +@SP +M=D+1 +@LCL +D=M +@R14 +AM=D-1 +D=M +@THAT +M=D +@R14 +AM=M-1 +D=M +@THIS +M=D +@R14 +AM=M-1 +D=M +@ARG +M=D +@R14 +AM=M-1 +D=M +@LCL +M=D +@R13 +A=M +0;JMP +@SP +A=M +M=D +@LCL +D=M +@SP +AM=M+1 +M=D +@ARG +D=M +@SP +AM=M+1 +M=D +@THIS +D=M +@SP +AM=M+1 +M=D +@THAT +D=M +@SP +AM=M+1 +M=D +@4 +D=A +@R13 +D=D+M +@SP +D=M-D +@ARG +M=D +@SP +MD=M+1 +@LCL +M=D +@R14 +A=M +0;JMP +@0 +D=A +@R13 +M=D +@sys.init +D=A +@R14 +M=D +@RET_ADDRESS_CALL0 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL0) +(ball.new) +@15 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@memory.alloc +D=A +@R14 +M=D +@RET_ADDRESS_CALL1 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL1) +@SP +AM=M-1 +D=M +@THIS +M=D +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THIS +A=M +M=D +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THIS +A=M+1 +M=D +@ARG +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@THIS +D=M +@10 +D=D+A +@R13 +M=D +@SP +AM=M-1 +D=M +@R13 +A=M +M=D +@ARG +D=M +@3 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@6 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=M-D +@THIS +D=M +@11 +D=D+A +@R13 +M=D +@SP +AM=M-1 +D=M +@R13 +A=M +M=D +@ARG +D=M +@4 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@THIS +D=M +@12 +D=D+A +@R13 +M=D +@SP +AM=M-1 +D=M +@R13 +A=M +M=D +@ARG +D=M +@5 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@6 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=M-D +@THIS +D=M +@13 +D=D+A +@R13 +M=D +@SP +AM=M-1 +D=M +@R13 +A=M +M=D +@SP +M=M+1 +A=M-1 +M=0 +@THIS +D=M +@14 +D=D+A +@R13 +M=D +@SP +AM=M-1 +D=M +@R13 +A=M +M=D +@THIS +D=M +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@ball.show +D=A +@R14 +M=D +@RET_ADDRESS_CALL2 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL2) +@SP +AM=M-1 +D=M +@R5 +M=D +@THIS +D=M +@SP +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +(ball.dispose) +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THIS +M=D +@THIS +D=M +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@memory.dealloc +D=A +@R14 +M=D +@RET_ADDRESS_CALL3 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL3) +@SP +AM=M-1 +D=M +@R5 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +(ball.show) +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THIS +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +A=M-1 +M=!M +@1 +D=A +@R13 +M=D +@screen.setcolor +D=A +@R14 +M=D +@RET_ADDRESS_CALL4 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL4) +@SP +AM=M-1 +D=M +@R5 +M=D +@THIS +D=M +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@ball.draw +D=A +@R14 +M=D +@RET_ADDRESS_CALL5 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL5) +@SP +AM=M-1 +D=M +@R5 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +(ball.hide) +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THIS +M=D +@SP +M=M+1 +A=M-1 +M=0 +@1 +D=A +@R13 +M=D +@screen.setcolor +D=A +@R14 +M=D +@RET_ADDRESS_CALL6 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL6) +@SP +AM=M-1 +D=M +@R5 +M=D +@THIS +D=M +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@ball.draw +D=A +@R14 +M=D +@RET_ADDRESS_CALL7 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL7) +@SP +AM=M-1 +D=M +@R5 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +(ball.draw) +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THIS +M=D +@THIS +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@THIS +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@THIS +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@5 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@THIS +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@5 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@4 +D=A +@R13 +M=D +@screen.drawrectangle +D=A +@R14 +M=D +@RET_ADDRESS_CALL8 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL8) +@SP +AM=M-1 +D=M +@R5 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +(ball.getleft) +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THIS +M=D +@THIS +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +(ball.getright) +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THIS +M=D +@THIS +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@5 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@54 +0;JMP +(ball.setdestination) +@3 +D=A +(LOOP_ball.setdestination) +D=D-1 +@SP +AM=M+1 +A=A-1 +M=0 +@LOOP_ball.setdestination +D;JGT +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THIS +M=D +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@THIS +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=M-D +@SP +AM=M-1 +D=M +@THIS +A=M+1 +A=A+1 +M=D +@ARG +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@THIS +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=M-D +@SP +AM=M-1 +D=M +@THIS +A=M+1 +A=A+1 +A=A+1 +M=D +@THIS +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@math.abs +D=A +@R14 +M=D +@RET_ADDRESS_CALL9 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL9) +@SP +AM=M-1 +D=M +@LCL +A=M +M=D +@THIS +D=M +@3 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@math.abs +D=A +@R14 +M=D +@RET_ADDRESS_CALL10 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL10) +@SP +AM=M-1 +D=M +@LCL +A=M+1 +M=D +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_LT0 +D=A +@38 +0;JMP +(RET_ADDRESS_LT0) +@THIS +D=M +@7 +D=D+A +@R13 +M=D +@SP +AM=M-1 +D=M +@R13 +A=M +M=D +@THIS +D=M +@7 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@ball.setdestination$if_true0 +D;JNE +@ball.setdestination$if_false0 +0;JMP +(ball.setdestination$if_true0) +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@LCL +A=M+1 +A=A+1 +M=D +@LCL +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@LCL +A=M +M=D +@LCL +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@LCL +A=M+1 +M=D +@THIS +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@ARG +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_LT1 +D=A +@38 +0;JMP +(RET_ADDRESS_LT1) +@THIS +D=M +@8 +D=D+A +@R13 +M=D +@SP +AM=M-1 +D=M +@R13 +A=M +M=D +@THIS +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_LT2 +D=A +@38 +0;JMP +(RET_ADDRESS_LT2) +@THIS +D=M +@9 +D=D+A +@R13 +M=D +@SP +AM=M-1 +D=M +@R13 +A=M +M=D +@ball.setdestination$if_end0 +0;JMP +(ball.setdestination$if_false0) +@THIS +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_LT3 +D=A +@38 +0;JMP +(RET_ADDRESS_LT3) +@THIS +D=M +@8 +D=D+A +@R13 +M=D +@SP +AM=M-1 +D=M +@R13 +A=M +M=D +@THIS +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@ARG +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_LT4 +D=A +@38 +0;JMP +(RET_ADDRESS_LT4) +@THIS +D=M +@9 +D=D+A +@R13 +M=D +@SP +AM=M-1 +D=M +@R13 +A=M +M=D +(ball.setdestination$if_end0) +@2 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@LCL +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@math.multiply +D=A +@R14 +M=D +@RET_ADDRESS_CALL11 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL11) +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=M-D +@SP +AM=M-1 +D=M +@THIS +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@2 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@LCL +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@math.multiply +D=A +@R14 +M=D +@RET_ADDRESS_CALL12 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL12) +@SP +AM=M-1 +D=M +@THIS +A=M+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@2 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@LCL +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=M-D +@2 +D=A +@R13 +M=D +@math.multiply +D=A +@R14 +M=D +@RET_ADDRESS_CALL13 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL13) +@SP +AM=M-1 +D=M +@THIS +A=M+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +(ball.move) +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THIS +M=D +@THIS +D=M +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@ball.hide +D=A +@R14 +M=D +@RET_ADDRESS_CALL14 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL14) +@SP +AM=M-1 +D=M +@R5 +M=D +@THIS +D=M +@4 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@RET_ADDRESS_LT5 +D=A +@38 +0;JMP +(RET_ADDRESS_LT5) +@SP +AM=M-1 +D=M +@ball.move$if_true0 +D;JNE +@ball.move$if_false0 +0;JMP +(ball.move$if_true0) +@THIS +D=M +@4 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@THIS +D=M +@5 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@THIS +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@ball.move$if_end0 +0;JMP +(ball.move$if_false0) +@THIS +D=M +@4 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@THIS +D=M +@6 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@THIS +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@THIS +D=M +@9 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@ball.move$if_true1 +D;JNE +@ball.move$if_false1 +0;JMP +(ball.move$if_true1) +@THIS +D=M +@7 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@ball.move$if_true2 +D;JNE +@ball.move$if_false2 +0;JMP +(ball.move$if_true2) +@THIS +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@4 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@THIS +A=M +M=D +@ball.move$if_end2 +0;JMP +(ball.move$if_false2) +@THIS +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@4 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@THIS +A=M+1 +M=D +(ball.move$if_end2) +@ball.move$if_end1 +0;JMP +(ball.move$if_false1) +@THIS +D=M +@7 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@ball.move$if_true3 +D;JNE +@ball.move$if_false3 +0;JMP +(ball.move$if_true3) +@THIS +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@4 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=M-D +@SP +AM=M-1 +D=M +@THIS +A=M +M=D +@ball.move$if_end3 +0;JMP +(ball.move$if_false3) +@THIS +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@4 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=M-D +@SP +AM=M-1 +D=M +@THIS +A=M+1 +M=D +(ball.move$if_end3) +(ball.move$if_end1) +(ball.move$if_end0) +@THIS +D=M +@8 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@ball.move$if_true4 +D;JNE +@ball.move$if_false4 +0;JMP +(ball.move$if_true4) +@THIS +D=M +@7 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@ball.move$if_true5 +D;JNE +@ball.move$if_false5 +0;JMP +(ball.move$if_true5) +@THIS +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@4 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@THIS +A=M+1 +M=D +@ball.move$if_end5 +0;JMP +(ball.move$if_false5) +@THIS +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@4 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@THIS +A=M +M=D +(ball.move$if_end5) +@ball.move$if_end4 +0;JMP +(ball.move$if_false4) +@THIS +D=M +@7 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@ball.move$if_true6 +D;JNE +@ball.move$if_false6 +0;JMP +(ball.move$if_true6) +@THIS +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@4 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=M-D +@SP +AM=M-1 +D=M +@THIS +A=M+1 +M=D +@ball.move$if_end6 +0;JMP +(ball.move$if_false6) +@THIS +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@4 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=M-D +@SP +AM=M-1 +D=M +@THIS +A=M +M=D +(ball.move$if_end6) +(ball.move$if_end4) +@THIS +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@THIS +D=M +@10 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_GT0 +D=A +@22 +0;JMP +(RET_ADDRESS_GT0) +@SP +A=M-1 +M=!M +@SP +AM=M-1 +D=M +@ball.move$if_true7 +D;JNE +@ball.move$if_false7 +0;JMP +(ball.move$if_true7) +@SP +M=M+1 +A=M-1 +M=1 +@THIS +D=M +@14 +D=D+A +@R13 +M=D +@SP +AM=M-1 +D=M +@R13 +A=M +M=D +@THIS +D=M +@10 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THIS +A=M +M=D +(ball.move$if_false7) +@THIS +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@THIS +D=M +@11 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_LT6 +D=A +@38 +0;JMP +(RET_ADDRESS_LT6) +@SP +A=M-1 +M=!M +@SP +AM=M-1 +D=M +@ball.move$if_true8 +D;JNE +@ball.move$if_false8 +0;JMP +(ball.move$if_true8) +@2 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@THIS +D=M +@14 +D=D+A +@R13 +M=D +@SP +AM=M-1 +D=M +@R13 +A=M +M=D +@THIS +D=M +@11 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THIS +A=M +M=D +(ball.move$if_false8) +@THIS +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@THIS +D=M +@12 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_GT1 +D=A +@22 +0;JMP +(RET_ADDRESS_GT1) +@SP +A=M-1 +M=!M +@SP +AM=M-1 +D=M +@ball.move$if_true9 +D;JNE +@ball.move$if_false9 +0;JMP +(ball.move$if_true9) +@3 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@THIS +D=M +@14 +D=D+A +@R13 +M=D +@SP +AM=M-1 +D=M +@R13 +A=M +M=D +@THIS +D=M +@12 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THIS +A=M+1 +M=D +(ball.move$if_false9) +@THIS +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@THIS +D=M +@13 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_LT7 +D=A +@38 +0;JMP +(RET_ADDRESS_LT7) +@SP +A=M-1 +M=!M +@SP +AM=M-1 +D=M +@ball.move$if_true10 +D;JNE +@ball.move$if_false10 +0;JMP +(ball.move$if_true10) +@4 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@THIS +D=M +@14 +D=D+A +@R13 +M=D +@SP +AM=M-1 +D=M +@R13 +A=M +M=D +@THIS +D=M +@13 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THIS +A=M+1 +M=D +(ball.move$if_false10) +@THIS +D=M +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@ball.show +D=A +@R14 +M=D +@RET_ADDRESS_CALL15 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL15) +@SP +AM=M-1 +D=M +@R5 +M=D +@THIS +D=M +@14 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +(ball.bounce) +@5 +D=A +(LOOP_ball.bounce) +D=D-1 +@SP +AM=M+1 +A=A-1 +M=0 +@LOOP_ball.bounce +D;JGT +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THIS +M=D +@THIS +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@10 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@math.divide +D=A +@R14 +M=D +@RET_ADDRESS_CALL16 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL16) +@SP +AM=M-1 +D=M +@LCL +A=M+1 +A=A+1 +M=D +@THIS +D=M +@3 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@10 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@math.divide +D=A +@R14 +M=D +@RET_ADDRESS_CALL17 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL17) +@SP +AM=M-1 +D=M +@LCL +A=M+1 +A=A+1 +A=A+1 +M=D +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@RET_ADDRESS_EQ0 +D=A +@6 +0;JMP +(RET_ADDRESS_EQ0) +@SP +AM=M-1 +D=M +@ball.bounce$if_true0 +D;JNE +@ball.bounce$if_false0 +0;JMP +(ball.bounce$if_true0) +@10 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@LCL +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@ball.bounce$if_end0 +0;JMP +(ball.bounce$if_false0) +@THIS +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@RET_ADDRESS_LT8 +D=A +@38 +0;JMP +(RET_ADDRESS_LT8) +@SP +A=M-1 +M=!M +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=1 +@RET_ADDRESS_EQ1 +D=A +@6 +0;JMP +(RET_ADDRESS_EQ1) +@SP +AM=M-1 +D=M +A=A-1 +M=D&M +@THIS +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@RET_ADDRESS_LT9 +D=A +@38 +0;JMP +(RET_ADDRESS_LT9) +@SP +AM=M-1 +D=M +A=A-1 +M=D|M +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=1 +@SP +A=M-1 +D=!M +M=D+1 +@RET_ADDRESS_EQ2 +D=A +@6 +0;JMP +(RET_ADDRESS_EQ2) +@SP +AM=M-1 +D=M +A=A-1 +M=D&M +@SP +AM=M-1 +D=M +@ball.bounce$if_true1 +D;JNE +@ball.bounce$if_false1 +0;JMP +(ball.bounce$if_true1) +@20 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@LCL +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@ball.bounce$if_end1 +0;JMP +(ball.bounce$if_false1) +@5 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@LCL +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +(ball.bounce$if_end1) +(ball.bounce$if_end0) +@THIS +D=M +@14 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=1 +@RET_ADDRESS_EQ3 +D=A +@6 +0;JMP +(RET_ADDRESS_EQ3) +@SP +AM=M-1 +D=M +@ball.bounce$if_true2 +D;JNE +@ball.bounce$if_false2 +0;JMP +(ball.bounce$if_true2) +@506 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@LCL +A=M +M=D +@LCL +D=M +@3 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@50 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +A=M-1 +D=!M +M=D+1 +@2 +D=A +@R13 +M=D +@math.multiply +D=A +@R14 +M=D +@RET_ADDRESS_CALL18 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL18) +@LCL +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@math.divide +D=A +@R14 +M=D +@RET_ADDRESS_CALL19 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL19) +@SP +AM=M-1 +D=M +@LCL +A=M+1 +M=D +@THIS +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +D=M +@4 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@math.multiply +D=A +@R14 +M=D +@RET_ADDRESS_CALL20 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL20) +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@LCL +A=M+1 +M=D +@ball.bounce$if_end2 +0;JMP +(ball.bounce$if_false2) +@THIS +D=M +@14 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_EQ4 +D=A +@6 +0;JMP +(RET_ADDRESS_EQ4) +@SP +AM=M-1 +D=M +@ball.bounce$if_true3 +D;JNE +@ball.bounce$if_false3 +0;JMP +(ball.bounce$if_true3) +@SP +M=M+1 +A=M-1 +M=0 +@SP +AM=M-1 +D=M +@LCL +A=M +M=D +@LCL +D=M +@3 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@50 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@math.multiply +D=A +@R14 +M=D +@RET_ADDRESS_CALL21 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL21) +@LCL +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@math.divide +D=A +@R14 +M=D +@RET_ADDRESS_CALL22 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL22) +@SP +AM=M-1 +D=M +@LCL +A=M+1 +M=D +@THIS +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +D=M +@4 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@math.multiply +D=A +@R14 +M=D +@RET_ADDRESS_CALL23 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL23) +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@LCL +A=M+1 +M=D +@ball.bounce$if_end3 +0;JMP +(ball.bounce$if_false3) +@THIS +D=M +@14 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@3 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_EQ5 +D=A +@6 +0;JMP +(RET_ADDRESS_EQ5) +@SP +AM=M-1 +D=M +@ball.bounce$if_true4 +D;JNE +@ball.bounce$if_false4 +0;JMP +(ball.bounce$if_true4) +@250 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@LCL +A=M+1 +M=D +@LCL +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@25 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +A=M-1 +D=!M +M=D+1 +@2 +D=A +@R13 +M=D +@math.multiply +D=A +@R14 +M=D +@RET_ADDRESS_CALL24 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL24) +@LCL +D=M +@3 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@math.divide +D=A +@R14 +M=D +@RET_ADDRESS_CALL25 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL25) +@SP +AM=M-1 +D=M +@LCL +A=M +M=D +@THIS +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +D=M +@4 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@math.multiply +D=A +@R14 +M=D +@RET_ADDRESS_CALL26 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL26) +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@LCL +A=M +M=D +@ball.bounce$if_end4 +0;JMP +(ball.bounce$if_false4) +@SP +M=M+1 +A=M-1 +M=0 +@SP +AM=M-1 +D=M +@LCL +A=M+1 +M=D +@LCL +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@25 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@math.multiply +D=A +@R14 +M=D +@RET_ADDRESS_CALL27 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL27) +@LCL +D=M +@3 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@math.divide +D=A +@R14 +M=D +@RET_ADDRESS_CALL28 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL28) +@SP +AM=M-1 +D=M +@LCL +A=M +M=D +@THIS +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +D=M +@4 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@math.multiply +D=A +@R14 +M=D +@RET_ADDRESS_CALL29 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL29) +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@LCL +A=M +M=D +(ball.bounce$if_end4) +(ball.bounce$if_end3) +(ball.bounce$if_end2) +@THIS +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@3 +D=A +@R13 +M=D +@ball.setdestination +D=A +@R14 +M=D +@RET_ADDRESS_CALL30 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL30) +@SP +AM=M-1 +D=M +@R5 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +(bat.new) +@5 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@memory.alloc +D=A +@R14 +M=D +@RET_ADDRESS_CALL31 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL31) +@SP +AM=M-1 +D=M +@THIS +M=D +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THIS +A=M +M=D +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THIS +A=M+1 +M=D +@ARG +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THIS +A=M+1 +A=A+1 +M=D +@ARG +D=M +@3 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THIS +A=M+1 +A=A+1 +A=A+1 +M=D +@2 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THIS +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@THIS +D=M +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@bat.show +D=A +@R14 +M=D +@RET_ADDRESS_CALL32 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL32) +@SP +AM=M-1 +D=M +@R5 +M=D +@THIS +D=M +@SP +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +(bat.dispose) +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THIS +M=D +@THIS +D=M +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@memory.dealloc +D=A +@R14 +M=D +@RET_ADDRESS_CALL33 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL33) +@SP +AM=M-1 +D=M +@R5 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +(bat.show) +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THIS +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +A=M-1 +M=!M +@1 +D=A +@R13 +M=D +@screen.setcolor +D=A +@R14 +M=D +@RET_ADDRESS_CALL34 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL34) +@SP +AM=M-1 +D=M +@R5 +M=D +@THIS +D=M +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@bat.draw +D=A +@R14 +M=D +@RET_ADDRESS_CALL35 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL35) +@SP +AM=M-1 +D=M +@R5 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +(bat.hide) +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THIS +M=D +@SP +M=M+1 +A=M-1 +M=0 +@1 +D=A +@R13 +M=D +@screen.setcolor +D=A +@R14 +M=D +@RET_ADDRESS_CALL36 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL36) +@SP +AM=M-1 +D=M +@R5 +M=D +@THIS +D=M +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@bat.draw +D=A +@R14 +M=D +@RET_ADDRESS_CALL37 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL37) +@SP +AM=M-1 +D=M +@R5 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +(bat.draw) +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THIS +M=D +@THIS +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@THIS +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@THIS +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@THIS +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@THIS +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@THIS +D=M +@3 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@4 +D=A +@R13 +M=D +@screen.drawrectangle +D=A +@R14 +M=D +@RET_ADDRESS_CALL38 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL38) +@SP +AM=M-1 +D=M +@R5 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +(bat.setdirection) +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THIS +M=D +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THIS +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +(bat.getleft) +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THIS +M=D +@THIS +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +(bat.getright) +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THIS +M=D +@THIS +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@THIS +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@54 +0;JMP +(bat.setwidth) +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THIS +M=D +@THIS +D=M +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@bat.hide +D=A +@R14 +M=D +@RET_ADDRESS_CALL39 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL39) +@SP +AM=M-1 +D=M +@R5 +M=D +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THIS +A=M+1 +A=A+1 +M=D +@THIS +D=M +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@bat.show +D=A +@R14 +M=D +@RET_ADDRESS_CALL40 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL40) +@SP +AM=M-1 +D=M +@R5 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +(bat.move) +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THIS +M=D +@THIS +D=M +@4 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=1 +@RET_ADDRESS_EQ6 +D=A +@6 +0;JMP +(RET_ADDRESS_EQ6) +@SP +AM=M-1 +D=M +@bat.move$if_true0 +D;JNE +@bat.move$if_false0 +0;JMP +(bat.move$if_true0) +@THIS +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@4 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=M-D +@SP +AM=M-1 +D=M +@THIS +A=M +M=D +@THIS +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@RET_ADDRESS_LT10 +D=A +@38 +0;JMP +(RET_ADDRESS_LT10) +@SP +AM=M-1 +D=M +@bat.move$if_true1 +D;JNE +@bat.move$if_false1 +0;JMP +(bat.move$if_true1) +@SP +M=M+1 +A=M-1 +M=0 +@SP +AM=M-1 +D=M +@THIS +A=M +M=D +(bat.move$if_false1) +@SP +M=M+1 +A=M-1 +M=0 +@1 +D=A +@R13 +M=D +@screen.setcolor +D=A +@R14 +M=D +@RET_ADDRESS_CALL41 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL41) +@SP +AM=M-1 +D=M +@R5 +M=D +@THIS +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@THIS +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +M=M+1 +A=M-1 +M=1 +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@THIS +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@THIS +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@THIS +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@4 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@THIS +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@THIS +D=M +@3 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@4 +D=A +@R13 +M=D +@screen.drawrectangle +D=A +@R14 +M=D +@RET_ADDRESS_CALL42 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL42) +@SP +AM=M-1 +D=M +@R5 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +A=M-1 +M=!M +@1 +D=A +@R13 +M=D +@screen.setcolor +D=A +@R14 +M=D +@RET_ADDRESS_CALL43 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL43) +@SP +AM=M-1 +D=M +@R5 +M=D +@THIS +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@THIS +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@THIS +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@3 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@THIS +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@THIS +D=M +@3 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@4 +D=A +@R13 +M=D +@screen.drawrectangle +D=A +@R14 +M=D +@RET_ADDRESS_CALL44 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL44) +@SP +AM=M-1 +D=M +@R5 +M=D +@bat.move$if_end0 +0;JMP +(bat.move$if_false0) +@THIS +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@4 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@THIS +A=M +M=D +@THIS +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@THIS +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@511 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_GT2 +D=A +@22 +0;JMP +(RET_ADDRESS_GT2) +@SP +AM=M-1 +D=M +@bat.move$if_true2 +D;JNE +@bat.move$if_false2 +0;JMP +(bat.move$if_true2) +@511 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@THIS +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=M-D +@SP +AM=M-1 +D=M +@THIS +A=M +M=D +(bat.move$if_false2) +@SP +M=M+1 +A=M-1 +M=0 +@1 +D=A +@R13 +M=D +@screen.setcolor +D=A +@R14 +M=D +@RET_ADDRESS_CALL45 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL45) +@SP +AM=M-1 +D=M +@R5 +M=D +@THIS +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@4 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=M-D +@THIS +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@THIS +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=1 +@SP +AM=M-1 +D=M +A=A-1 +M=M-D +@THIS +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@THIS +D=M +@3 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@4 +D=A +@R13 +M=D +@screen.drawrectangle +D=A +@R14 +M=D +@RET_ADDRESS_CALL46 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL46) +@SP +AM=M-1 +D=M +@R5 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +A=M-1 +M=!M +@1 +D=A +@R13 +M=D +@screen.setcolor +D=A +@R14 +M=D +@RET_ADDRESS_CALL47 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL47) +@SP +AM=M-1 +D=M +@R5 +M=D +@THIS +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@THIS +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@3 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=M-D +@THIS +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@THIS +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@THIS +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@THIS +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@THIS +D=M +@3 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@4 +D=A +@R13 +M=D +@screen.drawrectangle +D=A +@R14 +M=D +@RET_ADDRESS_CALL48 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL48) +@SP +AM=M-1 +D=M +@R5 +M=D +(bat.move$if_end0) +@SP +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +(main.main) +@SP +AM=M+1 +A=A-1 +M=0 +@0 +D=A +@R13 +M=D +@ponggame.newinstance +D=A +@R14 +M=D +@RET_ADDRESS_CALL49 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL49) +@SP +AM=M-1 +D=M +@R5 +M=D +@0 +D=A +@R13 +M=D +@ponggame.getinstance +D=A +@R14 +M=D +@RET_ADDRESS_CALL50 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL50) +@SP +AM=M-1 +D=M +@LCL +A=M +M=D +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@ponggame.run +D=A +@R14 +M=D +@RET_ADDRESS_CALL51 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL51) +@SP +AM=M-1 +D=M +@R5 +M=D +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@ponggame.dispose +D=A +@R14 +M=D +@RET_ADDRESS_CALL52 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL52) +@SP +AM=M-1 +D=M +@R5 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +(ponggame.new) +@7 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@memory.alloc +D=A +@R14 +M=D +@RET_ADDRESS_CALL53 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL53) +@SP +AM=M-1 +D=M +@THIS +M=D +@0 +D=A +@R13 +M=D +@screen.clearscreen +D=A +@R14 +M=D +@RET_ADDRESS_CALL54 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL54) +@SP +AM=M-1 +D=M +@R5 +M=D +@50 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THIS +A=M+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@230 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@229 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@THIS +D=M +@6 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@7 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@4 +D=A +@R13 +M=D +@bat.new +D=A +@R14 +M=D +@RET_ADDRESS_CALL55 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL55) +@SP +AM=M-1 +D=M +@THIS +A=M +M=D +@253 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@222 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@511 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@229 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@6 +D=A +@R13 +M=D +@ball.new +D=A +@R14 +M=D +@RET_ADDRESS_CALL56 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL56) +@SP +AM=M-1 +D=M +@THIS +A=M+1 +M=D +@THIS +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@400 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@3 +D=A +@R13 +M=D +@ball.setdestination +D=A +@R14 +M=D +@RET_ADDRESS_CALL57 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL57) +@SP +AM=M-1 +D=M +@R5 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@238 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@511 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@240 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@4 +D=A +@R13 +M=D +@screen.drawrectangle +D=A +@R14 +M=D +@RET_ADDRESS_CALL58 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL58) +@SP +AM=M-1 +D=M +@R5 +M=D +@22 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@2 +D=A +@R13 +M=D +@output.movecursor +D=A +@R14 +M=D +@RET_ADDRESS_CALL59 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL59) +@SP +AM=M-1 +D=M +@R5 +M=D +@8 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@string.new +D=A +@R14 +M=D +@RET_ADDRESS_CALL60 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL60) +@83 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@string.appendchar +D=A +@R14 +M=D +@RET_ADDRESS_CALL61 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL61) +@99 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@string.appendchar +D=A +@R14 +M=D +@RET_ADDRESS_CALL62 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL62) +@111 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@string.appendchar +D=A +@R14 +M=D +@RET_ADDRESS_CALL63 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL63) +@114 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@string.appendchar +D=A +@R14 +M=D +@RET_ADDRESS_CALL64 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL64) +@101 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@string.appendchar +D=A +@R14 +M=D +@RET_ADDRESS_CALL65 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL65) +@58 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@string.appendchar +D=A +@R14 +M=D +@RET_ADDRESS_CALL66 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL66) +@32 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@string.appendchar +D=A +@R14 +M=D +@RET_ADDRESS_CALL67 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL67) +@48 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@string.appendchar +D=A +@R14 +M=D +@RET_ADDRESS_CALL68 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL68) +@1 +D=A +@R13 +M=D +@output.printstring +D=A +@R14 +M=D +@RET_ADDRESS_CALL69 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL69) +@SP +AM=M-1 +D=M +@R5 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +AM=M-1 +D=M +@THIS +A=M+1 +A=A+1 +A=A+1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +AM=M-1 +D=M +@THIS +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +AM=M-1 +D=M +@THIS +A=M+1 +A=A+1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +AM=M-1 +D=M +@THIS +A=M+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@THIS +D=M +@SP +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +(ponggame.dispose) +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THIS +M=D +@THIS +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@bat.dispose +D=A +@R14 +M=D +@RET_ADDRESS_CALL70 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL70) +@SP +AM=M-1 +D=M +@R5 +M=D +@THIS +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@ball.dispose +D=A +@R14 +M=D +@RET_ADDRESS_CALL71 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL71) +@SP +AM=M-1 +D=M +@R5 +M=D +@THIS +D=M +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@memory.dealloc +D=A +@R14 +M=D +@RET_ADDRESS_CALL72 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL72) +@SP +AM=M-1 +D=M +@R5 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +(ponggame.newinstance) +@0 +D=A +@R13 +M=D +@ponggame.new +D=A +@R14 +M=D +@RET_ADDRESS_CALL73 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL73) +@SP +AM=M-1 +D=M +@ponggame.0 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +(ponggame.getinstance) +@ponggame.0 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +(ponggame.run) +@SP +AM=M+1 +A=A-1 +M=0 +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THIS +M=D +(ponggame.run$while_exp0) +@THIS +D=M +@3 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +A=M-1 +M=!M +@SP +A=M-1 +M=!M +@SP +AM=M-1 +D=M +@ponggame.run$while_end0 +D;JNE +(ponggame.run$while_exp1) +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@RET_ADDRESS_EQ7 +D=A +@6 +0;JMP +(RET_ADDRESS_EQ7) +@THIS +D=M +@3 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +A=M-1 +M=!M +@SP +AM=M-1 +D=M +A=A-1 +M=D&M +@SP +A=M-1 +M=!M +@SP +AM=M-1 +D=M +@ponggame.run$while_end1 +D;JNE +@0 +D=A +@R13 +M=D +@keyboard.keypressed +D=A +@R14 +M=D +@RET_ADDRESS_CALL74 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL74) +@SP +AM=M-1 +D=M +@LCL +A=M +M=D +@THIS +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@bat.move +D=A +@R14 +M=D +@RET_ADDRESS_CALL75 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL75) +@SP +AM=M-1 +D=M +@R5 +M=D +@THIS +D=M +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@ponggame.moveball +D=A +@R14 +M=D +@RET_ADDRESS_CALL76 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL76) +@SP +AM=M-1 +D=M +@R5 +M=D +@ponggame.run$while_exp1 +0;JMP +(ponggame.run$while_end1) +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@130 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_EQ8 +D=A +@6 +0;JMP +(RET_ADDRESS_EQ8) +@SP +AM=M-1 +D=M +@ponggame.run$if_true0 +D;JNE +@ponggame.run$if_false0 +0;JMP +(ponggame.run$if_true0) +@THIS +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=1 +@2 +D=A +@R13 +M=D +@bat.setdirection +D=A +@R14 +M=D +@RET_ADDRESS_CALL77 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL77) +@SP +AM=M-1 +D=M +@R5 +M=D +@ponggame.run$if_end0 +0;JMP +(ponggame.run$if_false0) +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@132 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_EQ9 +D=A +@6 +0;JMP +(RET_ADDRESS_EQ9) +@SP +AM=M-1 +D=M +@ponggame.run$if_true1 +D;JNE +@ponggame.run$if_false1 +0;JMP +(ponggame.run$if_true1) +@THIS +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@bat.setdirection +D=A +@R14 +M=D +@RET_ADDRESS_CALL78 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL78) +@SP +AM=M-1 +D=M +@R5 +M=D +@ponggame.run$if_end1 +0;JMP +(ponggame.run$if_false1) +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@140 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_EQ10 +D=A +@6 +0;JMP +(RET_ADDRESS_EQ10) +@SP +AM=M-1 +D=M +@ponggame.run$if_true2 +D;JNE +@ponggame.run$if_false2 +0;JMP +(ponggame.run$if_true2) +@SP +M=M+1 +A=M-1 +M=0 +@SP +A=M-1 +M=!M +@SP +AM=M-1 +D=M +@THIS +A=M+1 +A=A+1 +A=A+1 +M=D +(ponggame.run$if_false2) +(ponggame.run$if_end1) +(ponggame.run$if_end0) +(ponggame.run$while_exp2) +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@RET_ADDRESS_EQ11 +D=A +@6 +0;JMP +(RET_ADDRESS_EQ11) +@SP +A=M-1 +M=!M +@THIS +D=M +@3 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +A=M-1 +M=!M +@SP +AM=M-1 +D=M +A=A-1 +M=D&M +@SP +A=M-1 +M=!M +@SP +AM=M-1 +D=M +@ponggame.run$while_end2 +D;JNE +@0 +D=A +@R13 +M=D +@keyboard.keypressed +D=A +@R14 +M=D +@RET_ADDRESS_CALL79 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL79) +@SP +AM=M-1 +D=M +@LCL +A=M +M=D +@THIS +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@bat.move +D=A +@R14 +M=D +@RET_ADDRESS_CALL80 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL80) +@SP +AM=M-1 +D=M +@R5 +M=D +@THIS +D=M +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@ponggame.moveball +D=A +@R14 +M=D +@RET_ADDRESS_CALL81 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL81) +@SP +AM=M-1 +D=M +@R5 +M=D +@ponggame.run$while_exp2 +0;JMP +(ponggame.run$while_end2) +@ponggame.run$while_exp0 +0;JMP +(ponggame.run$while_end0) +@THIS +D=M +@3 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@ponggame.run$if_true3 +D;JNE +@ponggame.run$if_false3 +0;JMP +(ponggame.run$if_true3) +@10 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@27 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@output.movecursor +D=A +@R14 +M=D +@RET_ADDRESS_CALL82 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL82) +@SP +AM=M-1 +D=M +@R5 +M=D +@9 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@string.new +D=A +@R14 +M=D +@RET_ADDRESS_CALL83 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL83) +@71 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@string.appendchar +D=A +@R14 +M=D +@RET_ADDRESS_CALL84 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL84) +@97 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@string.appendchar +D=A +@R14 +M=D +@RET_ADDRESS_CALL85 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL85) +@109 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@string.appendchar +D=A +@R14 +M=D +@RET_ADDRESS_CALL86 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL86) +@101 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@string.appendchar +D=A +@R14 +M=D +@RET_ADDRESS_CALL87 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL87) +@32 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@string.appendchar +D=A +@R14 +M=D +@RET_ADDRESS_CALL88 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL88) +@79 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@string.appendchar +D=A +@R14 +M=D +@RET_ADDRESS_CALL89 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL89) +@118 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@string.appendchar +D=A +@R14 +M=D +@RET_ADDRESS_CALL90 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL90) +@101 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@string.appendchar +D=A +@R14 +M=D +@RET_ADDRESS_CALL91 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL91) +@114 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@string.appendchar +D=A +@R14 +M=D +@RET_ADDRESS_CALL92 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL92) +@1 +D=A +@R13 +M=D +@output.printstring +D=A +@R14 +M=D +@RET_ADDRESS_CALL93 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL93) +@SP +AM=M-1 +D=M +@R5 +M=D +(ponggame.run$if_false3) +@SP +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +(ponggame.moveball) +@5 +D=A +(LOOP_ponggame.moveball) +D=D-1 +@SP +AM=M+1 +A=A-1 +M=0 +@LOOP_ponggame.moveball +D;JGT +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THIS +M=D +@THIS +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@ball.move +D=A +@R14 +M=D +@RET_ADDRESS_CALL94 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL94) +@SP +AM=M-1 +D=M +@THIS +A=M+1 +A=A+1 +M=D +@THIS +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@RET_ADDRESS_GT3 +D=A +@22 +0;JMP +(RET_ADDRESS_GT3) +@THIS +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@THIS +D=M +@5 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_EQ12 +D=A +@6 +0;JMP +(RET_ADDRESS_EQ12) +@SP +A=M-1 +M=!M +@SP +AM=M-1 +D=M +A=A-1 +M=D&M +@SP +AM=M-1 +D=M +@ponggame.moveball$if_true0 +D;JNE +@ponggame.moveball$if_false0 +0;JMP +(ponggame.moveball$if_true0) +@THIS +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THIS +A=M+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +AM=M-1 +D=M +@LCL +A=M +M=D +@THIS +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@bat.getleft +D=A +@R14 +M=D +@RET_ADDRESS_CALL95 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL95) +@SP +AM=M-1 +D=M +@LCL +A=M+1 +M=D +@THIS +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@bat.getright +D=A +@R14 +M=D +@RET_ADDRESS_CALL96 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL96) +@SP +AM=M-1 +D=M +@LCL +A=M+1 +A=A+1 +M=D +@THIS +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@ball.getleft +D=A +@R14 +M=D +@RET_ADDRESS_CALL97 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL97) +@SP +AM=M-1 +D=M +@LCL +A=M+1 +A=A+1 +A=A+1 +M=D +@THIS +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@ball.getright +D=A +@R14 +M=D +@RET_ADDRESS_CALL98 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL98) +@SP +AM=M-1 +D=M +@LCL +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@THIS +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@4 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_EQ13 +D=A +@6 +0;JMP +(RET_ADDRESS_EQ13) +@SP +AM=M-1 +D=M +@ponggame.moveball$if_true1 +D;JNE +@ponggame.moveball$if_false1 +0;JMP +(ponggame.moveball$if_true1) +@LCL +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +D=M +@4 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_GT4 +D=A +@22 +0;JMP +(RET_ADDRESS_GT4) +@LCL +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +D=M +@3 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_LT11 +D=A +@38 +0;JMP +(RET_ADDRESS_LT11) +@SP +AM=M-1 +D=M +A=A-1 +M=D|M +@SP +AM=M-1 +D=M +@THIS +A=M+1 +A=A+1 +A=A+1 +M=D +@THIS +D=M +@3 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +A=M-1 +M=!M +@SP +AM=M-1 +D=M +@ponggame.moveball$if_true2 +D;JNE +@ponggame.moveball$if_false2 +0;JMP +(ponggame.moveball$if_true2) +@LCL +D=M +@4 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@10 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@RET_ADDRESS_LT12 +D=A +@38 +0;JMP +(RET_ADDRESS_LT12) +@SP +AM=M-1 +D=M +@ponggame.moveball$if_true3 +D;JNE +@ponggame.moveball$if_false3 +0;JMP +(ponggame.moveball$if_true3) +@SP +M=M+1 +A=M-1 +M=1 +@SP +A=M-1 +D=!M +M=D+1 +@SP +AM=M-1 +D=M +@LCL +A=M +M=D +@ponggame.moveball$if_end3 +0;JMP +(ponggame.moveball$if_false3) +@LCL +D=M +@3 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@10 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=M-D +@RET_ADDRESS_GT5 +D=A +@22 +0;JMP +(RET_ADDRESS_GT5) +@SP +AM=M-1 +D=M +@ponggame.moveball$if_true4 +D;JNE +@ponggame.moveball$if_false4 +0;JMP +(ponggame.moveball$if_true4) +@SP +M=M+1 +A=M-1 +M=1 +@SP +AM=M-1 +D=M +@LCL +A=M +M=D +(ponggame.moveball$if_false4) +(ponggame.moveball$if_end3) +@THIS +D=M +@6 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=M-D +@SP +AM=M-1 +D=M +@THIS +A=M+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@THIS +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@THIS +D=M +@6 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@bat.setwidth +D=A +@R14 +M=D +@RET_ADDRESS_CALL99 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL99) +@SP +AM=M-1 +D=M +@R5 +M=D +@THIS +D=M +@4 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=1 +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@THIS +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@22 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@7 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@output.movecursor +D=A +@R14 +M=D +@RET_ADDRESS_CALL100 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL100) +@SP +AM=M-1 +D=M +@R5 +M=D +@THIS +D=M +@4 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@output.printint +D=A +@R14 +M=D +@RET_ADDRESS_CALL101 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL101) +@SP +AM=M-1 +D=M +@R5 +M=D +(ponggame.moveball$if_false2) +(ponggame.moveball$if_false1) +@THIS +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@ball.bounce +D=A +@R14 +M=D +@RET_ADDRESS_CALL102 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL102) +@SP +AM=M-1 +D=M +@R5 +M=D +(ponggame.moveball$if_false0) +@SP +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +(array.new) +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@RET_ADDRESS_GT6 +D=A +@22 +0;JMP +(RET_ADDRESS_GT6) +@SP +A=M-1 +M=!M +@SP +AM=M-1 +D=M +@array.new$if_true0 +D;JNE +@array.new$if_false0 +0;JMP +(array.new$if_true0) +@2 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@sys.error +D=A +@R14 +M=D +@RET_ADDRESS_CALL103 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL103) +@SP +AM=M-1 +D=M +@R5 +M=D +(array.new$if_false0) +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@memory.alloc +D=A +@R14 +M=D +@RET_ADDRESS_CALL104 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL104) +@54 +0;JMP +(array.dispose) +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THIS +M=D +@THIS +D=M +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@memory.dealloc +D=A +@R14 +M=D +@RET_ADDRESS_CALL105 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL105) +@SP +AM=M-1 +D=M +@R5 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +(keyboard.init) +@SP +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +(keyboard.keypressed) +@24576 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@memory.peek +D=A +@R14 +M=D +@RET_ADDRESS_CALL106 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL106) +@54 +0;JMP +(keyboard.readchar) +@SP +A=M +M=0 +AD=A+1 +M=0 +@SP +M=D+1 +@SP +M=M+1 +A=M-1 +M=0 +@1 +D=A +@R13 +M=D +@output.printchar +D=A +@R14 +M=D +@RET_ADDRESS_CALL107 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL107) +@SP +AM=M-1 +D=M +@R5 +M=D +(keyboard.readchar$while_exp0) +@LCL +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@RET_ADDRESS_EQ14 +D=A +@6 +0;JMP +(RET_ADDRESS_EQ14) +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@RET_ADDRESS_GT7 +D=A +@22 +0;JMP +(RET_ADDRESS_GT7) +@SP +AM=M-1 +D=M +A=A-1 +M=D|M +@SP +A=M-1 +M=!M +@SP +AM=M-1 +D=M +@keyboard.readchar$while_end0 +D;JNE +@0 +D=A +@R13 +M=D +@keyboard.keypressed +D=A +@R14 +M=D +@RET_ADDRESS_CALL108 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL108) +@SP +AM=M-1 +D=M +@LCL +A=M +M=D +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@RET_ADDRESS_GT8 +D=A +@22 +0;JMP +(RET_ADDRESS_GT8) +@SP +AM=M-1 +D=M +@keyboard.readchar$if_true0 +D;JNE +@keyboard.readchar$if_false0 +0;JMP +(keyboard.readchar$if_true0) +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@LCL +A=M+1 +M=D +(keyboard.readchar$if_false0) +@keyboard.readchar$while_exp0 +0;JMP +(keyboard.readchar$while_end0) +@0 +D=A +@R13 +M=D +@string.backspace +D=A +@R14 +M=D +@RET_ADDRESS_CALL109 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL109) +@1 +D=A +@R13 +M=D +@output.printchar +D=A +@R14 +M=D +@RET_ADDRESS_CALL110 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL110) +@SP +AM=M-1 +D=M +@R5 +M=D +@LCL +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@output.printchar +D=A +@R14 +M=D +@RET_ADDRESS_CALL111 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL111) +@SP +AM=M-1 +D=M +@R5 +M=D +@LCL +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +(keyboard.readline) +@5 +D=A +(LOOP_keyboard.readline) +D=D-1 +@SP +AM=M+1 +A=A-1 +M=0 +@LOOP_keyboard.readline +D;JGT +@80 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@string.new +D=A +@R14 +M=D +@RET_ADDRESS_CALL112 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL112) +@SP +AM=M-1 +D=M +@LCL +A=M+1 +A=A+1 +A=A+1 +M=D +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@output.printstring +D=A +@R14 +M=D +@RET_ADDRESS_CALL113 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL113) +@SP +AM=M-1 +D=M +@R5 +M=D +@0 +D=A +@R13 +M=D +@string.newline +D=A +@R14 +M=D +@RET_ADDRESS_CALL114 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL114) +@SP +AM=M-1 +D=M +@LCL +A=M+1 +M=D +@0 +D=A +@R13 +M=D +@string.backspace +D=A +@R14 +M=D +@RET_ADDRESS_CALL115 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL115) +@SP +AM=M-1 +D=M +@LCL +A=M+1 +A=A+1 +M=D +(keyboard.readline$while_exp0) +@LCL +D=M +@4 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +A=M-1 +M=!M +@SP +A=M-1 +M=!M +@SP +AM=M-1 +D=M +@keyboard.readline$while_end0 +D;JNE +@0 +D=A +@R13 +M=D +@keyboard.readchar +D=A +@R14 +M=D +@RET_ADDRESS_CALL116 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL116) +@SP +AM=M-1 +D=M +@LCL +A=M +M=D +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_EQ15 +D=A +@6 +0;JMP +(RET_ADDRESS_EQ15) +@SP +AM=M-1 +D=M +@LCL +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@LCL +D=M +@4 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +A=M-1 +M=!M +@SP +AM=M-1 +D=M +@keyboard.readline$if_true0 +D;JNE +@keyboard.readline$if_false0 +0;JMP +(keyboard.readline$if_true0) +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_EQ16 +D=A +@6 +0;JMP +(RET_ADDRESS_EQ16) +@SP +AM=M-1 +D=M +@keyboard.readline$if_true1 +D;JNE +@keyboard.readline$if_false1 +0;JMP +(keyboard.readline$if_true1) +@LCL +D=M +@3 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@string.eraselastchar +D=A +@R14 +M=D +@RET_ADDRESS_CALL117 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL117) +@SP +AM=M-1 +D=M +@R5 +M=D +@keyboard.readline$if_end1 +0;JMP +(keyboard.readline$if_false1) +@LCL +D=M +@3 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@string.appendchar +D=A +@R14 +M=D +@RET_ADDRESS_CALL118 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL118) +@SP +AM=M-1 +D=M +@LCL +A=M+1 +A=A+1 +A=A+1 +M=D +(keyboard.readline$if_end1) +(keyboard.readline$if_false0) +@keyboard.readline$while_exp0 +0;JMP +(keyboard.readline$while_end0) +@LCL +D=M +@3 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +(keyboard.readint) +@SP +A=M +M=0 +AD=A+1 +M=0 +@SP +M=D+1 +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@keyboard.readline +D=A +@R14 +M=D +@RET_ADDRESS_CALL119 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL119) +@SP +AM=M-1 +D=M +@LCL +A=M +M=D +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@string.intvalue +D=A +@R14 +M=D +@RET_ADDRESS_CALL120 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL120) +@SP +AM=M-1 +D=M +@LCL +A=M+1 +M=D +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@string.dispose +D=A +@R14 +M=D +@RET_ADDRESS_CALL121 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL121) +@SP +AM=M-1 +D=M +@R5 +M=D +@LCL +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +(math.init) +@SP +AM=M+1 +A=A-1 +M=0 +@16 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@array.new +D=A +@R14 +M=D +@RET_ADDRESS_CALL122 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL122) +@SP +AM=M-1 +D=M +@math.1 +M=D +@16 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@array.new +D=A +@R14 +M=D +@RET_ADDRESS_CALL123 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL123) +@SP +AM=M-1 +D=M +@math.0 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@math.0 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +M=M+1 +A=M-1 +M=1 +@SP +AM=M-1 +D=M +@R5 +M=D +@SP +AM=M-1 +D=M +@THAT +M=D +@R5 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THAT +A=M +M=D +(math.init$while_exp0) +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@15 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_LT13 +D=A +@38 +0;JMP +(RET_ADDRESS_LT13) +@SP +A=M-1 +M=!M +@SP +AM=M-1 +D=M +@math.init$while_end0 +D;JNE +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=1 +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@LCL +A=M +M=D +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@math.0 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=1 +@SP +AM=M-1 +D=M +A=A-1 +M=M-D +@math.0 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@THAT +M=D +@THAT +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=1 +@SP +AM=M-1 +D=M +A=A-1 +M=M-D +@math.0 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@THAT +M=D +@THAT +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@R5 +M=D +@SP +AM=M-1 +D=M +@THAT +M=D +@R5 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THAT +A=M +M=D +@math.init$while_exp0 +0;JMP +(math.init$while_end0) +@SP +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +(math.abs) +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@RET_ADDRESS_LT14 +D=A +@38 +0;JMP +(RET_ADDRESS_LT14) +@SP +AM=M-1 +D=M +@math.abs$if_true0 +D;JNE +@math.abs$if_false0 +0;JMP +(math.abs$if_true0) +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +A=M-1 +D=!M +M=D+1 +@SP +AM=M-1 +D=M +@ARG +A=M +M=D +(math.abs$if_false0) +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +(math.multiply) +@5 +D=A +(LOOP_math.multiply) +D=D-1 +@SP +AM=M+1 +A=A-1 +M=0 +@LOOP_math.multiply +D;JGT +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@RET_ADDRESS_LT15 +D=A +@38 +0;JMP +(RET_ADDRESS_LT15) +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@RET_ADDRESS_GT9 +D=A +@22 +0;JMP +(RET_ADDRESS_GT9) +@SP +AM=M-1 +D=M +A=A-1 +M=D&M +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@RET_ADDRESS_GT10 +D=A +@22 +0;JMP +(RET_ADDRESS_GT10) +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@RET_ADDRESS_LT16 +D=A +@38 +0;JMP +(RET_ADDRESS_LT16) +@SP +AM=M-1 +D=M +A=A-1 +M=D&M +@SP +AM=M-1 +D=M +A=A-1 +M=D|M +@SP +AM=M-1 +D=M +@LCL +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@math.abs +D=A +@R14 +M=D +@RET_ADDRESS_CALL124 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL124) +@SP +AM=M-1 +D=M +@ARG +A=M +M=D +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@math.abs +D=A +@R14 +M=D +@RET_ADDRESS_CALL125 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL125) +@SP +AM=M-1 +D=M +@ARG +A=M+1 +M=D +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_LT17 +D=A +@38 +0;JMP +(RET_ADDRESS_LT17) +@SP +AM=M-1 +D=M +@math.multiply$if_true0 +D;JNE +@math.multiply$if_false0 +0;JMP +(math.multiply$if_true0) +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@LCL +A=M+1 +M=D +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@ARG +A=M +M=D +@LCL +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@ARG +A=M+1 +M=D +(math.multiply$if_false0) +(math.multiply$while_exp0) +@LCL +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_LT18 +D=A +@38 +0;JMP +(RET_ADDRESS_LT18) +@SP +A=M-1 +M=!M +@SP +AM=M-1 +D=M +@math.multiply$while_end0 +D;JNE +@LCL +D=M +@3 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@math.0 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@THAT +M=D +@THAT +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D&M +@SP +M=M+1 +A=M-1 +M=0 +@RET_ADDRESS_GT11 +D=A +@22 +0;JMP +(RET_ADDRESS_GT11) +@SP +AM=M-1 +D=M +@math.multiply$if_true1 +D;JNE +@math.multiply$if_false1 +0;JMP +(math.multiply$if_true1) +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@LCL +A=M +M=D +@LCL +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +D=M +@3 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@math.0 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@THAT +M=D +@THAT +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@LCL +A=M+1 +A=A+1 +M=D +(math.multiply$if_false1) +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@ARG +A=M +M=D +@LCL +D=M +@3 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=1 +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@LCL +A=M+1 +A=A+1 +A=A+1 +M=D +@math.multiply$while_exp0 +0;JMP +(math.multiply$while_end0) +@LCL +D=M +@4 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@math.multiply$if_true2 +D;JNE +@math.multiply$if_false2 +0;JMP +(math.multiply$if_true2) +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +A=M-1 +D=!M +M=D+1 +@SP +AM=M-1 +D=M +@LCL +A=M +M=D +(math.multiply$if_false2) +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +(math.divide) +@4 +D=A +(LOOP_math.divide) +D=D-1 +@SP +AM=M+1 +A=A-1 +M=0 +@LOOP_math.divide +D;JGT +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@RET_ADDRESS_EQ17 +D=A +@6 +0;JMP +(RET_ADDRESS_EQ17) +@SP +AM=M-1 +D=M +@math.divide$if_true0 +D;JNE +@math.divide$if_false0 +0;JMP +(math.divide$if_true0) +@3 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@sys.error +D=A +@R14 +M=D +@RET_ADDRESS_CALL126 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL126) +@SP +AM=M-1 +D=M +@R5 +M=D +(math.divide$if_false0) +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@RET_ADDRESS_LT19 +D=A +@38 +0;JMP +(RET_ADDRESS_LT19) +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@RET_ADDRESS_GT12 +D=A +@22 +0;JMP +(RET_ADDRESS_GT12) +@SP +AM=M-1 +D=M +A=A-1 +M=D&M +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@RET_ADDRESS_GT13 +D=A +@22 +0;JMP +(RET_ADDRESS_GT13) +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@RET_ADDRESS_LT20 +D=A +@38 +0;JMP +(RET_ADDRESS_LT20) +@SP +AM=M-1 +D=M +A=A-1 +M=D&M +@SP +AM=M-1 +D=M +A=A-1 +M=D|M +@SP +AM=M-1 +D=M +@LCL +A=M+1 +A=A+1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@math.1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@math.abs +D=A +@R14 +M=D +@RET_ADDRESS_CALL127 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL127) +@SP +AM=M-1 +D=M +@R5 +M=D +@SP +AM=M-1 +D=M +@THAT +M=D +@R5 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THAT +A=M +M=D +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@math.abs +D=A +@R14 +M=D +@RET_ADDRESS_CALL128 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL128) +@SP +AM=M-1 +D=M +@ARG +A=M +M=D +(math.divide$while_exp0) +@LCL +D=M +@3 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +A=M-1 +M=!M +@SP +A=M-1 +M=!M +@SP +AM=M-1 +D=M +@math.divide$while_end0 +D;JNE +@32767 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@math.1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@THAT +M=D +@THAT +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=M-D +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@math.1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@THAT +M=D +@THAT +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_LT21 +D=A +@38 +0;JMP +(RET_ADDRESS_LT21) +@SP +AM=M-1 +D=M +@LCL +A=M+1 +A=A+1 +A=A+1 +M=D +@LCL +D=M +@3 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +A=M-1 +M=!M +@SP +AM=M-1 +D=M +@math.divide$if_true1 +D;JNE +@math.divide$if_false1 +0;JMP +(math.divide$if_true1) +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=1 +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@math.1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@math.1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@THAT +M=D +@THAT +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@math.1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@THAT +M=D +@THAT +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@R5 +M=D +@SP +AM=M-1 +D=M +@THAT +M=D +@R5 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THAT +A=M +M=D +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=1 +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@math.1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@THAT +M=D +@THAT +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_GT14 +D=A +@22 +0;JMP +(RET_ADDRESS_GT14) +@SP +AM=M-1 +D=M +@LCL +A=M+1 +A=A+1 +A=A+1 +M=D +@LCL +D=M +@3 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +A=M-1 +M=!M +@SP +AM=M-1 +D=M +@math.divide$if_true2 +D;JNE +@math.divide$if_false2 +0;JMP +(math.divide$if_true2) +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=1 +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@LCL +A=M +M=D +(math.divide$if_false2) +(math.divide$if_false1) +@math.divide$while_exp0 +0;JMP +(math.divide$while_end0) +(math.divide$while_exp1) +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=1 +@SP +A=M-1 +D=!M +M=D+1 +@RET_ADDRESS_GT15 +D=A +@22 +0;JMP +(RET_ADDRESS_GT15) +@SP +A=M-1 +M=!M +@SP +AM=M-1 +D=M +@math.divide$while_end1 +D;JNE +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@math.1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@THAT +M=D +@THAT +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_GT16 +D=A +@22 +0;JMP +(RET_ADDRESS_GT16) +@SP +A=M-1 +M=!M +@SP +AM=M-1 +D=M +@math.divide$if_true3 +D;JNE +@math.divide$if_false3 +0;JMP +(math.divide$if_true3) +@LCL +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@math.0 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@THAT +M=D +@THAT +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@LCL +A=M+1 +M=D +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@math.1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@THAT +M=D +@THAT +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=M-D +@SP +AM=M-1 +D=M +@ARG +A=M +M=D +(math.divide$if_false3) +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=1 +@SP +AM=M-1 +D=M +A=A-1 +M=M-D +@SP +AM=M-1 +D=M +@LCL +A=M +M=D +@math.divide$while_exp1 +0;JMP +(math.divide$while_end1) +@LCL +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@math.divide$if_true4 +D;JNE +@math.divide$if_false4 +0;JMP +(math.divide$if_true4) +@LCL +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +A=M-1 +D=!M +M=D+1 +@SP +AM=M-1 +D=M +@LCL +A=M+1 +M=D +(math.divide$if_false4) +@LCL +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +(math.sqrt) +@4 +D=A +(LOOP_math.sqrt) +D=D-1 +@SP +AM=M+1 +A=A-1 +M=0 +@LOOP_math.sqrt +D;JGT +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@RET_ADDRESS_LT22 +D=A +@38 +0;JMP +(RET_ADDRESS_LT22) +@SP +AM=M-1 +D=M +@math.sqrt$if_true0 +D;JNE +@math.sqrt$if_false0 +0;JMP +(math.sqrt$if_true0) +@4 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@sys.error +D=A +@R14 +M=D +@RET_ADDRESS_CALL129 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL129) +@SP +AM=M-1 +D=M +@R5 +M=D +(math.sqrt$if_false0) +@7 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@LCL +A=M +M=D +(math.sqrt$while_exp0) +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=1 +@SP +A=M-1 +D=!M +M=D+1 +@RET_ADDRESS_GT17 +D=A +@22 +0;JMP +(RET_ADDRESS_GT17) +@SP +A=M-1 +M=!M +@SP +AM=M-1 +D=M +@math.sqrt$while_end0 +D;JNE +@LCL +D=M +@3 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@math.0 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@THAT +M=D +@THAT +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@LCL +A=M+1 +M=D +@LCL +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@math.multiply +D=A +@R14 +M=D +@RET_ADDRESS_CALL130 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL130) +@SP +AM=M-1 +D=M +@LCL +A=M+1 +A=A+1 +M=D +@LCL +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_GT18 +D=A +@22 +0;JMP +(RET_ADDRESS_GT18) +@SP +A=M-1 +M=!M +@LCL +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@RET_ADDRESS_LT23 +D=A +@38 +0;JMP +(RET_ADDRESS_LT23) +@SP +A=M-1 +M=!M +@SP +AM=M-1 +D=M +A=A-1 +M=D&M +@SP +AM=M-1 +D=M +@math.sqrt$if_true1 +D;JNE +@math.sqrt$if_false1 +0;JMP +(math.sqrt$if_true1) +@LCL +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@LCL +A=M+1 +A=A+1 +A=A+1 +M=D +(math.sqrt$if_false1) +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=1 +@SP +AM=M-1 +D=M +A=A-1 +M=M-D +@SP +AM=M-1 +D=M +@LCL +A=M +M=D +@math.sqrt$while_exp0 +0;JMP +(math.sqrt$while_end0) +@LCL +D=M +@3 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +(math.max) +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_GT19 +D=A +@22 +0;JMP +(RET_ADDRESS_GT19) +@SP +AM=M-1 +D=M +@math.max$if_true0 +D;JNE +@math.max$if_false0 +0;JMP +(math.max$if_true0) +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@ARG +A=M+1 +M=D +(math.max$if_false0) +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +(math.min) +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_LT24 +D=A +@38 +0;JMP +(RET_ADDRESS_LT24) +@SP +AM=M-1 +D=M +@math.min$if_true0 +D;JNE +@math.min$if_false0 +0;JMP +(math.min$if_true0) +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@ARG +A=M+1 +M=D +(math.min$if_false0) +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +(memory.init) +@SP +M=M+1 +A=M-1 +M=0 +@SP +AM=M-1 +D=M +@memory.0 +M=D +@2048 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@memory.0 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@14334 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@R5 +M=D +@SP +AM=M-1 +D=M +@THAT +M=D +@R5 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THAT +A=M +M=D +@2049 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@memory.0 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@2050 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@R5 +M=D +@SP +AM=M-1 +D=M +@THAT +M=D +@R5 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THAT +A=M +M=D +@SP +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +(memory.peek) +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@memory.0 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@THAT +M=D +@THAT +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +(memory.poke) +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@memory.0 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@R5 +M=D +@SP +AM=M-1 +D=M +@THAT +M=D +@R5 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THAT +A=M +M=D +@SP +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +(memory.alloc) +@SP +AM=M+1 +A=A-1 +M=0 +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=1 +@RET_ADDRESS_LT25 +D=A +@38 +0;JMP +(RET_ADDRESS_LT25) +@SP +AM=M-1 +D=M +@memory.alloc$if_true0 +D;JNE +@memory.alloc$if_false0 +0;JMP +(memory.alloc$if_true0) +@5 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@sys.error +D=A +@R14 +M=D +@RET_ADDRESS_CALL131 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL131) +@SP +AM=M-1 +D=M +@R5 +M=D +(memory.alloc$if_false0) +@2048 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@LCL +A=M +M=D +(memory.alloc$while_exp0) +@SP +M=M+1 +A=M-1 +M=0 +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@THAT +M=D +@THAT +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_LT26 +D=A +@38 +0;JMP +(RET_ADDRESS_LT26) +@SP +A=M-1 +M=!M +@SP +AM=M-1 +D=M +@memory.alloc$while_end0 +D;JNE +@SP +M=M+1 +A=M-1 +M=1 +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@THAT +M=D +@THAT +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@LCL +A=M +M=D +@memory.alloc$while_exp0 +0;JMP +(memory.alloc$while_end0) +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@16379 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_GT20 +D=A +@22 +0;JMP +(RET_ADDRESS_GT20) +@SP +AM=M-1 +D=M +@memory.alloc$if_true1 +D;JNE +@memory.alloc$if_false1 +0;JMP +(memory.alloc$if_true1) +@6 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@sys.error +D=A +@R14 +M=D +@RET_ADDRESS_CALL132 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL132) +@SP +AM=M-1 +D=M +@R5 +M=D +(memory.alloc$if_false1) +@SP +M=M+1 +A=M-1 +M=0 +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@THAT +M=D +@THAT +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@RET_ADDRESS_GT21 +D=A +@22 +0;JMP +(RET_ADDRESS_GT21) +@SP +AM=M-1 +D=M +@memory.alloc$if_true2 +D;JNE +@memory.alloc$if_false2 +0;JMP +(memory.alloc$if_true2) +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +M=M+1 +A=M-1 +M=0 +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@THAT +M=D +@THAT +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=M-D +@2 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=M-D +@SP +AM=M-1 +D=M +@R5 +M=D +@SP +AM=M-1 +D=M +@THAT +M=D +@R5 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THAT +A=M +M=D +@SP +M=M+1 +A=M-1 +M=1 +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@THAT +M=D +@THAT +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@RET_ADDRESS_EQ18 +D=A +@6 +0;JMP +(RET_ADDRESS_EQ18) +@SP +AM=M-1 +D=M +@memory.alloc$if_true3 +D;JNE +@memory.alloc$if_false3 +0;JMP +(memory.alloc$if_true3) +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@3 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@4 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@R5 +M=D +@SP +AM=M-1 +D=M +@THAT +M=D +@R5 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THAT +A=M +M=D +@memory.alloc$if_end3 +0;JMP +(memory.alloc$if_false3) +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@3 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +M=M+1 +A=M-1 +M=1 +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@THAT +M=D +@THAT +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@R5 +M=D +@SP +AM=M-1 +D=M +@THAT +M=D +@R5 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THAT +A=M +M=D +(memory.alloc$if_end3) +@SP +M=M+1 +A=M-1 +M=1 +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@2 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@R5 +M=D +@SP +AM=M-1 +D=M +@THAT +M=D +@R5 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THAT +A=M +M=D +(memory.alloc$if_false2) +@SP +M=M+1 +A=M-1 +M=0 +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +M=M+1 +A=M-1 +M=0 +@SP +AM=M-1 +D=M +@R5 +M=D +@SP +AM=M-1 +D=M +@THAT +M=D +@R5 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THAT +A=M +M=D +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@54 +0;JMP +(memory.dealloc) +@SP +A=M +M=0 +AD=A+1 +M=0 +@SP +M=D+1 +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=M-D +@SP +AM=M-1 +D=M +@LCL +A=M +M=D +@SP +M=M+1 +A=M-1 +M=1 +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@THAT +M=D +@THAT +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@LCL +A=M+1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@LCL +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@THAT +M=D +@THAT +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@RET_ADDRESS_EQ19 +D=A +@6 +0;JMP +(RET_ADDRESS_EQ19) +@SP +AM=M-1 +D=M +@memory.dealloc$if_true0 +D;JNE +@memory.dealloc$if_false0 +0;JMP +(memory.dealloc$if_true0) +@SP +M=M+1 +A=M-1 +M=0 +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +M=M+1 +A=M-1 +M=1 +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@THAT +M=D +@THAT +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=M-D +@2 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=M-D +@SP +AM=M-1 +D=M +@R5 +M=D +@SP +AM=M-1 +D=M +@THAT +M=D +@R5 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THAT +A=M +M=D +@memory.dealloc$if_end0 +0;JMP +(memory.dealloc$if_false0) +@SP +M=M+1 +A=M-1 +M=0 +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +M=M+1 +A=M-1 +M=1 +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@THAT +M=D +@THAT +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=M-D +@SP +M=M+1 +A=M-1 +M=0 +@LCL +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@THAT +M=D +@THAT +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@R5 +M=D +@SP +AM=M-1 +D=M +@THAT +M=D +@R5 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THAT +A=M +M=D +@SP +M=M+1 +A=M-1 +M=1 +@LCL +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@THAT +M=D +@THAT +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@RET_ADDRESS_EQ20 +D=A +@6 +0;JMP +(RET_ADDRESS_EQ20) +@SP +AM=M-1 +D=M +@memory.dealloc$if_true1 +D;JNE +@memory.dealloc$if_false1 +0;JMP +(memory.dealloc$if_true1) +@SP +M=M+1 +A=M-1 +M=1 +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@R5 +M=D +@SP +AM=M-1 +D=M +@THAT +M=D +@R5 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THAT +A=M +M=D +@memory.dealloc$if_end1 +0;JMP +(memory.dealloc$if_false1) +@SP +M=M+1 +A=M-1 +M=1 +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +M=M+1 +A=M-1 +M=1 +@LCL +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@THAT +M=D +@THAT +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@R5 +M=D +@SP +AM=M-1 +D=M +@THAT +M=D +@R5 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THAT +A=M +M=D +(memory.dealloc$if_end1) +(memory.dealloc$if_end0) +@SP +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +(output.init) +@16384 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@output.4 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +A=M-1 +M=!M +@SP +AM=M-1 +D=M +@output.2 +M=D +@32 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@output.1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +AM=M-1 +D=M +@output.0 +M=D +@6 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@string.new +D=A +@R14 +M=D +@RET_ADDRESS_CALL133 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL133) +@SP +AM=M-1 +D=M +@output.3 +M=D +@0 +D=A +@R13 +M=D +@output.initmap +D=A +@R14 +M=D +@RET_ADDRESS_CALL134 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL134) +@SP +AM=M-1 +D=M +@R5 +M=D +@0 +D=A +@R13 +M=D +@output.createshiftedmap +D=A +@R14 +M=D +@RET_ADDRESS_CALL135 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL135) +@SP +AM=M-1 +D=M +@R5 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +(output.initmap) +@127 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@array.new +D=A +@R14 +M=D +@RET_ADDRESS_CALL136 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL136) +@SP +AM=M-1 +D=M +@output.5 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@63 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@63 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@63 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@63 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@63 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@63 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@63 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@63 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@63 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL137 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL137) +@SP +AM=M-1 +D=M +@R5 +M=D +@32 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL138 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL138) +@SP +AM=M-1 +D=M +@R5 +M=D +@33 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@30 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@30 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@30 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL139 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL139) +@SP +AM=M-1 +D=M +@R5 +M=D +@34 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@54 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@54 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@20 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL140 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL140) +@SP +AM=M-1 +D=M +@R5 +M=D +@35 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@18 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@18 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@63 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@18 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@18 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@63 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@18 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@18 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL141 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL141) +@SP +AM=M-1 +D=M +@R5 +M=D +@36 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@30 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@3 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@30 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@48 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@30 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL142 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL142) +@SP +AM=M-1 +D=M +@R5 +M=D +@37 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@35 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@24 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@6 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@49 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL143 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL143) +@SP +AM=M-1 +D=M +@R5 +M=D +@38 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@30 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@30 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@54 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@27 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@27 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@27 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@54 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL144 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL144) +@SP +AM=M-1 +D=M +@R5 +M=D +@39 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@6 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL145 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL145) +@SP +AM=M-1 +D=M +@R5 +M=D +@40 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@24 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@6 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@6 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@6 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@6 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@6 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@24 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL146 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL146) +@SP +AM=M-1 +D=M +@R5 +M=D +@41 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@6 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@24 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@24 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@24 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@24 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@24 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@6 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL147 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL147) +@SP +AM=M-1 +D=M +@R5 +M=D +@42 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@30 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@63 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@30 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL148 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL148) +@SP +AM=M-1 +D=M +@R5 +M=D +@43 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@63 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL149 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL149) +@SP +AM=M-1 +D=M +@R5 +M=D +@44 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@6 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL150 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL150) +@SP +AM=M-1 +D=M +@R5 +M=D +@45 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@63 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL151 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL151) +@SP +AM=M-1 +D=M +@R5 +M=D +@46 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL152 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL152) +@SP +AM=M-1 +D=M +@R5 +M=D +@47 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@32 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@48 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@24 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@6 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@3 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=1 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL153 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL153) +@SP +AM=M-1 +D=M +@R5 +M=D +@48 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@30 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@30 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL154 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL154) +@SP +AM=M-1 +D=M +@R5 +M=D +@49 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@14 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@15 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@63 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL155 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL155) +@SP +AM=M-1 +D=M +@R5 +M=D +@50 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@30 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@48 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@24 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@6 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@3 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@63 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL156 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL156) +@SP +AM=M-1 +D=M +@R5 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@30 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@48 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@48 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@28 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@48 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@48 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@30 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL157 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL157) +@SP +AM=M-1 +D=M +@R5 +M=D +@52 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@16 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@24 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@28 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@26 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@25 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@63 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@24 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@24 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@60 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL158 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL158) +@SP +AM=M-1 +D=M +@R5 +M=D +@53 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@63 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@3 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@3 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@31 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@48 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@48 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@48 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@30 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL159 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL159) +@SP +AM=M-1 +D=M +@R5 +M=D +@54 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@28 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@6 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@3 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@3 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@31 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@30 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL160 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL160) +@SP +AM=M-1 +D=M +@R5 +M=D +@55 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@63 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@49 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@48 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@48 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@24 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL161 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL161) +@SP +AM=M-1 +D=M +@R5 +M=D +@56 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@30 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@30 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@30 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL162 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL162) +@SP +AM=M-1 +D=M +@R5 +M=D +@57 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@30 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@62 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@48 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@48 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@24 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@14 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL163 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL163) +@SP +AM=M-1 +D=M +@R5 +M=D +@58 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL164 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL164) +@SP +AM=M-1 +D=M +@R5 +M=D +@59 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@6 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL165 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL165) +@SP +AM=M-1 +D=M +@R5 +M=D +@60 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@24 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@6 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@3 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@6 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@24 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL166 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL166) +@SP +AM=M-1 +D=M +@R5 +M=D +@61 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@63 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@63 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL167 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL167) +@SP +AM=M-1 +D=M +@R5 +M=D +@62 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@3 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@6 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@24 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@6 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@3 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL168 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL168) +@SP +AM=M-1 +D=M +@R5 +M=D +@64 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@30 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@59 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@59 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@59 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@27 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@3 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@30 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL169 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL169) +@SP +AM=M-1 +D=M +@R5 +M=D +@63 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@30 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@24 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL170 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL170) +@SP +AM=M-1 +D=M +@R5 +M=D +@65 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@30 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@63 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL171 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL171) +@SP +AM=M-1 +D=M +@R5 +M=D +@66 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@31 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@31 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@31 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL172 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL172) +@SP +AM=M-1 +D=M +@R5 +M=D +@67 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@28 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@54 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@35 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@3 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@3 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@3 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@35 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@54 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@28 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL173 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL173) +@SP +AM=M-1 +D=M +@R5 +M=D +@68 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@15 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@27 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@27 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@15 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL174 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL174) +@SP +AM=M-1 +D=M +@R5 +M=D +@69 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@63 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@35 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@11 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@15 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@11 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@35 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@63 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL175 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL175) +@SP +AM=M-1 +D=M +@R5 +M=D +@70 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@63 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@35 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@11 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@15 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@11 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@3 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@3 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@3 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL176 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL176) +@SP +AM=M-1 +D=M +@R5 +M=D +@71 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@28 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@54 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@35 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@3 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@59 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@54 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@44 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL177 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL177) +@SP +AM=M-1 +D=M +@R5 +M=D +@72 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@63 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL178 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL178) +@SP +AM=M-1 +D=M +@R5 +M=D +@73 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@30 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@30 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL179 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL179) +@SP +AM=M-1 +D=M +@R5 +M=D +@74 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@60 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@24 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@24 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@24 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@24 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@24 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@27 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@27 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@14 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL180 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL180) +@SP +AM=M-1 +D=M +@R5 +M=D +@75 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@27 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@15 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@27 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL181 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL181) +@SP +AM=M-1 +D=M +@R5 +M=D +@76 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@3 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@3 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@3 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@3 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@3 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@3 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@35 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@63 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL182 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL182) +@SP +AM=M-1 +D=M +@R5 +M=D +@77 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@33 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@63 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@63 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL183 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL183) +@SP +AM=M-1 +D=M +@R5 +M=D +@78 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@55 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@55 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@63 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@59 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@59 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL184 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL184) +@SP +AM=M-1 +D=M +@R5 +M=D +@79 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@30 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@30 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL185 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL185) +@SP +AM=M-1 +D=M +@R5 +M=D +@80 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@31 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@31 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@3 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@3 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@3 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@3 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL186 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL186) +@SP +AM=M-1 +D=M +@R5 +M=D +@81 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@30 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@63 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@59 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@30 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@48 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL187 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL187) +@SP +AM=M-1 +D=M +@R5 +M=D +@82 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@31 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@31 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@27 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL188 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL188) +@SP +AM=M-1 +D=M +@R5 +M=D +@83 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@30 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@6 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@28 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@48 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@30 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL189 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL189) +@SP +AM=M-1 +D=M +@R5 +M=D +@84 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@63 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@63 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@45 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@30 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL190 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL190) +@SP +AM=M-1 +D=M +@R5 +M=D +@85 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@30 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL191 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL191) +@SP +AM=M-1 +D=M +@R5 +M=D +@86 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@30 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@30 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL192 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL192) +@SP +AM=M-1 +D=M +@R5 +M=D +@87 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@63 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@63 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@63 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@18 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL193 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL193) +@SP +AM=M-1 +D=M +@R5 +M=D +@88 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@30 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@30 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@30 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@30 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL194 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL194) +@SP +AM=M-1 +D=M +@R5 +M=D +@89 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@30 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@30 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL195 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL195) +@SP +AM=M-1 +D=M +@R5 +M=D +@90 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@63 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@49 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@24 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@6 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@35 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@63 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL196 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL196) +@SP +AM=M-1 +D=M +@R5 +M=D +@91 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@30 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@6 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@6 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@6 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@6 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@6 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@6 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@6 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@30 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL197 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL197) +@SP +AM=M-1 +D=M +@R5 +M=D +@92 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=1 +@3 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@6 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@24 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@48 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@32 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL198 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL198) +@SP +AM=M-1 +D=M +@R5 +M=D +@93 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@30 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@24 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@24 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@24 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@24 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@24 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@24 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@24 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@30 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL199 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL199) +@SP +AM=M-1 +D=M +@R5 +M=D +@94 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@8 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@28 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@54 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL200 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL200) +@SP +AM=M-1 +D=M +@R5 +M=D +@95 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@63 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL201 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL201) +@SP +AM=M-1 +D=M +@R5 +M=D +@96 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@6 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@24 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL202 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL202) +@SP +AM=M-1 +D=M +@R5 +M=D +@97 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@14 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@24 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@30 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@27 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@27 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@54 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL203 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL203) +@SP +AM=M-1 +D=M +@R5 +M=D +@98 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@3 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@3 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@3 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@15 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@27 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@30 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL204 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL204) +@SP +AM=M-1 +D=M +@R5 +M=D +@99 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@30 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@3 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@3 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@30 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL205 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL205) +@SP +AM=M-1 +D=M +@R5 +M=D +@100 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@48 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@48 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@48 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@60 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@54 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@30 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL206 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL206) +@SP +AM=M-1 +D=M +@R5 +M=D +@101 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@30 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@63 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@3 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@30 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL207 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL207) +@SP +AM=M-1 +D=M +@R5 +M=D +@102 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@28 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@54 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@38 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@6 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@15 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@6 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@6 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@6 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@15 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL208 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL208) +@SP +AM=M-1 +D=M +@R5 +M=D +@103 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@30 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@62 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@48 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@30 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL209 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL209) +@SP +AM=M-1 +D=M +@R5 +M=D +@104 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@3 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@3 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@3 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@27 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@55 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL210 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL210) +@SP +AM=M-1 +D=M +@R5 +M=D +@105 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@14 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@30 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL211 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL211) +@SP +AM=M-1 +D=M +@R5 +M=D +@106 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@48 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@48 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@56 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@48 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@48 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@48 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@48 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@30 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL212 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL212) +@SP +AM=M-1 +D=M +@R5 +M=D +@107 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@3 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@3 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@3 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@27 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@15 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@15 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@27 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL213 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL213) +@SP +AM=M-1 +D=M +@R5 +M=D +@108 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@14 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@30 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL214 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL214) +@SP +AM=M-1 +D=M +@R5 +M=D +@109 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@29 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@63 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@43 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@43 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@43 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@43 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL215 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL215) +@SP +AM=M-1 +D=M +@R5 +M=D +@110 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@29 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL216 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL216) +@SP +AM=M-1 +D=M +@R5 +M=D +@111 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@30 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@30 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL217 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL217) +@SP +AM=M-1 +D=M +@R5 +M=D +@112 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@30 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@31 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@3 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@3 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL218 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL218) +@SP +AM=M-1 +D=M +@R5 +M=D +@113 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@30 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@62 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@48 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@48 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL219 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL219) +@SP +AM=M-1 +D=M +@R5 +M=D +@114 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@29 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@55 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@3 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@3 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@7 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL220 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL220) +@SP +AM=M-1 +D=M +@R5 +M=D +@115 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@30 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@6 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@24 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@30 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL221 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL221) +@SP +AM=M-1 +D=M +@R5 +M=D +@116 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@4 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@6 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@6 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@15 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@6 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@6 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@6 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@54 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@28 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL222 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL222) +@SP +AM=M-1 +D=M +@R5 +M=D +@117 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@27 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@27 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@27 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@27 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@27 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@54 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL223 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL223) +@SP +AM=M-1 +D=M +@R5 +M=D +@118 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@30 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL224 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL224) +@SP +AM=M-1 +D=M +@R5 +M=D +@119 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@63 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@63 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@18 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL225 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL225) +@SP +AM=M-1 +D=M +@R5 +M=D +@120 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@30 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@30 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL226 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL226) +@SP +AM=M-1 +D=M +@R5 +M=D +@121 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@62 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@48 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@24 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@15 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL227 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL227) +@SP +AM=M-1 +D=M +@R5 +M=D +@122 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@63 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@27 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@6 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@51 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@63 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL228 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL228) +@SP +AM=M-1 +D=M +@R5 +M=D +@123 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@56 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@7 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@56 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL229 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL229) +@SP +AM=M-1 +D=M +@R5 +M=D +@124 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL230 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL230) +@SP +AM=M-1 +D=M +@R5 +M=D +@125 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@7 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@56 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@7 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL231 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL231) +@SP +AM=M-1 +D=M +@R5 +M=D +@126 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@38 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@45 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@25 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@SP +M=M+1 +A=M-1 +M=0 +@12 +D=A +@R13 +M=D +@output.create +D=A +@R14 +M=D +@RET_ADDRESS_CALL232 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL232) +@SP +AM=M-1 +D=M +@R5 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +(output.create) +@SP +AM=M+1 +A=A-1 +M=0 +@11 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@array.new +D=A +@R14 +M=D +@RET_ADDRESS_CALL233 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL233) +@SP +AM=M-1 +D=M +@LCL +A=M +M=D +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@output.5 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@R5 +M=D +@SP +AM=M-1 +D=M +@THAT +M=D +@R5 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THAT +A=M +M=D +@SP +M=M+1 +A=M-1 +M=0 +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@R5 +M=D +@SP +AM=M-1 +D=M +@THAT +M=D +@R5 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THAT +A=M +M=D +@SP +M=M+1 +A=M-1 +M=1 +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@ARG +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@R5 +M=D +@SP +AM=M-1 +D=M +@THAT +M=D +@R5 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THAT +A=M +M=D +@2 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@ARG +D=M +@3 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@R5 +M=D +@SP +AM=M-1 +D=M +@THAT +M=D +@R5 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THAT +A=M +M=D +@3 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@ARG +D=M +@4 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@R5 +M=D +@SP +AM=M-1 +D=M +@THAT +M=D +@R5 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THAT +A=M +M=D +@4 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@ARG +D=M +@5 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@R5 +M=D +@SP +AM=M-1 +D=M +@THAT +M=D +@R5 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THAT +A=M +M=D +@5 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@ARG +D=M +@6 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@R5 +M=D +@SP +AM=M-1 +D=M +@THAT +M=D +@R5 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THAT +A=M +M=D +@6 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@ARG +D=M +@7 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@R5 +M=D +@SP +AM=M-1 +D=M +@THAT +M=D +@R5 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THAT +A=M +M=D +@7 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@ARG +D=M +@8 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@R5 +M=D +@SP +AM=M-1 +D=M +@THAT +M=D +@R5 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THAT +A=M +M=D +@8 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@ARG +D=M +@9 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@R5 +M=D +@SP +AM=M-1 +D=M +@THAT +M=D +@R5 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THAT +A=M +M=D +@9 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@ARG +D=M +@10 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@R5 +M=D +@SP +AM=M-1 +D=M +@THAT +M=D +@R5 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THAT +A=M +M=D +@10 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@ARG +D=M +@11 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@R5 +M=D +@SP +AM=M-1 +D=M +@THAT +M=D +@R5 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THAT +A=M +M=D +@SP +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +(output.createshiftedmap) +@4 +D=A +(LOOP_output.createshiftedmap) +D=D-1 +@SP +AM=M+1 +A=A-1 +M=0 +@LOOP_output.createshiftedmap +D;JGT +@127 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@array.new +D=A +@R14 +M=D +@RET_ADDRESS_CALL234 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL234) +@SP +AM=M-1 +D=M +@output.6 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +AM=M-1 +D=M +@LCL +A=M+1 +A=A+1 +M=D +(output.createshiftedmap$while_exp0) +@LCL +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@127 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_LT27 +D=A +@38 +0;JMP +(RET_ADDRESS_LT27) +@SP +A=M-1 +M=!M +@SP +AM=M-1 +D=M +@output.createshiftedmap$while_end0 +D;JNE +@LCL +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@output.5 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@THAT +M=D +@THAT +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@LCL +A=M +M=D +@11 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@array.new +D=A +@R14 +M=D +@RET_ADDRESS_CALL235 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL235) +@SP +AM=M-1 +D=M +@LCL +A=M+1 +M=D +@LCL +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@output.6 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@LCL +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@R5 +M=D +@SP +AM=M-1 +D=M +@THAT +M=D +@R5 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THAT +A=M +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +AM=M-1 +D=M +@LCL +A=M+1 +A=A+1 +A=A+1 +M=D +(output.createshiftedmap$while_exp1) +@LCL +D=M +@3 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@11 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_LT28 +D=A +@38 +0;JMP +(RET_ADDRESS_LT28) +@SP +A=M-1 +M=!M +@SP +AM=M-1 +D=M +@output.createshiftedmap$while_end1 +D;JNE +@LCL +D=M +@3 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@LCL +D=M +@3 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@THAT +M=D +@THAT +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@256 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@math.multiply +D=A +@R14 +M=D +@RET_ADDRESS_CALL236 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL236) +@SP +AM=M-1 +D=M +@R5 +M=D +@SP +AM=M-1 +D=M +@THAT +M=D +@R5 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THAT +A=M +M=D +@LCL +D=M +@3 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=1 +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@LCL +A=M+1 +A=A+1 +A=A+1 +M=D +@output.createshiftedmap$while_exp1 +0;JMP +(output.createshiftedmap$while_end1) +@LCL +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@RET_ADDRESS_EQ21 +D=A +@6 +0;JMP +(RET_ADDRESS_EQ21) +@SP +AM=M-1 +D=M +@output.createshiftedmap$if_true0 +D;JNE +@output.createshiftedmap$if_false0 +0;JMP +(output.createshiftedmap$if_true0) +@32 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@LCL +A=M+1 +A=A+1 +M=D +@output.createshiftedmap$if_end0 +0;JMP +(output.createshiftedmap$if_false0) +@LCL +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=1 +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@LCL +A=M+1 +A=A+1 +M=D +(output.createshiftedmap$if_end0) +@output.createshiftedmap$while_exp0 +0;JMP +(output.createshiftedmap$while_end0) +@SP +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +(output.getmap) +@SP +AM=M+1 +A=A-1 +M=0 +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@32 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_LT29 +D=A +@38 +0;JMP +(RET_ADDRESS_LT29) +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@126 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_GT22 +D=A +@22 +0;JMP +(RET_ADDRESS_GT22) +@SP +AM=M-1 +D=M +A=A-1 +M=D|M +@SP +AM=M-1 +D=M +@output.getmap$if_true0 +D;JNE +@output.getmap$if_false0 +0;JMP +(output.getmap$if_true0) +@SP +M=M+1 +A=M-1 +M=0 +@SP +AM=M-1 +D=M +@ARG +A=M +M=D +(output.getmap$if_false0) +@output.2 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@output.getmap$if_true1 +D;JNE +@output.getmap$if_false1 +0;JMP +(output.getmap$if_true1) +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@output.5 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@THAT +M=D +@THAT +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@LCL +A=M +M=D +@output.getmap$if_end1 +0;JMP +(output.getmap$if_false1) +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@output.6 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@THAT +M=D +@THAT +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@LCL +A=M +M=D +(output.getmap$if_end1) +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +(output.drawchar) +@4 +D=A +(LOOP_output.drawchar) +D=D-1 +@SP +AM=M+1 +A=A-1 +M=0 +@LOOP_output.drawchar +D;JGT +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@output.getmap +D=A +@R14 +M=D +@RET_ADDRESS_CALL237 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL237) +@SP +AM=M-1 +D=M +@LCL +A=M+1 +A=A+1 +M=D +@output.1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@LCL +A=M +M=D +(output.drawchar$while_exp0) +@LCL +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@11 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_LT30 +D=A +@38 +0;JMP +(RET_ADDRESS_LT30) +@SP +A=M-1 +M=!M +@SP +AM=M-1 +D=M +@output.drawchar$while_end0 +D;JNE +@output.2 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@output.drawchar$if_true0 +D;JNE +@output.drawchar$if_false0 +0;JMP +(output.drawchar$if_true0) +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@output.4 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@THAT +M=D +@THAT +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@256 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +A=M-1 +D=!M +M=D+1 +@SP +AM=M-1 +D=M +A=A-1 +M=D&M +@SP +AM=M-1 +D=M +@LCL +A=M+1 +A=A+1 +A=A+1 +M=D +@output.drawchar$if_end0 +0;JMP +(output.drawchar$if_false0) +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@output.4 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@THAT +M=D +@THAT +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@255 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D&M +@SP +AM=M-1 +D=M +@LCL +A=M+1 +A=A+1 +A=A+1 +M=D +(output.drawchar$if_end0) +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@output.4 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@LCL +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@THAT +M=D +@THAT +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +D=M +@3 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D|M +@SP +AM=M-1 +D=M +@R5 +M=D +@SP +AM=M-1 +D=M +@THAT +M=D +@R5 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THAT +A=M +M=D +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@32 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@LCL +A=M +M=D +@LCL +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=1 +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@LCL +A=M+1 +M=D +@output.drawchar$while_exp0 +0;JMP +(output.drawchar$while_end0) +@SP +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +(output.movecursor) +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@RET_ADDRESS_LT31 +D=A +@38 +0;JMP +(RET_ADDRESS_LT31) +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@22 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_GT23 +D=A +@22 +0;JMP +(RET_ADDRESS_GT23) +@SP +AM=M-1 +D=M +A=A-1 +M=D|M +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@RET_ADDRESS_LT32 +D=A +@38 +0;JMP +(RET_ADDRESS_LT32) +@SP +AM=M-1 +D=M +A=A-1 +M=D|M +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@63 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_GT24 +D=A +@22 +0;JMP +(RET_ADDRESS_GT24) +@SP +AM=M-1 +D=M +A=A-1 +M=D|M +@SP +AM=M-1 +D=M +@output.movecursor$if_true0 +D;JNE +@output.movecursor$if_false0 +0;JMP +(output.movecursor$if_true0) +@20 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@sys.error +D=A +@R14 +M=D +@RET_ADDRESS_CALL238 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL238) +@SP +AM=M-1 +D=M +@R5 +M=D +(output.movecursor$if_false0) +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@math.divide +D=A +@R14 +M=D +@RET_ADDRESS_CALL239 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL239) +@SP +AM=M-1 +D=M +@output.0 +M=D +@32 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@352 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@math.multiply +D=A +@R14 +M=D +@RET_ADDRESS_CALL240 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL240) +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@output.0 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@output.1 +M=D +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@output.0 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@math.multiply +D=A +@R14 +M=D +@RET_ADDRESS_CALL241 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL241) +@RET_ADDRESS_EQ22 +D=A +@6 +0;JMP +(RET_ADDRESS_EQ22) +@SP +AM=M-1 +D=M +@output.2 +M=D +@32 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@output.drawchar +D=A +@R14 +M=D +@RET_ADDRESS_CALL242 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL242) +@SP +AM=M-1 +D=M +@R5 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +(output.printchar) +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@0 +D=A +@R13 +M=D +@string.newline +D=A +@R14 +M=D +@RET_ADDRESS_CALL243 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL243) +@RET_ADDRESS_EQ23 +D=A +@6 +0;JMP +(RET_ADDRESS_EQ23) +@SP +AM=M-1 +D=M +@output.printchar$if_true0 +D;JNE +@output.printchar$if_false0 +0;JMP +(output.printchar$if_true0) +@0 +D=A +@R13 +M=D +@output.println +D=A +@R14 +M=D +@RET_ADDRESS_CALL244 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL244) +@SP +AM=M-1 +D=M +@R5 +M=D +@output.printchar$if_end0 +0;JMP +(output.printchar$if_false0) +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@0 +D=A +@R13 +M=D +@string.backspace +D=A +@R14 +M=D +@RET_ADDRESS_CALL245 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL245) +@RET_ADDRESS_EQ24 +D=A +@6 +0;JMP +(RET_ADDRESS_EQ24) +@SP +AM=M-1 +D=M +@output.printchar$if_true1 +D;JNE +@output.printchar$if_false1 +0;JMP +(output.printchar$if_true1) +@0 +D=A +@R13 +M=D +@output.backspace +D=A +@R14 +M=D +@RET_ADDRESS_CALL246 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL246) +@SP +AM=M-1 +D=M +@R5 +M=D +@output.printchar$if_end1 +0;JMP +(output.printchar$if_false1) +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@output.drawchar +D=A +@R14 +M=D +@RET_ADDRESS_CALL247 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL247) +@SP +AM=M-1 +D=M +@R5 +M=D +@output.2 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +A=M-1 +M=!M +@SP +AM=M-1 +D=M +@output.printchar$if_true2 +D;JNE +@output.printchar$if_false2 +0;JMP +(output.printchar$if_true2) +@output.0 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=1 +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@output.0 +M=D +@output.1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=1 +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@output.1 +M=D +(output.printchar$if_false2) +@output.0 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@32 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_EQ25 +D=A +@6 +0;JMP +(RET_ADDRESS_EQ25) +@SP +AM=M-1 +D=M +@output.printchar$if_true3 +D;JNE +@output.printchar$if_false3 +0;JMP +(output.printchar$if_true3) +@0 +D=A +@R13 +M=D +@output.println +D=A +@R14 +M=D +@RET_ADDRESS_CALL248 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL248) +@SP +AM=M-1 +D=M +@R5 +M=D +@output.printchar$if_end3 +0;JMP +(output.printchar$if_false3) +@output.2 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +A=M-1 +M=!M +@SP +AM=M-1 +D=M +@output.2 +M=D +(output.printchar$if_end3) +(output.printchar$if_end1) +(output.printchar$if_end0) +@SP +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +(output.printstring) +@SP +A=M +M=0 +AD=A+1 +M=0 +@SP +M=D+1 +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@string.length +D=A +@R14 +M=D +@RET_ADDRESS_CALL249 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL249) +@SP +AM=M-1 +D=M +@LCL +A=M+1 +M=D +(output.printstring$while_exp0) +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_LT33 +D=A +@38 +0;JMP +(RET_ADDRESS_LT33) +@SP +A=M-1 +M=!M +@SP +AM=M-1 +D=M +@output.printstring$while_end0 +D;JNE +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@string.charat +D=A +@R14 +M=D +@RET_ADDRESS_CALL250 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL250) +@1 +D=A +@R13 +M=D +@output.printchar +D=A +@R14 +M=D +@RET_ADDRESS_CALL251 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL251) +@SP +AM=M-1 +D=M +@R5 +M=D +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=1 +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@LCL +A=M +M=D +@output.printstring$while_exp0 +0;JMP +(output.printstring$while_end0) +@SP +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +(output.printint) +@output.3 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@string.setint +D=A +@R14 +M=D +@RET_ADDRESS_CALL252 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL252) +@SP +AM=M-1 +D=M +@R5 +M=D +@output.3 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@output.printstring +D=A +@R14 +M=D +@RET_ADDRESS_CALL253 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL253) +@SP +AM=M-1 +D=M +@R5 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +(output.println) +@output.1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@352 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@output.0 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=M-D +@SP +AM=M-1 +D=M +@output.1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +AM=M-1 +D=M +@output.0 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +A=M-1 +M=!M +@SP +AM=M-1 +D=M +@output.2 +M=D +@output.1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@8128 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_EQ26 +D=A +@6 +0;JMP +(RET_ADDRESS_EQ26) +@SP +AM=M-1 +D=M +@output.println$if_true0 +D;JNE +@output.println$if_false0 +0;JMP +(output.println$if_true0) +@32 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@output.1 +M=D +(output.println$if_false0) +@SP +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +(output.backspace) +@output.2 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@output.backspace$if_true0 +D;JNE +@output.backspace$if_false0 +0;JMP +(output.backspace$if_true0) +@output.0 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@RET_ADDRESS_GT25 +D=A +@22 +0;JMP +(RET_ADDRESS_GT25) +@SP +AM=M-1 +D=M +@output.backspace$if_true1 +D;JNE +@output.backspace$if_false1 +0;JMP +(output.backspace$if_true1) +@output.0 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=1 +@SP +AM=M-1 +D=M +A=A-1 +M=M-D +@SP +AM=M-1 +D=M +@output.0 +M=D +@output.1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=1 +@SP +AM=M-1 +D=M +A=A-1 +M=M-D +@SP +AM=M-1 +D=M +@output.1 +M=D +@output.backspace$if_end1 +0;JMP +(output.backspace$if_false1) +@31 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@output.0 +M=D +@output.1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@32 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_EQ27 +D=A +@6 +0;JMP +(RET_ADDRESS_EQ27) +@SP +AM=M-1 +D=M +@output.backspace$if_true2 +D;JNE +@output.backspace$if_false2 +0;JMP +(output.backspace$if_true2) +@8128 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@output.1 +M=D +(output.backspace$if_false2) +@output.1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@321 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=M-D +@SP +AM=M-1 +D=M +@output.1 +M=D +(output.backspace$if_end1) +@SP +M=M+1 +A=M-1 +M=0 +@SP +AM=M-1 +D=M +@output.2 +M=D +@output.backspace$if_end0 +0;JMP +(output.backspace$if_false0) +@SP +M=M+1 +A=M-1 +M=0 +@SP +A=M-1 +M=!M +@SP +AM=M-1 +D=M +@output.2 +M=D +(output.backspace$if_end0) +@32 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@output.drawchar +D=A +@R14 +M=D +@RET_ADDRESS_CALL254 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL254) +@SP +AM=M-1 +D=M +@R5 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +(screen.init) +@SP +AM=M+1 +A=A-1 +M=0 +@16384 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@screen.1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +A=M-1 +M=!M +@SP +AM=M-1 +D=M +@screen.2 +M=D +@17 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@array.new +D=A +@R14 +M=D +@RET_ADDRESS_CALL255 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL255) +@SP +AM=M-1 +D=M +@screen.0 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@screen.0 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +M=M+1 +A=M-1 +M=1 +@SP +AM=M-1 +D=M +@R5 +M=D +@SP +AM=M-1 +D=M +@THAT +M=D +@R5 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THAT +A=M +M=D +(screen.init$while_exp0) +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@16 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_LT34 +D=A +@38 +0;JMP +(RET_ADDRESS_LT34) +@SP +A=M-1 +M=!M +@SP +AM=M-1 +D=M +@screen.init$while_end0 +D;JNE +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=1 +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@LCL +A=M +M=D +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@screen.0 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=1 +@SP +AM=M-1 +D=M +A=A-1 +M=M-D +@screen.0 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@THAT +M=D +@THAT +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=1 +@SP +AM=M-1 +D=M +A=A-1 +M=M-D +@screen.0 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@THAT +M=D +@THAT +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@R5 +M=D +@SP +AM=M-1 +D=M +@THAT +M=D +@R5 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THAT +A=M +M=D +@screen.init$while_exp0 +0;JMP +(screen.init$while_end0) +@SP +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +(screen.clearscreen) +@SP +AM=M+1 +A=A-1 +M=0 +(screen.clearscreen$while_exp0) +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@8192 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_LT35 +D=A +@38 +0;JMP +(RET_ADDRESS_LT35) +@SP +A=M-1 +M=!M +@SP +AM=M-1 +D=M +@screen.clearscreen$while_end0 +D;JNE +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@screen.1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +M=M+1 +A=M-1 +M=0 +@SP +AM=M-1 +D=M +@R5 +M=D +@SP +AM=M-1 +D=M +@THAT +M=D +@R5 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THAT +A=M +M=D +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=1 +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@LCL +A=M +M=D +@screen.clearscreen$while_exp0 +0;JMP +(screen.clearscreen$while_end0) +@SP +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +(screen.updatelocation) +@screen.2 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@screen.updatelocation$if_true0 +D;JNE +@screen.updatelocation$if_false0 +0;JMP +(screen.updatelocation$if_true0) +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@screen.1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@screen.1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@THAT +M=D +@THAT +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D|M +@SP +AM=M-1 +D=M +@R5 +M=D +@SP +AM=M-1 +D=M +@THAT +M=D +@R5 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THAT +A=M +M=D +@screen.updatelocation$if_end0 +0;JMP +(screen.updatelocation$if_false0) +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@screen.1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@screen.1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@THAT +M=D +@THAT +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +A=M-1 +M=!M +@SP +AM=M-1 +D=M +A=A-1 +M=D&M +@SP +AM=M-1 +D=M +@R5 +M=D +@SP +AM=M-1 +D=M +@THAT +M=D +@R5 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THAT +A=M +M=D +(screen.updatelocation$if_end0) +@SP +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +(screen.setcolor) +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@screen.2 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +(screen.drawpixel) +@3 +D=A +(LOOP_screen.drawpixel) +D=D-1 +@SP +AM=M+1 +A=A-1 +M=0 +@LOOP_screen.drawpixel +D;JGT +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@RET_ADDRESS_LT36 +D=A +@38 +0;JMP +(RET_ADDRESS_LT36) +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@511 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_GT26 +D=A +@22 +0;JMP +(RET_ADDRESS_GT26) +@SP +AM=M-1 +D=M +A=A-1 +M=D|M +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@RET_ADDRESS_LT37 +D=A +@38 +0;JMP +(RET_ADDRESS_LT37) +@SP +AM=M-1 +D=M +A=A-1 +M=D|M +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@255 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_GT27 +D=A +@22 +0;JMP +(RET_ADDRESS_GT27) +@SP +AM=M-1 +D=M +A=A-1 +M=D|M +@SP +AM=M-1 +D=M +@screen.drawpixel$if_true0 +D;JNE +@screen.drawpixel$if_false0 +0;JMP +(screen.drawpixel$if_true0) +@7 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@sys.error +D=A +@R14 +M=D +@RET_ADDRESS_CALL256 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL256) +@SP +AM=M-1 +D=M +@R5 +M=D +(screen.drawpixel$if_false0) +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@16 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@math.divide +D=A +@R14 +M=D +@RET_ADDRESS_CALL257 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL257) +@SP +AM=M-1 +D=M +@LCL +A=M +M=D +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@16 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@math.multiply +D=A +@R14 +M=D +@RET_ADDRESS_CALL258 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL258) +@SP +AM=M-1 +D=M +A=A-1 +M=M-D +@SP +AM=M-1 +D=M +@LCL +A=M+1 +M=D +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@32 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@math.multiply +D=A +@R14 +M=D +@RET_ADDRESS_CALL259 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL259) +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@LCL +A=M+1 +A=A+1 +M=D +@LCL +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@screen.0 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@THAT +M=D +@THAT +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@screen.updatelocation +D=A +@R14 +M=D +@RET_ADDRESS_CALL260 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL260) +@SP +AM=M-1 +D=M +@R5 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +(screen.drawconditional) +@ARG +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@screen.drawconditional$if_true0 +D;JNE +@screen.drawconditional$if_false0 +0;JMP +(screen.drawconditional$if_true0) +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@screen.drawpixel +D=A +@R14 +M=D +@RET_ADDRESS_CALL261 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL261) +@SP +AM=M-1 +D=M +@R5 +M=D +@screen.drawconditional$if_end0 +0;JMP +(screen.drawconditional$if_false0) +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@screen.drawpixel +D=A +@R14 +M=D +@RET_ADDRESS_CALL262 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL262) +@SP +AM=M-1 +D=M +@R5 +M=D +(screen.drawconditional$if_end0) +@SP +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +(screen.drawline) +@11 +D=A +(LOOP_screen.drawline) +D=D-1 +@SP +AM=M+1 +A=A-1 +M=0 +@LOOP_screen.drawline +D;JGT +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@RET_ADDRESS_LT38 +D=A +@38 +0;JMP +(RET_ADDRESS_LT38) +@ARG +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@511 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_GT28 +D=A +@22 +0;JMP +(RET_ADDRESS_GT28) +@SP +AM=M-1 +D=M +A=A-1 +M=D|M +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@RET_ADDRESS_LT39 +D=A +@38 +0;JMP +(RET_ADDRESS_LT39) +@SP +AM=M-1 +D=M +A=A-1 +M=D|M +@ARG +D=M +@3 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@255 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_GT29 +D=A +@22 +0;JMP +(RET_ADDRESS_GT29) +@SP +AM=M-1 +D=M +A=A-1 +M=D|M +@SP +AM=M-1 +D=M +@screen.drawline$if_true0 +D;JNE +@screen.drawline$if_false0 +0;JMP +(screen.drawline$if_true0) +@8 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@sys.error +D=A +@R14 +M=D +@RET_ADDRESS_CALL263 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL263) +@SP +AM=M-1 +D=M +@R5 +M=D +(screen.drawline$if_false0) +@ARG +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=M-D +@1 +D=A +@R13 +M=D +@math.abs +D=A +@R14 +M=D +@RET_ADDRESS_CALL264 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL264) +@SP +AM=M-1 +D=M +@LCL +A=M+1 +A=A+1 +A=A+1 +M=D +@ARG +D=M +@3 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=M-D +@1 +D=A +@R13 +M=D +@math.abs +D=A +@R14 +M=D +@RET_ADDRESS_CALL265 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL265) +@SP +AM=M-1 +D=M +@LCL +A=M+1 +A=A+1 +M=D +@LCL +D=M +@3 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_LT40 +D=A +@38 +0;JMP +(RET_ADDRESS_LT40) +@SP +AM=M-1 +D=M +@LCL +A=M+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@LCL +D=M +@6 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@ARG +D=M +@3 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_LT41 +D=A +@38 +0;JMP +(RET_ADDRESS_LT41) +@SP +AM=M-1 +D=M +A=A-1 +M=D&M +@LCL +D=M +@6 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +A=M-1 +M=!M +@ARG +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_LT42 +D=A +@38 +0;JMP +(RET_ADDRESS_LT42) +@SP +AM=M-1 +D=M +A=A-1 +M=D&M +@SP +AM=M-1 +D=M +A=A-1 +M=D|M +@SP +AM=M-1 +D=M +@screen.drawline$if_true1 +D;JNE +@screen.drawline$if_false1 +0;JMP +(screen.drawline$if_true1) +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@LCL +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@ARG +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@ARG +A=M +M=D +@LCL +D=M +@4 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@ARG +A=M+1 +A=A+1 +M=D +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@LCL +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@ARG +D=M +@3 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@ARG +A=M+1 +M=D +@LCL +D=M +@4 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@ARG +A=M+1 +A=A+1 +A=A+1 +M=D +(screen.drawline$if_false1) +@LCL +D=M +@6 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@screen.drawline$if_true2 +D;JNE +@screen.drawline$if_false2 +0;JMP +(screen.drawline$if_true2) +@LCL +D=M +@3 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@LCL +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@LCL +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@LCL +A=M+1 +A=A+1 +A=A+1 +M=D +@LCL +D=M +@4 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@LCL +A=M+1 +A=A+1 +M=D +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@LCL +A=M+1 +M=D +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@LCL +A=M +M=D +@ARG +D=M +@3 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +D=M +@8 +D=D+A +@R13 +M=D +@SP +AM=M-1 +D=M +@R13 +A=M +M=D +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@ARG +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_GT30 +D=A +@22 +0;JMP +(RET_ADDRESS_GT30) +@LCL +D=M +@7 +D=D+A +@R13 +M=D +@SP +AM=M-1 +D=M +@R13 +A=M +M=D +@screen.drawline$if_end2 +0;JMP +(screen.drawline$if_false2) +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@LCL +A=M+1 +M=D +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@LCL +A=M +M=D +@ARG +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +D=M +@8 +D=D+A +@R13 +M=D +@SP +AM=M-1 +D=M +@R13 +A=M +M=D +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@ARG +D=M +@3 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_GT31 +D=A +@22 +0;JMP +(RET_ADDRESS_GT31) +@LCL +D=M +@7 +D=D+A +@R13 +M=D +@SP +AM=M-1 +D=M +@R13 +A=M +M=D +(screen.drawline$if_end2) +@2 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@LCL +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@math.multiply +D=A +@R14 +M=D +@RET_ADDRESS_CALL266 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL266) +@LCL +D=M +@3 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=M-D +@SP +AM=M-1 +D=M +@LCL +A=M+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@2 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@LCL +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@math.multiply +D=A +@R14 +M=D +@RET_ADDRESS_CALL267 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL267) +@LCL +D=M +@9 +D=D+A +@R13 +M=D +@SP +AM=M-1 +D=M +@R13 +A=M +M=D +@2 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@LCL +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +D=M +@3 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=M-D +@2 +D=A +@R13 +M=D +@math.multiply +D=A +@R14 +M=D +@RET_ADDRESS_CALL268 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL268) +@LCL +D=M +@10 +D=D+A +@R13 +M=D +@SP +AM=M-1 +D=M +@R13 +A=M +M=D +@LCL +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +D=M +@6 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@3 +D=A +@R13 +M=D +@screen.drawconditional +D=A +@R14 +M=D +@RET_ADDRESS_CALL269 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL269) +@SP +AM=M-1 +D=M +@R5 +M=D +(screen.drawline$while_exp0) +@LCL +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +D=M +@8 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_LT43 +D=A +@38 +0;JMP +(RET_ADDRESS_LT43) +@SP +A=M-1 +M=!M +@SP +AM=M-1 +D=M +@screen.drawline$while_end0 +D;JNE +@LCL +D=M +@5 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@RET_ADDRESS_LT44 +D=A +@38 +0;JMP +(RET_ADDRESS_LT44) +@SP +AM=M-1 +D=M +@screen.drawline$if_true3 +D;JNE +@screen.drawline$if_false3 +0;JMP +(screen.drawline$if_true3) +@LCL +D=M +@5 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +D=M +@9 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@LCL +A=M+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@screen.drawline$if_end3 +0;JMP +(screen.drawline$if_false3) +@LCL +D=M +@5 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +D=M +@10 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@LCL +A=M+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@LCL +D=M +@7 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@screen.drawline$if_true4 +D;JNE +@screen.drawline$if_false4 +0;JMP +(screen.drawline$if_true4) +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=1 +@SP +AM=M-1 +D=M +A=A-1 +M=M-D +@SP +AM=M-1 +D=M +@LCL +A=M +M=D +@screen.drawline$if_end4 +0;JMP +(screen.drawline$if_false4) +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=1 +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@LCL +A=M +M=D +(screen.drawline$if_end4) +(screen.drawline$if_end3) +@LCL +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=1 +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@LCL +A=M+1 +M=D +@LCL +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +D=M +@6 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@3 +D=A +@R13 +M=D +@screen.drawconditional +D=A +@R14 +M=D +@RET_ADDRESS_CALL270 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL270) +@SP +AM=M-1 +D=M +@R5 +M=D +@screen.drawline$while_exp0 +0;JMP +(screen.drawline$while_end0) +@SP +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +(screen.drawrectangle) +@9 +D=A +(LOOP_screen.drawrectangle) +D=D-1 +@SP +AM=M+1 +A=A-1 +M=0 +@LOOP_screen.drawrectangle +D;JGT +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@ARG +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_GT32 +D=A +@22 +0;JMP +(RET_ADDRESS_GT32) +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@ARG +D=M +@3 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_GT33 +D=A +@22 +0;JMP +(RET_ADDRESS_GT33) +@SP +AM=M-1 +D=M +A=A-1 +M=D|M +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@RET_ADDRESS_LT45 +D=A +@38 +0;JMP +(RET_ADDRESS_LT45) +@SP +AM=M-1 +D=M +A=A-1 +M=D|M +@ARG +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@511 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_GT34 +D=A +@22 +0;JMP +(RET_ADDRESS_GT34) +@SP +AM=M-1 +D=M +A=A-1 +M=D|M +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@RET_ADDRESS_LT46 +D=A +@38 +0;JMP +(RET_ADDRESS_LT46) +@SP +AM=M-1 +D=M +A=A-1 +M=D|M +@ARG +D=M +@3 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@255 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_GT35 +D=A +@22 +0;JMP +(RET_ADDRESS_GT35) +@SP +AM=M-1 +D=M +A=A-1 +M=D|M +@SP +AM=M-1 +D=M +@screen.drawrectangle$if_true0 +D;JNE +@screen.drawrectangle$if_false0 +0;JMP +(screen.drawrectangle$if_true0) +@9 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@sys.error +D=A +@R14 +M=D +@RET_ADDRESS_CALL271 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL271) +@SP +AM=M-1 +D=M +@R5 +M=D +(screen.drawrectangle$if_false0) +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@16 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@math.divide +D=A +@R14 +M=D +@RET_ADDRESS_CALL272 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL272) +@SP +AM=M-1 +D=M +@LCL +A=M+1 +A=A+1 +A=A+1 +M=D +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +D=M +@3 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@16 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@math.multiply +D=A +@R14 +M=D +@RET_ADDRESS_CALL273 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL273) +@SP +AM=M-1 +D=M +A=A-1 +M=M-D +@LCL +D=M +@7 +D=D+A +@R13 +M=D +@SP +AM=M-1 +D=M +@R13 +A=M +M=D +@ARG +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@16 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@math.divide +D=A +@R14 +M=D +@RET_ADDRESS_CALL274 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL274) +@SP +AM=M-1 +D=M +@LCL +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@ARG +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +D=M +@4 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@16 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@math.multiply +D=A +@R14 +M=D +@RET_ADDRESS_CALL275 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL275) +@SP +AM=M-1 +D=M +A=A-1 +M=M-D +@LCL +D=M +@8 +D=D+A +@R13 +M=D +@SP +AM=M-1 +D=M +@R13 +A=M +M=D +@LCL +D=M +@7 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@screen.0 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@THAT +M=D +@THAT +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=1 +@SP +AM=M-1 +D=M +A=A-1 +M=M-D +@SP +A=M-1 +M=!M +@SP +AM=M-1 +D=M +@LCL +A=M+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@LCL +D=M +@8 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=1 +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@screen.0 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@THAT +M=D +@THAT +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=1 +@SP +AM=M-1 +D=M +A=A-1 +M=M-D +@SP +AM=M-1 +D=M +@LCL +A=M+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@32 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@math.multiply +D=A +@R14 +M=D +@RET_ADDRESS_CALL276 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL276) +@LCL +D=M +@3 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@LCL +A=M +M=D +@LCL +D=M +@4 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +D=M +@3 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=M-D +@SP +AM=M-1 +D=M +@LCL +A=M+1 +A=A+1 +M=D +(screen.drawrectangle$while_exp0) +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@ARG +D=M +@3 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_GT36 +D=A +@22 +0;JMP +(RET_ADDRESS_GT36) +@SP +A=M-1 +M=!M +@SP +A=M-1 +M=!M +@SP +AM=M-1 +D=M +@screen.drawrectangle$while_end0 +D;JNE +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@LCL +A=M+1 +M=D +@LCL +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@RET_ADDRESS_EQ28 +D=A +@6 +0;JMP +(RET_ADDRESS_EQ28) +@SP +AM=M-1 +D=M +@screen.drawrectangle$if_true1 +D;JNE +@screen.drawrectangle$if_false1 +0;JMP +(screen.drawrectangle$if_true1) +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +D=M +@5 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +D=M +@6 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D&M +@2 +D=A +@R13 +M=D +@screen.updatelocation +D=A +@R14 +M=D +@RET_ADDRESS_CALL277 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL277) +@SP +AM=M-1 +D=M +@R5 +M=D +@screen.drawrectangle$if_end1 +0;JMP +(screen.drawrectangle$if_false1) +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +D=M +@6 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@screen.updatelocation +D=A +@R14 +M=D +@RET_ADDRESS_CALL278 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL278) +@SP +AM=M-1 +D=M +@R5 +M=D +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=1 +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@LCL +A=M +M=D +(screen.drawrectangle$while_exp1) +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_LT47 +D=A +@38 +0;JMP +(RET_ADDRESS_LT47) +@SP +A=M-1 +M=!M +@SP +AM=M-1 +D=M +@screen.drawrectangle$while_end1 +D;JNE +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=1 +@SP +A=M-1 +D=!M +M=D+1 +@2 +D=A +@R13 +M=D +@screen.updatelocation +D=A +@R14 +M=D +@RET_ADDRESS_CALL279 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL279) +@SP +AM=M-1 +D=M +@R5 +M=D +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=1 +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@LCL +A=M +M=D +@screen.drawrectangle$while_exp1 +0;JMP +(screen.drawrectangle$while_end1) +@LCL +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +D=M +@5 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@screen.updatelocation +D=A +@R14 +M=D +@RET_ADDRESS_CALL280 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL280) +@SP +AM=M-1 +D=M +@R5 +M=D +(screen.drawrectangle$if_end1) +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=1 +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@ARG +A=M+1 +M=D +@LCL +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@32 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@LCL +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=M-D +@SP +AM=M-1 +D=M +@LCL +A=M +M=D +@screen.drawrectangle$while_exp0 +0;JMP +(screen.drawrectangle$while_end0) +@SP +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +(screen.drawhorizontal) +@11 +D=A +(LOOP_screen.drawhorizontal) +D=D-1 +@SP +AM=M+1 +A=A-1 +M=0 +@LOOP_screen.drawhorizontal +D;JGT +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@ARG +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@math.min +D=A +@R14 +M=D +@RET_ADDRESS_CALL281 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL281) +@LCL +D=M +@7 +D=D+A +@R13 +M=D +@SP +AM=M-1 +D=M +@R13 +A=M +M=D +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@ARG +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@math.max +D=A +@R14 +M=D +@RET_ADDRESS_CALL282 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL282) +@LCL +D=M +@8 +D=D+A +@R13 +M=D +@SP +AM=M-1 +D=M +@R13 +A=M +M=D +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=1 +@SP +A=M-1 +D=!M +M=D+1 +@RET_ADDRESS_GT37 +D=A +@22 +0;JMP +(RET_ADDRESS_GT37) +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@256 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_LT48 +D=A +@38 +0;JMP +(RET_ADDRESS_LT48) +@SP +AM=M-1 +D=M +A=A-1 +M=D&M +@LCL +D=M +@7 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@512 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_LT49 +D=A +@38 +0;JMP +(RET_ADDRESS_LT49) +@SP +AM=M-1 +D=M +A=A-1 +M=D&M +@LCL +D=M +@8 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=1 +@SP +A=M-1 +D=!M +M=D+1 +@RET_ADDRESS_GT38 +D=A +@22 +0;JMP +(RET_ADDRESS_GT38) +@SP +AM=M-1 +D=M +A=A-1 +M=D&M +@SP +AM=M-1 +D=M +@screen.drawhorizontal$if_true0 +D;JNE +@screen.drawhorizontal$if_false0 +0;JMP +(screen.drawhorizontal$if_true0) +@LCL +D=M +@7 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@2 +D=A +@R13 +M=D +@math.max +D=A +@R14 +M=D +@RET_ADDRESS_CALL283 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL283) +@LCL +D=M +@7 +D=D+A +@R13 +M=D +@SP +AM=M-1 +D=M +@R13 +A=M +M=D +@LCL +D=M +@8 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@511 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@math.min +D=A +@R14 +M=D +@RET_ADDRESS_CALL284 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL284) +@LCL +D=M +@8 +D=D+A +@R13 +M=D +@SP +AM=M-1 +D=M +@R13 +A=M +M=D +@LCL +D=M +@7 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@16 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@math.divide +D=A +@R14 +M=D +@RET_ADDRESS_CALL285 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL285) +@SP +AM=M-1 +D=M +@LCL +A=M+1 +M=D +@LCL +D=M +@7 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@16 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@math.multiply +D=A +@R14 +M=D +@RET_ADDRESS_CALL286 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL286) +@SP +AM=M-1 +D=M +A=A-1 +M=M-D +@LCL +D=M +@9 +D=D+A +@R13 +M=D +@SP +AM=M-1 +D=M +@R13 +A=M +M=D +@LCL +D=M +@8 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@16 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@math.divide +D=A +@R14 +M=D +@RET_ADDRESS_CALL287 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL287) +@SP +AM=M-1 +D=M +@LCL +A=M+1 +A=A+1 +M=D +@LCL +D=M +@8 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@16 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@math.multiply +D=A +@R14 +M=D +@RET_ADDRESS_CALL288 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL288) +@SP +AM=M-1 +D=M +A=A-1 +M=M-D +@LCL +D=M +@10 +D=D+A +@R13 +M=D +@SP +AM=M-1 +D=M +@R13 +A=M +M=D +@LCL +D=M +@9 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@screen.0 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@THAT +M=D +@THAT +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=1 +@SP +AM=M-1 +D=M +A=A-1 +M=M-D +@SP +A=M-1 +M=!M +@SP +AM=M-1 +D=M +@LCL +A=M+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@LCL +D=M +@10 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=1 +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@screen.0 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@THAT +M=D +@THAT +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=1 +@SP +AM=M-1 +D=M +A=A-1 +M=M-D +@SP +AM=M-1 +D=M +@LCL +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@32 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@math.multiply +D=A +@R14 +M=D +@RET_ADDRESS_CALL289 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL289) +@LCL +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@LCL +A=M +M=D +@LCL +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=M-D +@SP +AM=M-1 +D=M +@LCL +A=M+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +D=M +@6 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@LCL +A=M+1 +A=A+1 +A=A+1 +M=D +@LCL +D=M +@6 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@RET_ADDRESS_EQ29 +D=A +@6 +0;JMP +(RET_ADDRESS_EQ29) +@SP +AM=M-1 +D=M +@screen.drawhorizontal$if_true1 +D;JNE +@screen.drawhorizontal$if_false1 +0;JMP +(screen.drawhorizontal$if_true1) +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +D=M +@4 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +D=M +@5 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D&M +@2 +D=A +@R13 +M=D +@screen.updatelocation +D=A +@R14 +M=D +@RET_ADDRESS_CALL290 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL290) +@SP +AM=M-1 +D=M +@R5 +M=D +@screen.drawhorizontal$if_end1 +0;JMP +(screen.drawhorizontal$if_false1) +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +D=M +@5 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@screen.updatelocation +D=A +@R14 +M=D +@RET_ADDRESS_CALL291 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL291) +@SP +AM=M-1 +D=M +@R5 +M=D +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=1 +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@LCL +A=M +M=D +(screen.drawhorizontal$while_exp0) +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +D=M +@3 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_LT50 +D=A +@38 +0;JMP +(RET_ADDRESS_LT50) +@SP +A=M-1 +M=!M +@SP +AM=M-1 +D=M +@screen.drawhorizontal$while_end0 +D;JNE +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=1 +@SP +A=M-1 +D=!M +M=D+1 +@2 +D=A +@R13 +M=D +@screen.updatelocation +D=A +@R14 +M=D +@RET_ADDRESS_CALL292 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL292) +@SP +AM=M-1 +D=M +@R5 +M=D +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=1 +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@LCL +A=M +M=D +@screen.drawhorizontal$while_exp0 +0;JMP +(screen.drawhorizontal$while_end0) +@LCL +D=M +@3 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +D=M +@4 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@screen.updatelocation +D=A +@R14 +M=D +@RET_ADDRESS_CALL293 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL293) +@SP +AM=M-1 +D=M +@R5 +M=D +(screen.drawhorizontal$if_end1) +(screen.drawhorizontal$if_false0) +@SP +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +(screen.drawsymetric) +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@ARG +D=M +@3 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=M-D +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@ARG +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@ARG +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=M-D +@3 +D=A +@R13 +M=D +@screen.drawhorizontal +D=A +@R14 +M=D +@RET_ADDRESS_CALL294 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL294) +@SP +AM=M-1 +D=M +@R5 +M=D +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@ARG +D=M +@3 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@ARG +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@ARG +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=M-D +@3 +D=A +@R13 +M=D +@screen.drawhorizontal +D=A +@R14 +M=D +@RET_ADDRESS_CALL295 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL295) +@SP +AM=M-1 +D=M +@R5 +M=D +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@ARG +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=M-D +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@ARG +D=M +@3 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=M-D +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@ARG +D=M +@3 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@3 +D=A +@R13 +M=D +@screen.drawhorizontal +D=A +@R14 +M=D +@RET_ADDRESS_CALL296 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL296) +@SP +AM=M-1 +D=M +@R5 +M=D +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@ARG +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@ARG +D=M +@3 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=M-D +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@ARG +D=M +@3 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@3 +D=A +@R13 +M=D +@screen.drawhorizontal +D=A +@R14 +M=D +@RET_ADDRESS_CALL297 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL297) +@SP +AM=M-1 +D=M +@R5 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +(screen.drawcircle) +@3 +D=A +(LOOP_screen.drawcircle) +D=D-1 +@SP +AM=M+1 +A=A-1 +M=0 +@LOOP_screen.drawcircle +D;JGT +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@RET_ADDRESS_LT51 +D=A +@38 +0;JMP +(RET_ADDRESS_LT51) +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@511 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_GT39 +D=A +@22 +0;JMP +(RET_ADDRESS_GT39) +@SP +AM=M-1 +D=M +A=A-1 +M=D|M +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@RET_ADDRESS_LT52 +D=A +@38 +0;JMP +(RET_ADDRESS_LT52) +@SP +AM=M-1 +D=M +A=A-1 +M=D|M +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@255 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_GT40 +D=A +@22 +0;JMP +(RET_ADDRESS_GT40) +@SP +AM=M-1 +D=M +A=A-1 +M=D|M +@SP +AM=M-1 +D=M +@screen.drawcircle$if_true0 +D;JNE +@screen.drawcircle$if_false0 +0;JMP +(screen.drawcircle$if_true0) +@12 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@sys.error +D=A +@R14 +M=D +@RET_ADDRESS_CALL298 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL298) +@SP +AM=M-1 +D=M +@R5 +M=D +(screen.drawcircle$if_false0) +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@ARG +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=M-D +@SP +M=M+1 +A=M-1 +M=0 +@RET_ADDRESS_LT53 +D=A +@38 +0;JMP +(RET_ADDRESS_LT53) +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@ARG +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@511 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_GT41 +D=A +@22 +0;JMP +(RET_ADDRESS_GT41) +@SP +AM=M-1 +D=M +A=A-1 +M=D|M +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@ARG +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=M-D +@SP +M=M+1 +A=M-1 +M=0 +@RET_ADDRESS_LT54 +D=A +@38 +0;JMP +(RET_ADDRESS_LT54) +@SP +AM=M-1 +D=M +A=A-1 +M=D|M +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@ARG +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@255 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_GT42 +D=A +@22 +0;JMP +(RET_ADDRESS_GT42) +@SP +AM=M-1 +D=M +A=A-1 +M=D|M +@SP +AM=M-1 +D=M +@screen.drawcircle$if_true1 +D;JNE +@screen.drawcircle$if_false1 +0;JMP +(screen.drawcircle$if_true1) +@13 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@sys.error +D=A +@R14 +M=D +@RET_ADDRESS_CALL299 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL299) +@SP +AM=M-1 +D=M +@R5 +M=D +(screen.drawcircle$if_false1) +@ARG +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@LCL +A=M+1 +M=D +@SP +M=M+1 +A=M-1 +M=1 +@ARG +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=M-D +@SP +AM=M-1 +D=M +@LCL +A=M+1 +A=A+1 +M=D +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@4 +D=A +@R13 +M=D +@screen.drawsymetric +D=A +@R14 +M=D +@RET_ADDRESS_CALL300 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL300) +@SP +AM=M-1 +D=M +@R5 +M=D +(screen.drawcircle$while_exp0) +@LCL +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_GT43 +D=A +@22 +0;JMP +(RET_ADDRESS_GT43) +@SP +A=M-1 +M=!M +@SP +AM=M-1 +D=M +@screen.drawcircle$while_end0 +D;JNE +@LCL +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@RET_ADDRESS_LT55 +D=A +@38 +0;JMP +(RET_ADDRESS_LT55) +@SP +AM=M-1 +D=M +@screen.drawcircle$if_true2 +D;JNE +@screen.drawcircle$if_false2 +0;JMP +(screen.drawcircle$if_true2) +@LCL +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@math.multiply +D=A +@R14 +M=D +@RET_ADDRESS_CALL301 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL301) +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@3 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@LCL +A=M+1 +A=A+1 +M=D +@screen.drawcircle$if_end2 +0;JMP +(screen.drawcircle$if_false2) +@LCL +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=M-D +@2 +D=A +@R13 +M=D +@math.multiply +D=A +@R14 +M=D +@RET_ADDRESS_CALL302 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL302) +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@5 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@LCL +A=M+1 +A=A+1 +M=D +@LCL +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=1 +@SP +AM=M-1 +D=M +A=A-1 +M=M-D +@SP +AM=M-1 +D=M +@LCL +A=M+1 +M=D +(screen.drawcircle$if_end2) +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=1 +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@LCL +A=M +M=D +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@4 +D=A +@R13 +M=D +@screen.drawsymetric +D=A +@R14 +M=D +@RET_ADDRESS_CALL303 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL303) +@SP +AM=M-1 +D=M +@R5 +M=D +@screen.drawcircle$while_exp0 +0;JMP +(screen.drawcircle$while_end0) +@SP +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +(string.new) +@3 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@memory.alloc +D=A +@R14 +M=D +@RET_ADDRESS_CALL304 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL304) +@SP +AM=M-1 +D=M +@THIS +M=D +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@RET_ADDRESS_LT56 +D=A +@38 +0;JMP +(RET_ADDRESS_LT56) +@SP +AM=M-1 +D=M +@string.new$if_true0 +D;JNE +@string.new$if_false0 +0;JMP +(string.new$if_true0) +@14 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@sys.error +D=A +@R14 +M=D +@RET_ADDRESS_CALL305 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL305) +@SP +AM=M-1 +D=M +@R5 +M=D +(string.new$if_false0) +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@RET_ADDRESS_GT44 +D=A +@22 +0;JMP +(RET_ADDRESS_GT44) +@SP +AM=M-1 +D=M +@string.new$if_true1 +D;JNE +@string.new$if_false1 +0;JMP +(string.new$if_true1) +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@array.new +D=A +@R14 +M=D +@RET_ADDRESS_CALL306 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL306) +@SP +AM=M-1 +D=M +@THIS +A=M+1 +M=D +(string.new$if_false1) +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THIS +A=M +M=D +@SP +M=M+1 +A=M-1 +M=0 +@SP +AM=M-1 +D=M +@THIS +A=M+1 +A=A+1 +M=D +@THIS +D=M +@SP +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +(string.dispose) +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THIS +M=D +@THIS +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@RET_ADDRESS_GT45 +D=A +@22 +0;JMP +(RET_ADDRESS_GT45) +@SP +AM=M-1 +D=M +@string.dispose$if_true0 +D;JNE +@string.dispose$if_false0 +0;JMP +(string.dispose$if_true0) +@THIS +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@array.dispose +D=A +@R14 +M=D +@RET_ADDRESS_CALL307 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL307) +@SP +AM=M-1 +D=M +@R5 +M=D +(string.dispose$if_false0) +@THIS +D=M +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@memory.dealloc +D=A +@R14 +M=D +@RET_ADDRESS_CALL308 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL308) +@SP +AM=M-1 +D=M +@R5 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +(string.length) +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THIS +M=D +@THIS +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +(string.charat) +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THIS +M=D +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@RET_ADDRESS_LT57 +D=A +@38 +0;JMP +(RET_ADDRESS_LT57) +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@THIS +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_GT46 +D=A +@22 +0;JMP +(RET_ADDRESS_GT46) +@SP +AM=M-1 +D=M +A=A-1 +M=D|M +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@THIS +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_EQ30 +D=A +@6 +0;JMP +(RET_ADDRESS_EQ30) +@SP +AM=M-1 +D=M +A=A-1 +M=D|M +@SP +AM=M-1 +D=M +@string.charat$if_true0 +D;JNE +@string.charat$if_false0 +0;JMP +(string.charat$if_true0) +@15 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@sys.error +D=A +@R14 +M=D +@RET_ADDRESS_CALL309 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL309) +@SP +AM=M-1 +D=M +@R5 +M=D +(string.charat$if_false0) +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@THIS +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@THAT +M=D +@THAT +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +(string.setcharat) +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THIS +M=D +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@RET_ADDRESS_LT58 +D=A +@38 +0;JMP +(RET_ADDRESS_LT58) +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@THIS +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_GT47 +D=A +@22 +0;JMP +(RET_ADDRESS_GT47) +@SP +AM=M-1 +D=M +A=A-1 +M=D|M +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@THIS +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_EQ31 +D=A +@6 +0;JMP +(RET_ADDRESS_EQ31) +@SP +AM=M-1 +D=M +A=A-1 +M=D|M +@SP +AM=M-1 +D=M +@string.setcharat$if_true0 +D;JNE +@string.setcharat$if_false0 +0;JMP +(string.setcharat$if_true0) +@16 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@sys.error +D=A +@R14 +M=D +@RET_ADDRESS_CALL310 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL310) +@SP +AM=M-1 +D=M +@R5 +M=D +(string.setcharat$if_false0) +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@THIS +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@ARG +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@R5 +M=D +@SP +AM=M-1 +D=M +@THAT +M=D +@R5 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THAT +A=M +M=D +@SP +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +(string.appendchar) +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THIS +M=D +@THIS +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@THIS +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_EQ32 +D=A +@6 +0;JMP +(RET_ADDRESS_EQ32) +@SP +AM=M-1 +D=M +@string.appendchar$if_true0 +D;JNE +@string.appendchar$if_false0 +0;JMP +(string.appendchar$if_true0) +@17 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@sys.error +D=A +@R14 +M=D +@RET_ADDRESS_CALL311 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL311) +@SP +AM=M-1 +D=M +@R5 +M=D +(string.appendchar$if_false0) +@THIS +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@THIS +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@R5 +M=D +@SP +AM=M-1 +D=M +@THAT +M=D +@R5 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THAT +A=M +M=D +@THIS +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=1 +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@THIS +A=M+1 +A=A+1 +M=D +@THIS +D=M +@SP +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +(string.eraselastchar) +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THIS +M=D +@THIS +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@RET_ADDRESS_EQ33 +D=A +@6 +0;JMP +(RET_ADDRESS_EQ33) +@SP +AM=M-1 +D=M +@string.eraselastchar$if_true0 +D;JNE +@string.eraselastchar$if_false0 +0;JMP +(string.eraselastchar$if_true0) +@18 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@sys.error +D=A +@R14 +M=D +@RET_ADDRESS_CALL312 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL312) +@SP +AM=M-1 +D=M +@R5 +M=D +(string.eraselastchar$if_false0) +@THIS +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=1 +@SP +AM=M-1 +D=M +A=A-1 +M=M-D +@SP +AM=M-1 +D=M +@THIS +A=M+1 +A=A+1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +(string.intvalue) +@5 +D=A +(LOOP_string.intvalue) +D=D-1 +@SP +AM=M+1 +A=A-1 +M=0 +@LOOP_string.intvalue +D;JGT +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THIS +M=D +@THIS +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@RET_ADDRESS_EQ34 +D=A +@6 +0;JMP +(RET_ADDRESS_EQ34) +@SP +AM=M-1 +D=M +@string.intvalue$if_true0 +D;JNE +@string.intvalue$if_false0 +0;JMP +(string.intvalue$if_true0) +@SP +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +(string.intvalue$if_false0) +@SP +M=M+1 +A=M-1 +M=0 +@SP +A=M-1 +M=!M +@SP +AM=M-1 +D=M +@LCL +A=M+1 +A=A+1 +A=A+1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@THIS +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@THAT +M=D +@THAT +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@45 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_EQ35 +D=A +@6 +0;JMP +(RET_ADDRESS_EQ35) +@SP +AM=M-1 +D=M +@string.intvalue$if_true1 +D;JNE +@string.intvalue$if_false1 +0;JMP +(string.intvalue$if_true1) +@SP +M=M+1 +A=M-1 +M=0 +@SP +A=M-1 +M=!M +@SP +AM=M-1 +D=M +@LCL +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@SP +M=M+1 +A=M-1 +M=1 +@SP +AM=M-1 +D=M +@LCL +A=M +M=D +(string.intvalue$if_false1) +(string.intvalue$while_exp0) +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@THIS +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_LT59 +D=A +@38 +0;JMP +(RET_ADDRESS_LT59) +@LCL +D=M +@3 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D&M +@SP +A=M-1 +M=!M +@SP +AM=M-1 +D=M +@string.intvalue$while_end0 +D;JNE +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@THIS +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@THAT +M=D +@THAT +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@48 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=M-D +@SP +AM=M-1 +D=M +@LCL +A=M+1 +A=A+1 +M=D +@LCL +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@RET_ADDRESS_LT60 +D=A +@38 +0;JMP +(RET_ADDRESS_LT60) +@LCL +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@9 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_GT48 +D=A +@22 +0;JMP +(RET_ADDRESS_GT48) +@SP +AM=M-1 +D=M +A=A-1 +M=D|M +@SP +A=M-1 +M=!M +@SP +AM=M-1 +D=M +@LCL +A=M+1 +A=A+1 +A=A+1 +M=D +@LCL +D=M +@3 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@string.intvalue$if_true2 +D;JNE +@string.intvalue$if_false2 +0;JMP +(string.intvalue$if_true2) +@LCL +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@10 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@math.multiply +D=A +@R14 +M=D +@RET_ADDRESS_CALL313 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL313) +@LCL +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@LCL +A=M+1 +M=D +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=1 +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@LCL +A=M +M=D +(string.intvalue$if_false2) +@string.intvalue$while_exp0 +0;JMP +(string.intvalue$while_end0) +@LCL +D=M +@4 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@string.intvalue$if_true3 +D;JNE +@string.intvalue$if_false3 +0;JMP +(string.intvalue$if_true3) +@LCL +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +A=M-1 +D=!M +M=D+1 +@SP +AM=M-1 +D=M +@LCL +A=M+1 +M=D +(string.intvalue$if_false3) +@LCL +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +(string.setint) +@4 +D=A +(LOOP_string.setint) +D=D-1 +@SP +AM=M+1 +A=A-1 +M=0 +@LOOP_string.setint +D;JGT +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THIS +M=D +@THIS +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@RET_ADDRESS_EQ36 +D=A +@6 +0;JMP +(RET_ADDRESS_EQ36) +@SP +AM=M-1 +D=M +@string.setint$if_true0 +D;JNE +@string.setint$if_false0 +0;JMP +(string.setint$if_true0) +@19 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@sys.error +D=A +@R14 +M=D +@RET_ADDRESS_CALL314 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL314) +@SP +AM=M-1 +D=M +@R5 +M=D +(string.setint$if_false0) +@6 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@array.new +D=A +@R14 +M=D +@RET_ADDRESS_CALL315 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL315) +@SP +AM=M-1 +D=M +@LCL +A=M+1 +A=A+1 +M=D +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@RET_ADDRESS_LT61 +D=A +@38 +0;JMP +(RET_ADDRESS_LT61) +@SP +AM=M-1 +D=M +@string.setint$if_true1 +D;JNE +@string.setint$if_false1 +0;JMP +(string.setint$if_true1) +@SP +M=M+1 +A=M-1 +M=0 +@SP +A=M-1 +M=!M +@SP +AM=M-1 +D=M +@LCL +A=M+1 +A=A+1 +A=A+1 +M=D +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +A=M-1 +D=!M +M=D+1 +@SP +AM=M-1 +D=M +@ARG +A=M+1 +M=D +(string.setint$if_false1) +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@LCL +A=M+1 +M=D +(string.setint$while_exp0) +@LCL +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@RET_ADDRESS_GT49 +D=A +@22 +0;JMP +(RET_ADDRESS_GT49) +@SP +A=M-1 +M=!M +@SP +AM=M-1 +D=M +@string.setint$while_end0 +D;JNE +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@10 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@math.divide +D=A +@R14 +M=D +@RET_ADDRESS_CALL316 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL316) +@SP +AM=M-1 +D=M +@LCL +A=M+1 +M=D +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@48 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@ARG +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@10 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@math.multiply +D=A +@R14 +M=D +@RET_ADDRESS_CALL317 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL317) +@SP +AM=M-1 +D=M +A=A-1 +M=M-D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@R5 +M=D +@SP +AM=M-1 +D=M +@THAT +M=D +@R5 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THAT +A=M +M=D +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=1 +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@LCL +A=M +M=D +@LCL +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@ARG +A=M+1 +M=D +@string.setint$while_exp0 +0;JMP +(string.setint$while_end0) +@LCL +D=M +@3 +A=D+A +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@string.setint$if_true2 +D;JNE +@string.setint$if_false2 +0;JMP +(string.setint$if_true2) +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@45 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@R5 +M=D +@SP +AM=M-1 +D=M +@THAT +M=D +@R5 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THAT +A=M +M=D +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=1 +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@LCL +A=M +M=D +(string.setint$if_false2) +@THIS +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_LT62 +D=A +@38 +0;JMP +(RET_ADDRESS_LT62) +@SP +AM=M-1 +D=M +@string.setint$if_true3 +D;JNE +@string.setint$if_false3 +0;JMP +(string.setint$if_true3) +@19 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@sys.error +D=A +@R14 +M=D +@RET_ADDRESS_CALL318 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL318) +@SP +AM=M-1 +D=M +@R5 +M=D +(string.setint$if_false3) +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@RET_ADDRESS_EQ37 +D=A +@6 +0;JMP +(RET_ADDRESS_EQ37) +@SP +AM=M-1 +D=M +@string.setint$if_true4 +D;JNE +@string.setint$if_false4 +0;JMP +(string.setint$if_true4) +@SP +M=M+1 +A=M-1 +M=0 +@THIS +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@48 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@R5 +M=D +@SP +AM=M-1 +D=M +@THAT +M=D +@R5 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THAT +A=M +M=D +@SP +M=M+1 +A=M-1 +M=1 +@SP +AM=M-1 +D=M +@THIS +A=M+1 +A=A+1 +M=D +@string.setint$if_end4 +0;JMP +(string.setint$if_false4) +@SP +M=M+1 +A=M-1 +M=0 +@SP +AM=M-1 +D=M +@THIS +A=M+1 +A=A+1 +M=D +(string.setint$while_exp1) +@THIS +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@RET_ADDRESS_LT63 +D=A +@38 +0;JMP +(RET_ADDRESS_LT63) +@SP +A=M-1 +M=!M +@SP +AM=M-1 +D=M +@string.setint$while_end1 +D;JNE +@THIS +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@THIS +A=M+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@THIS +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=1 +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +A=A-1 +M=M-D +@LCL +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@THAT +M=D +@THAT +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@R5 +M=D +@SP +AM=M-1 +D=M +@THAT +M=D +@R5 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@THAT +A=M +M=D +@THIS +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=1 +@SP +AM=M-1 +D=M +A=A-1 +M=D+M +@SP +AM=M-1 +D=M +@THIS +A=M+1 +A=A+1 +M=D +@string.setint$while_exp1 +0;JMP +(string.setint$while_end1) +(string.setint$if_end4) +@LCL +A=M+1 +A=A+1 +D=M +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@array.dispose +D=A +@R14 +M=D +@RET_ADDRESS_CALL319 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL319) +@SP +AM=M-1 +D=M +@R5 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +(string.newline) +@128 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +(string.backspace) +@129 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +(string.doublequote) +@34 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +(sys.init) +@0 +D=A +@R13 +M=D +@memory.init +D=A +@R14 +M=D +@RET_ADDRESS_CALL320 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL320) +@SP +AM=M-1 +D=M +@R5 +M=D +@0 +D=A +@R13 +M=D +@math.init +D=A +@R14 +M=D +@RET_ADDRESS_CALL321 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL321) +@SP +AM=M-1 +D=M +@R5 +M=D +@0 +D=A +@R13 +M=D +@screen.init +D=A +@R14 +M=D +@RET_ADDRESS_CALL322 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL322) +@SP +AM=M-1 +D=M +@R5 +M=D +@0 +D=A +@R13 +M=D +@output.init +D=A +@R14 +M=D +@RET_ADDRESS_CALL323 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL323) +@SP +AM=M-1 +D=M +@R5 +M=D +@0 +D=A +@R13 +M=D +@keyboard.init +D=A +@R14 +M=D +@RET_ADDRESS_CALL324 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL324) +@SP +AM=M-1 +D=M +@R5 +M=D +@0 +D=A +@R13 +M=D +@main.main +D=A +@R14 +M=D +@RET_ADDRESS_CALL325 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL325) +@SP +AM=M-1 +D=M +@R5 +M=D +@0 +D=A +@R13 +M=D +@sys.halt +D=A +@R14 +M=D +@RET_ADDRESS_CALL326 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL326) +@SP +AM=M-1 +D=M +@R5 +M=D +(sys.halt) +(sys.halt$while_exp0) +@SP +M=M+1 +A=M-1 +M=0 +@SP +A=M-1 +M=!M +@SP +A=M-1 +M=!M +@SP +AM=M-1 +D=M +@sys.halt$while_end0 +D;JNE +@sys.halt$while_exp0 +0;JMP +(sys.halt$while_end0) +(sys.wait) +@SP +AM=M+1 +A=A-1 +M=0 +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@RET_ADDRESS_LT64 +D=A +@38 +0;JMP +(RET_ADDRESS_LT64) +@SP +AM=M-1 +D=M +@sys.wait$if_true0 +D;JNE +@sys.wait$if_false0 +0;JMP +(sys.wait$if_true0) +@SP +M=M+1 +A=M-1 +M=1 +@1 +D=A +@R13 +M=D +@sys.error +D=A +@R14 +M=D +@RET_ADDRESS_CALL327 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL327) +@SP +AM=M-1 +D=M +@R5 +M=D +(sys.wait$if_false0) +(sys.wait$while_exp0) +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@RET_ADDRESS_GT50 +D=A +@22 +0;JMP +(RET_ADDRESS_GT50) +@SP +A=M-1 +M=!M +@SP +AM=M-1 +D=M +@sys.wait$while_end0 +D;JNE +@50 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@SP +AM=M-1 +D=M +@LCL +A=M +M=D +(sys.wait$while_exp1) +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=0 +@RET_ADDRESS_GT51 +D=A +@22 +0;JMP +(RET_ADDRESS_GT51) +@SP +A=M-1 +M=!M +@SP +AM=M-1 +D=M +@sys.wait$while_end1 +D;JNE +@LCL +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=1 +@SP +AM=M-1 +D=M +A=A-1 +M=M-D +@SP +AM=M-1 +D=M +@LCL +A=M +M=D +@sys.wait$while_exp1 +0;JMP +(sys.wait$while_end1) +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@SP +M=M+1 +A=M-1 +M=1 +@SP +AM=M-1 +D=M +A=A-1 +M=M-D +@SP +AM=M-1 +D=M +@ARG +A=M +M=D +@sys.wait$while_exp0 +0;JMP +(sys.wait$while_end0) +@SP +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +(sys.error) +@3 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@string.new +D=A +@R14 +M=D +@RET_ADDRESS_CALL328 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL328) +@69 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@string.appendchar +D=A +@R14 +M=D +@RET_ADDRESS_CALL329 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL329) +@82 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@string.appendchar +D=A +@R14 +M=D +@RET_ADDRESS_CALL330 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL330) +@82 +D=A +@SP +AM=M+1 +A=A-1 +M=D +@2 +D=A +@R13 +M=D +@string.appendchar +D=A +@R14 +M=D +@RET_ADDRESS_CALL331 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL331) +@1 +D=A +@R13 +M=D +@output.printstring +D=A +@R14 +M=D +@RET_ADDRESS_CALL332 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL332) +@SP +AM=M-1 +D=M +@R5 +M=D +@ARG +A=M +D=M +@SP +AM=M+1 +A=A-1 +M=D +@1 +D=A +@R13 +M=D +@output.printint +D=A +@R14 +M=D +@RET_ADDRESS_CALL333 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL333) +@SP +AM=M-1 +D=M +@R5 +M=D +@0 +D=A +@R13 +M=D +@sys.halt +D=A +@R14 +M=D +@RET_ADDRESS_CALL334 +D=A +@95 +0;JMP +(RET_ADDRESS_CALL334) +@SP +AM=M-1 +D=M +@R5 +M=D diff --git a/projects/06/pong/Pong.hack b/projects/06/pong/Pong.hack new file mode 100644 index 0000000..9eb4a3d --- /dev/null +++ b/projects/06/pong/Pong.hack @@ -0,0 +1,27483 @@ +0000000100000000 +1110110000010000 +0000000000000000 +1110001100001000 +0000000010000101 +1110101010000111 +0000000000001111 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111010000 +1110101010001000 +0000000000010011 +1110001100000101 +0000000000000000 +1111110010100000 +1110111010001000 +0000000000001111 +1111110000100000 +1110101010000111 +0000000000001111 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111010000 +1110101010001000 +0000000000100011 +1110001100000110 +0000000000000000 +1111110010100000 +1110111010001000 +0000000000001111 +1111110000100000 +1110101010000111 +0000000000001111 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111010000 +1110101010001000 +0000000000110011 +1110001100000011 +0000000000000000 +1111110010100000 +1110111010001000 +0000000000001111 +1111110000100000 +1110101010000111 +0000000000000101 +1110110000010000 +0000000000000001 +1111000111100000 +1111110000010000 +0000000000001101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000010 +1111110000100000 +1110001100001000 +1110110000010000 +0000000000000000 +1110011111001000 +0000000000000001 +1111110000010000 +0000000000001110 +1110001110101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000001110 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000001110 +1111110010101000 +1111110000010000 +0000000000000010 +1110001100001000 +0000000000001110 +1111110010101000 +1111110000010000 +0000000000000001 +1110001100001000 +0000000000001101 +1111110000100000 +1110101010000111 +0000000000000000 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000000 +1111110111101000 +1110001100001000 +0000000000000010 +1111110000010000 +0000000000000000 +1111110111101000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000000 +1111110111101000 +1110001100001000 +0000000000000100 +1111110000010000 +0000000000000000 +1111110111101000 +1110001100001000 +0000000000000100 +1110110000010000 +0000000000001101 +1111000010010000 +0000000000000000 +1111000111010000 +0000000000000010 +1110001100001000 +0000000000000000 +1111110111011000 +0000000000000001 +1110001100001000 +0000000000001110 +1111110000100000 +1110101010000111 +0000000000000000 +1110110000010000 +0000000000001101 +1110001100001000 +0110100110110010 +1110110000010000 +0000000000001110 +1110001100001000 +0000000010010001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000001111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0010000111000011 +1110110000010000 +0000000000001110 +1110001100001000 +0000000010100011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110000100000 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110001100001000 +0000000000000010 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000001010 +1110000010010000 +0000000000001101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000001101 +1111110000100000 +1110001100001000 +0000000000000010 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000011 +1111110000010000 +0000000000001011 +1110000010010000 +0000000000001101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000001101 +1111110000100000 +1110001100001000 +0000000000000010 +1111110000010000 +0000000000000100 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000001100 +1110000010010000 +0000000000001101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000001101 +1111110000100000 +1110001100001000 +0000000000000010 +1111110000010000 +0000000000000101 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000011 +1111110000010000 +0000000000001101 +1110000010010000 +0000000000001101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000001101 +1111110000100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000011 +1111110000010000 +0000000000001110 +1110000010010000 +0000000000001101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000001101 +1111110000100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0000000110000011 +1110110000010000 +0000000000001110 +1110001100001000 +0000000101001101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0010010010001101 +1110110000010000 +0000000000001110 +1110001100001000 +0000000101111000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0101000110011001 +1110110000010000 +0000000000001110 +1110001100001000 +0000000110100010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0000001000000010 +1110110000010000 +0000000000001110 +1110001100001000 +0000000110111001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0101000110011001 +1110110000010000 +0000000000001110 +1110001100001000 +0000000111100000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0000001000000010 +1110110000010000 +0000000000001110 +1110001100001000 +0000000111110111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000100 +1110110000010000 +0000000000001101 +1110001100001000 +0101011101010010 +1110110000010000 +0000000000001110 +1110001100001000 +0000001001001100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000110110 +1110101010000111 +0000000000000011 +1110110000010000 +1110001110010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110101010001000 +0000001010001110 +1110001100000001 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110110111100000 +1110001100001000 +0000000000000010 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000011 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0001101001110110 +1110110000010000 +0000000000001110 +1110001100001000 +0000001011101011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0001101001110110 +1110110000010000 +0000000000001110 +1110001100001000 +0000001100000110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000001100011110 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000011 +1111110000010000 +0000000000000111 +1110000010010000 +0000000000001101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000001101 +1111110000100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000111 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000001100111010 +1110001100000101 +0000001110100010 +1110101010000111 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110001100001000 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000001101110110 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000011 +1111110000010000 +0000000000001000 +1110000010010000 +0000000000001101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000001101 +1111110000100000 +1110001100001000 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000001110010100 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000011 +1111110000010000 +0000000000001001 +1110000010010000 +0000000000001101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000001101 +1111110000100000 +1110001100001000 +0000001111011111 +1110101010000111 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000001110110100 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000011 +1111110000010000 +0000000000001000 +1110000010010000 +0000000000001101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000001101 +1111110000100000 +1110001100001000 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000001111010011 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000011 +1111110000010000 +0000000000001001 +1110000010010000 +0000000000001101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000001101 +1111110000100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001101010100110 +1110110000010000 +0000000000001110 +1110001100001000 +0000001111111000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001101010100110 +1110110000010000 +0000000000001110 +1110001100001000 +0000010000100110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001101010100110 +1110110000010000 +0000000000001110 +1110001100001000 +0000010001010101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0000000111000100 +1110110000010000 +0000000000001110 +1110001100001000 +0000010010000100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000100 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000010010011010 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000010010100001 +1110001100000101 +0000010011000011 +1110101010000111 +0000000000000011 +1111110000010000 +0000000000000100 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000101 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000010101111001 +1110101010000111 +0000000000000011 +1111110000010000 +0000000000000100 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000110 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000001001 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000010011110011 +1110001100000101 +0000010100110111 +1110101010000111 +0000000000000011 +1111110000010000 +0000000000000111 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000010100000011 +1110001100000101 +0000010100011101 +1110101010000111 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110000100000 +1110001100001000 +0000010100110101 +1110101010000111 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110001100001000 +0000010101111001 +1110101010000111 +0000000000000011 +1111110000010000 +0000000000000111 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000010101000111 +1110001100000101 +0000010101100001 +1110101010000111 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110000100000 +1110001100001000 +0000010101111001 +1110101010000111 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000001000 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000010110001001 +1110001100000101 +0000010111001101 +1110101010000111 +0000000000000011 +1111110000010000 +0000000000000111 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000010110011001 +1110001100000101 +0000010110110011 +1110101010000111 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110001100001000 +0000010111001011 +1110101010000111 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110000100000 +1110001100001000 +0000011000001111 +1110101010000111 +0000000000000011 +1111110000010000 +0000000000000111 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000010111011101 +1110001100000101 +0000010111110111 +1110101010000111 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110001100001000 +0000011000001111 +1110101010000111 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110000100000 +1110001100001000 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000001010 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000011000100011 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000011000101101 +1110001100000101 +0000011001001100 +1110101010000111 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000011 +1111110000010000 +0000000000001110 +1110000010010000 +0000000000001101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000001101 +1111110000100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000001010 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110000100000 +1110001100001000 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000001011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000011001100000 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000011001101010 +1110001100000101 +0000011010001011 +1110101010000111 +0000000000000010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000001110 +1110000010010000 +0000000000001101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000001101 +1111110000100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000001011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110000100000 +1110001100001000 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000001100 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000011010011111 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000011010101001 +1110001100000101 +0000011011001010 +1110101010000111 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000001110 +1110000010010000 +0000000000001101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000001101 +1111110000100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000001100 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110001100001000 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000001101 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000011011011110 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000011011101000 +1110001100000101 +0000011100001001 +1110101010000111 +0000000000000100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000001110 +1110000010010000 +0000000000001101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000001101 +1111110000100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000001101 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0000000110000011 +1110110000010000 +0000000000001110 +1110001100001000 +0000011100011011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000001110 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110101010000111 +0000000000000101 +1110110000010000 +1110001110010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110101010001000 +0000011100101101 +1110001100000001 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000000011 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001110001110111 +1110110000010000 +0000000000001110 +1110001100001000 +0000011101011010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001110001110111 +1110110000010000 +0000000000001110 +1110001100001000 +0000011101111100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000011110010011 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000011110011010 +1110001100000101 +0000011110101011 +1110101010000111 +0000000000001010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000100000100110 +1110101010000111 +0000000000000011 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000011110111011 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000011111001101 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000000001000 +0000000000000011 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000011111100010 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111010101001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010100000 +1111110001010000 +1110011111001000 +0000011111111010 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000000001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000100000000110 +1110001100000101 +0000100000010111 +1110101010000111 +0000000000010100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000100000100110 +1110101010000111 +0000000000000101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000001110 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000100000110111 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000100000111110 +1110001100000101 +0000100010110011 +1110101010000111 +0000000111111010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010100000 +1111110001010000 +1110011111001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001101010100110 +1110110000010000 +0000000000001110 +1110001100001000 +0000100001101001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001110001110111 +1110110000010000 +0000000000001110 +1110001100001000 +0000100001111101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110001100001000 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000100 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001101010100110 +1110110000010000 +0000000000001110 +1110001100001000 +0000100010100110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110001100001000 +0000101000111000 +1110101010000111 +0000000000000011 +1111110000010000 +0000000000001110 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000100011000110 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000100011001101 +1110001100000101 +0000100100111100 +1110101010000111 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001101010100110 +1110110000010000 +0000000000001110 +1110001100001000 +0000100011110010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001110001110111 +1110110000010000 +0000000000001110 +1110001100001000 +0000100100000110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110001100001000 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000100 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001101010100110 +1110110000010000 +0000000000001110 +1110001100001000 +0000100100101111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110001100001000 +0000101000111000 +1110101010000111 +0000000000000011 +1111110000010000 +0000000000001110 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000100101001111 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000100101010110 +1110001100000101 +0000100111001011 +1110101010000111 +0000000011111010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110001100001000 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011001 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010100000 +1111110001010000 +1110011111001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001101010100110 +1110110000010000 +0000000000001110 +1110001100001000 +0000100110000000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000001 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001110001110111 +1110110000010000 +0000000000001110 +1110001100001000 +0000100110010101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000100 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001101010100110 +1110110000010000 +0000000000001110 +1110001100001000 +0000100110111110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000101000111000 +1110101010000111 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110001100001000 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011001 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001101010100110 +1110110000010000 +0000000000001110 +1110001100001000 +0000100111101111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000001 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001110001110111 +1110110000010000 +0000000000001110 +1110001100001000 +0000101000000100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000100 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001101010100110 +1110110000010000 +0000000000001110 +1110001100001000 +0000101000101101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000001101 +1110001100001000 +0000001010001100 +1110110000010000 +0000000000001110 +1110001100001000 +0000101001011000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0010000111000011 +1110110000010000 +0000000000001110 +1110001100001000 +0000101001110101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110000100000 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110001100001000 +0000000000000010 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110110111100000 +1110001100001000 +0000000000000010 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0000101100001011 +1110110000010000 +0000000000001110 +1110001100001000 +0000101011010101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0010010010001101 +1110110000010000 +0000000000001110 +1110001100001000 +0000101100000000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0101000110011001 +1110110000010000 +0000000000001110 +1110001100001000 +0000101100101010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0000101110001010 +1110110000010000 +0000000000001110 +1110001100001000 +0000101101000001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0101000110011001 +1110110000010000 +0000000000001110 +1110001100001000 +0000101101101000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0000101110001010 +1110110000010000 +0000000000001110 +1110001100001000 +0000101101111111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000100 +1110110000010000 +0000000000001101 +1110001100001000 +0101011101010010 +1110110000010000 +0000000000001110 +1110001100001000 +0000101111011001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000110110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0000101101001100 +1110110000010000 +0000000000001110 +1110001100001000 +0000110001011011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110110111100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0000101100001011 +1110110000010000 +0000000000001110 +1110001100001000 +0000110010000000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000100 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000110010101000 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000110010101111 +1110001100000101 +0000110111000101 +1110101010000111 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110000100000 +1110001100001000 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000110011010110 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000110011011101 +1110001100000101 +0000110011100111 +1110101010000111 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110000100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0101000110011001 +1110110000010000 +0000000000001110 +1110001100001000 +0000110011110111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000100 +1110110000010000 +0000000000001101 +1110001100001000 +0101011101010010 +1110110000010000 +0000000000001110 +1110001100001000 +0000110101100000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0101000110011001 +1110110000010000 +0000000000001110 +1110001100001000 +0000110101111000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000100 +1110110000010000 +0000000000001101 +1110001100001000 +0101011101010010 +1110110000010000 +0000000000001110 +1110001100001000 +0000110110111110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000111011110111 +1110101010000111 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110000100000 +1110001100001000 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000111111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000110111111011 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000111000000010 +1110001100000101 +0000111000011011 +1110101010000111 +0000000111111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110000100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0101000110011001 +1110110000010000 +0000000000001110 +1110001100001000 +0000111000101011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000100 +1110110000010000 +0000000000001101 +1110001100001000 +0101011101010010 +1110110000010000 +0000000000001110 +1110001100001000 +0000111001111010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0101000110011001 +1110110000010000 +0000000000001110 +1110001100001000 +0000111010010010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000100 +1110110000010000 +0000000000001101 +1110001100001000 +0101011101010010 +1110110000010000 +0000000000001110 +1110001100001000 +0000111011110010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000000 +1111110111101000 +1110110010100000 +1110101010001000 +0000000000000000 +1110110000010000 +0000000000001101 +1110001100001000 +0001000110011100 +1110110000010000 +0000000000001110 +1110001100001000 +0000111100001101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1110110000010000 +0000000000001101 +1110001100001000 +0001000110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0000111100011110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0001000110111011 +1110110000010000 +0000000000001110 +1110001100001000 +0000111100110111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0001000101000011 +1110110000010000 +0000000000001110 +1110001100001000 +0000111101001111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0010000111000011 +1110110000010000 +0000000000001110 +1110001100001000 +0000111101101100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000000000 +1110110000010000 +0000000000001101 +1110001100001000 +0101000001110110 +1110110000010000 +0000000000001110 +1110001100001000 +0000111101111101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000110010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000011100110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000011100101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000110 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000100 +1110110000010000 +0000000000001101 +1110001100001000 +0000101001100011 +1110110000010000 +0000000000001110 +1110001100001000 +0000111110111010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110000100000 +1110001100001000 +0000000011111101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000011011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000111111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000011100101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000001101 +1110001100001000 +0000000010010001 +1110110000010000 +0000000000001110 +1110001100001000 +0000111111101100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110001100001000 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000110010000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000011 +1110110000010000 +0000000000001101 +1110001100001000 +0000001010001100 +1110110000010000 +0000000000001110 +1110001100001000 +0001000000001111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000011101110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000111111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000011110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000100 +1110110000010000 +0000000000001101 +1110001100001000 +0101011101010010 +1110110000010000 +0000000000001110 +1110001100001000 +0001000000110110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000010110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0100101110010110 +1110110000010000 +0000000000001110 +1110001100001000 +0001000001010001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000001000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0110001000010001 +1110110000010000 +0000000000001110 +1110001100001000 +0001000001101000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000001010011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0110010000111011 +1110110000010000 +0000000000001110 +1110001100001000 +0001000001111010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000001100011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0110010000111011 +1110110000010000 +0000000000001110 +1110001100001000 +0001000010001100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000001101111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0110010000111011 +1110110000010000 +0000000000001110 +1110001100001000 +0001000010011110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000001110010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0110010000111011 +1110110000010000 +0000000000001110 +1110001100001000 +0001000010110000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000001100101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0110010000111011 +1110110000010000 +0000000000001110 +1110001100001000 +0001000011000010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000111010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0110010000111011 +1110110000010000 +0000000000001110 +1110001100001000 +0001000011010100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000100000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0110010000111011 +1110110000010000 +0000000000001110 +1110001100001000 +0001000011100110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0110010000111011 +1110110000010000 +0000000000001110 +1110001100001000 +0001000011111000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0100110110001010 +1110110000010000 +0000000000001110 +1110001100001000 +0001000100000100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110110111100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0000101011100010 +1110110000010000 +0000000000001110 +1110001100001000 +0001000101100010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0000000101011010 +1110110000010000 +0000000000001110 +1110001100001000 +0001000101111010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0010010010001101 +1110110000010000 +0000000000001110 +1110001100001000 +0001000110010001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000000 +1110110000010000 +0000000000001101 +1110001100001000 +0000111101011010 +1110110000010000 +0000000000001110 +1110001100001000 +0001000110101000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000010000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000010000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110101010000111 +0000000000000000 +1111110111101000 +1110110010100000 +1110101010001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0001001101001111 +1110001100000101 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0001000111101110 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000011 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000000001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0001001001001010 +1110001100000101 +0000000000000000 +1110110000010000 +0000000000001101 +1110001100001000 +0001011100100100 +1110110000010000 +0000000000001110 +1110001100001000 +0001001000010011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0000110010001011 +1110110000010000 +0000000000001110 +1110001100001000 +0001001000101100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0001010001000111 +1110110000010000 +0000000000001110 +1110001100001000 +0001001001000011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0001000111011111 +1110101010000111 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000010000010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0001001001011011 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0001001001100010 +1110001100000101 +0001001010000000 +1110101010000111 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0000101111100100 +1110110000010000 +0000000000001110 +1110001100001000 +0001001001111001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0001001011011111 +1110101010000111 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000010000100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0001001010010001 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0001001010011000 +1110001100000101 +0001001010111000 +1110101010000111 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0000101111100100 +1110110000010000 +0000000000001110 +1110001100001000 +0001001010110001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0001001011011111 +1110101010000111 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000010001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0001001011001001 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0001001011010000 +1110001100000101 +0001001011011111 +1110101010000111 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0001001011101110 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000011 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000000001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0001001101001101 +1110001100000101 +0000000000000000 +1110110000010000 +0000000000001101 +1110001100001000 +0001011100100100 +1110110000010000 +0000000000001110 +1110001100001000 +0001001100010110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0000110010001011 +1110110000010000 +0000000000001110 +1110001100001000 +0001001100101111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0001010001000111 +1110110000010000 +0000000000001110 +1110001100001000 +0001001101000110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0001001011011111 +1110101010000111 +0001000111001011 +1110101010000111 +0000000000000011 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0001001101011111 +1110001100000101 +0001010001000001 +1110101010000111 +0000000000001010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0100101110010110 +1110110000010000 +0000000000001110 +1110001100001000 +0001001101110111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000001001 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0110001000010001 +1110110000010000 +0000000000001110 +1110001100001000 +0001001110001110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000001000111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0110010000111011 +1110110000010000 +0000000000001110 +1110001100001000 +0001001110100000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000001100001 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0110010000111011 +1110110000010000 +0000000000001110 +1110001100001000 +0001001110110010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000001101101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0110010000111011 +1110110000010000 +0000000000001110 +1110001100001000 +0001001111000100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000001100101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0110010000111011 +1110110000010000 +0000000000001110 +1110001100001000 +0001001111010110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000100000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0110010000111011 +1110110000010000 +0000000000001110 +1110001100001000 +0001001111101000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000001001111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0110010000111011 +1110110000010000 +0000000000001110 +1110001100001000 +0001001111111010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000001110110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0110010000111011 +1110110000010000 +0000000000001110 +1110001100001000 +0001010000001100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000001100101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0110010000111011 +1110110000010000 +0000000000001110 +1110001100001000 +0001010000011110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000001110010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0110010000111011 +1110110000010000 +0000000000001110 +1110001100001000 +0001010000110000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0100110110001010 +1110110000010000 +0000000000001110 +1110001100001000 +0001010000111100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000101 +1110110000010000 +1110001110010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110101010001000 +0001010001001001 +1110001100000001 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0000010001100110 +1110110000010000 +0000000000001110 +1110001100001000 +0001010001101111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110110111100000 +1110001100001000 +0000000000000011 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0001010010000110 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000011 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000101 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0001010010011011 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000000001000 +0000000000000000 +1111110010101000 +1111110000010000 +0001010010101010 +1110001100000101 +0001011010101010 +1110101010000111 +0000000000000011 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0000110000000110 +1110110000010000 +0000000000001110 +1110001100001000 +0001010011011001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110001100001000 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0000110000011011 +1110110000010000 +0000000000001110 +1110001100001000 +0001010011110010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110001100001000 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0000001001010111 +1110110000010000 +0000000000001110 +1110001100001000 +0001010100001100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0000001001101100 +1110110000010000 +0000000000001110 +1110001100001000 +0001010100100111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000011 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0001010101000010 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0001010101001001 +1110001100000101 +0001011010001011 +1110101010000111 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000100 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0001010101011101 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0001010101110010 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111010101001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0001010110010010 +1110001100000101 +0001011010001011 +1110101010000111 +0000000000000001 +1111110000010000 +0000000000000100 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0001010110110001 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0001010110111000 +1110001100000101 +0001010111001000 +1110101010000111 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010100000 +1111110001010000 +1110011111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0001010111111001 +1110101010000111 +0000000000000001 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0001010111101000 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0001010111101111 +1110001100000101 +0001010111111001 +1110101010000111 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000110 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000110 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0000110000111101 +1110110000010000 +0000000000001110 +1110001100001000 +0001011000110100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000100 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000010110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0100101110010110 +1110110000010000 +0000000000001110 +1110001100001000 +0001011001101100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000100 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0100111000001101 +1110110000010000 +0000000000001110 +1110001100001000 +0001011010000110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0000011100101011 +1110110000010000 +0000000000001110 +1110001100001000 +0001011010100101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0001011010111111 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0001011011001001 +1110001100000101 +0001011011100000 +1110101010000111 +0000000000000010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0110101011011001 +1110110000010000 +0000000000001110 +1110001100001000 +0001011011011011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0010000111000011 +1110110000010000 +0000000000001110 +1110001100001000 +0001011011110011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000110110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0010010010001101 +1110110000010000 +0000000000001110 +1110001100001000 +0001011100010011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0110000000000000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0010000101101110 +1110110000010000 +0000000000001110 +1110001100001000 +0001011100110110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000110110 +1110101010000111 +0000000000000000 +1111110000100000 +1110101010001000 +1110110111110000 +1110101010001000 +0000000000000000 +1110011111001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0100110010011010 +1110110000010000 +0000000000001110 +1110001100001000 +0001011101001111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0001011101100011 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0001011101110010 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111010101001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0001011110110110 +1110001100000101 +0000000000000000 +1110110000010000 +0000000000001101 +1110001100001000 +0001011100100100 +1110110000010000 +0000000000001110 +1110001100001000 +0001011110001011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0001011110100000 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0001011110100111 +1110001100000101 +0001011110110100 +1110101010000111 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110001100001000 +0001011101010100 +1110101010000111 +0000000000000000 +1110110000010000 +0000000000001101 +1110001100001000 +0110100110100010 +1110110000010000 +0000000000001110 +1110001100001000 +0001011111000010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0100110010011010 +1110110000010000 +0000000000001110 +1110001100001000 +0001011111001110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0100110010011010 +1110110000010000 +0000000000001110 +1110001100001000 +0001011111100110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110101010000111 +0000000000000101 +1110110000010000 +1110001110010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110101010001000 +0001011111110110 +1110001100000001 +0000000001010000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0110001000010001 +1110110000010000 +0000000000001110 +1110001100001000 +0001100000001111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0100110110001010 +1110110000010000 +0000000000001110 +1110001100001000 +0001100000101010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1110110000010000 +0000000000001101 +1110001100001000 +0110100110011010 +1110110000010000 +0000000000001110 +1110001100001000 +0001100000111011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110001100001000 +0000000000000000 +1110110000010000 +0000000000001101 +1110001100001000 +0110100110100010 +1110110000010000 +0000000000001110 +1110001100001000 +0001100001001101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000100 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0001100100000100 +1110001100000101 +0000000000000000 +1110110000010000 +0000000000001101 +1110001100001000 +0001011100111000 +1110110000010000 +0000000000001110 +1110001100001000 +0001100001110100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0001100010001100 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000100 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0001100010101000 +1110001100000101 +0001100100000010 +1110101010000111 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0001100010111011 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0001100011000010 +1110001100000101 +0001100011011110 +1110101010000111 +0000000000000001 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0110010011001001 +1110110000010000 +0000000000001110 +1110001100001000 +0001100011010111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0001100100000010 +1110101010000111 +0000000000000001 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0110010000111011 +1110110000010000 +0000000000001110 +1110001100001000 +0001100011111010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0001100001010100 +1110101010000111 +0000000000000001 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110101010000111 +0000000000000000 +1111110000100000 +1110101010001000 +1110110111110000 +1110101010001000 +0000000000000000 +1110011111001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0001011111110100 +1110110000010000 +0000000000001110 +1110001100001000 +0001100100101001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0110010100100001 +1110110000010000 +0000000000001110 +1110001100001000 +0001100101000010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0110001010100100 +1110110000010000 +0000000000001110 +1110001100001000 +0001100101011011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110101010000111 +0000000000000000 +1111110111101000 +1110110010100000 +1110101010001000 +0000000000010000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0001011010110000 +1110110000010000 +0000000000001110 +1110001100001000 +0001100101111111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000010001 +1110001100001000 +0000000000010000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0001011010110000 +1110110000010000 +0000000000001110 +1110001100001000 +0001100110010110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000010010 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000010010 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0001100111010101 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0001101001110000 +1110001100000101 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010010 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000010010 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000010010 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0001100111000100 +1110101010000111 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0001101010000101 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0001101010001100 +1110001100000101 +0001101010011101 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010100000 +1111110001010000 +1110011111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000010 +1111110000100000 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110101010000111 +0000000000000101 +1110110000010000 +1110001110010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110101010001000 +0001101010101000 +1110001100000001 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0001101010111110 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0001101011001101 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000000001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0001101011100001 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0001101011110000 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000000001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111010101001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0001101001110110 +1110110000010000 +0000000000001110 +1110001100001000 +0001101100010110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000010 +1111110000100000 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0001101001110110 +1110110000010000 +0000000000001110 +1110001100001000 +0001101100101111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000010 +1111110111100000 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0001101101000111 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0001101101001110 +1110001100000101 +0001101101110101 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000010 +1111110000100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000010 +1111110111100000 +1110001100001000 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0001101110001000 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0001110001001101 +1110001100000101 +0000000000000001 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010010 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000000001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0001101111000100 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0001101111001011 +1110001100000101 +0001110000011000 +1110101010000111 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010010 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000010 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0001101101110101 +1110101010000111 +0000000000000001 +1111110000010000 +0000000000000100 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0001110001011101 +1110001100000101 +0001110001101110 +1110101010000111 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010100000 +1111110001010000 +1110011111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110101010000111 +0000000000000100 +1110110000010000 +1110001110010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110101010001000 +0001110001111001 +1110001100000001 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0001110010001111 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0001110010010110 +1110001100000101 +0001110010101101 +1110101010000111 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0110101011011001 +1110110000010000 +0000000000001110 +1110001100001000 +0001110010101000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0001110010111100 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0001110011001011 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000000001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0001110011011111 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0001110011101110 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000000001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111010101001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000010001 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0001101001110110 +1110110000010000 +0000000000001110 +1110001100001000 +0001110100100001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0001101001110110 +1110110000010000 +0000000000001110 +1110001100001000 +0001110101001010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000010 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0001111010100001 +1110001100000101 +0111111111111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010001 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010001 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0001110110101111 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0001110111001010 +1110001100000101 +0001111010011111 +1110101010000111 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000010001 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010001 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010001 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000010001 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0001111001101110 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0001111010001001 +1110001100000101 +0001111010011111 +1110101010000111 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0001110101010000 +1110101010000111 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010100000 +1111110001010000 +1110011111001000 +0001111010110100 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0001111101100111 +1110001100000101 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010001 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0001111011100101 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0001111011101111 +1110001100000101 +0001111101001111 +1110101010000111 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010010 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010001 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000010 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0001111010100001 +1110101010000111 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0001111101110110 +1110001100000101 +0001111110000111 +1110101010000111 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010100000 +1111110001010000 +1110011111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110101010000111 +0000000000000100 +1110110000010000 +1110001110010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110101010001000 +0001111110010010 +1110001100000001 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0001111110101000 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0001111110101111 +1110001100000101 +0001111111000110 +1110101010000111 +0000000000000100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0110101011011001 +1110110000010000 +0000000000001110 +1110001100001000 +0001111111000001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010100000 +1111110001010000 +1110011111001000 +0001111111100101 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0010000010011100 +1110001100000101 +0000000000000001 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010010 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001101010100110 +1110110000010000 +0000000000001110 +1110001100001000 +0010000000111001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110001100001000 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0010000001010011 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0010000001100110 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000000001000 +0000000000000000 +1111110010101000 +1111110000010000 +0010000001110101 +1110001100000101 +0010000010000100 +1110101010000111 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0001111111010010 +1110101010000111 +0000000000000001 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0010000010111001 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0010000011000000 +1110001100000101 +0010000011001101 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000010 +1111110111100000 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0010000011101000 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0010000011101111 +1110001100000101 +0010000011111100 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000010 +1111110111100000 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110101010000111 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000010011 +1110001100001000 +0000100000000000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010011 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0011011111111110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000100000000001 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010011 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000100000000010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010011 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010011 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000000 +1111110111101000 +1110110010100000 +1110101010001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0010000111010110 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0010000111011101 +1110001100000101 +0010000111110100 +1110101010000111 +0000000000000101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0110101011011001 +1110110000010000 +0000000000001110 +1110001100001000 +0010000111101111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000100000000000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0010001000100111 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0010001001010011 +1110001100000101 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0010001000000000 +1110101010000111 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0011111111111011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0010001001110000 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0010001001110111 +1110001100000101 +0010001010001110 +1110101010000111 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0110101011011001 +1110110000010000 +0000000000001110 +1110001100001000 +0010001010001001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0010001011000000 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0010001011000111 +1110001100000101 +0010010001001111 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0010001101100000 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0010001101100111 +1110001100000101 +0010001110111011 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0010010000001011 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000110110 +1110101010000111 +0000000000000000 +1111110000100000 +1110101010001000 +1110110111110000 +1110101010001000 +0000000000000000 +1110011111001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0010010011110010 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0010010011111001 +1110001100000101 +0010010101010100 +1110101010000111 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0010011001111000 +1110101010000111 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0010010111110101 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0010010111111100 +1110001100000101 +0010011000110110 +1110101010000111 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0010011001111000 +1110101010000111 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0100000000000000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000010100 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000010101 +1110001100001000 +0000000000100000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000010110 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000010111 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0110001000010001 +1110110000010000 +0000000000001110 +1110001100001000 +0010011010111011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000011000 +1110001100001000 +0000000000000000 +1110110000010000 +0000000000001101 +1110001100001000 +0010011011101000 +1110110000010000 +0000000000001110 +1110001100001000 +0010011011001100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1110110000010000 +0000000000001101 +1110001100001000 +0100100000011000 +1110110000010000 +0000000000001110 +1110001100001000 +0010011011011101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000001111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0001011010110000 +1110110000010000 +0000000000001110 +1110001100001000 +0010011011111010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000011001 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0010011101001101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000100000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0010011110010000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000100001 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0010011111100011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000100010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0010100000101100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000100011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000010010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0010100001111111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000100100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0010100011010110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000100101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000100011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110001 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0010100100100111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000100110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0010100101111100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000100111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0010100111000101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000101000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0010101000011010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000101001 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0010101001101111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000101010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0010101010111100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000101011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0010101100001001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000101100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0010101101010010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000101101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0010101110010111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000101110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0010101111011110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000101111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000100000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0010110000101101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0010110010000010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000110001 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0010110011010111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000110010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0010110100101100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0010110110000001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000110100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011001 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0010110111010110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000110101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0010111000101011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000110110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0010111010000000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000110111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110001 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0010111011010101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000111000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0010111100101010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000111001 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0010111101111111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000111010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0010111111001010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000111011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011000000010111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000111100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011000001101000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000111101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011000010101111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000111110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011000100000000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001000000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011000101010101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011000110101000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001000001 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011000111111101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001000010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011001001010010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000100011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000100011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011001010100111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001000100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011001011111100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001000101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000100011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000100011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011001101010001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000100011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011001110100110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001000111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000100011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000101100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011001111111011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001001000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011010001010000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001001001 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011010010100101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001001010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011010011111010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001001011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011010101001111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000100011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011010110100100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001001101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000100001 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011010111111001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001001110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011011001001110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001001111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011011010100011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001010000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011011011111000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001010001 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011011101001111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001010010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011011110100100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001010011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011011111111001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001010100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000101101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011100001001110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001010101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011100010100011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001010110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011100011111000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001010111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011100101001101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011100110100010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001011001 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011100111110111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001011010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110001 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000100011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011101001001100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001011011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011101010100001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001011100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000100000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011101011110000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001011101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011101101000101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011101110001110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001011111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011101111010011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001100000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011110000011100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001100001 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011110001101011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001100010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011110011000000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001100011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011110100001111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001100100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011110101100100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001100101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011110110110011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001100110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000100110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011111000001000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001100111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011111001011011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001101000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011111010110000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001101001 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011111100000011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001101010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000111000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011111101011000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001101011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011111110101101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001101100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0100000000000010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001101101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000011101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000101011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000101011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000101011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000101011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0100000001010001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001101110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000011101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0100000010100000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001101111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0100000011101111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0100000101000000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001110001 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0100000110010001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001110010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000011101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0100000111100000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0100001000101111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001110100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0100001010000100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001110101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000011011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0100001011010011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001110110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0100001100100010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001110111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0100001101110001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001111000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0100001111000000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001111001 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0100010000010001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001111010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0100010001100000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001111011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0100010010110101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001111100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0100010100001010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001111101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0100010101011111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001111110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000100110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000101101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011001 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0100010110101000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000000 +1111110111101000 +1110110010100000 +1110101010001000 +0000000000001011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0001011010110000 +1110110000010000 +0000000000001110 +1110001100001000 +0100010111001001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011001 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000010 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000010 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000010 +1111110000010000 +0000000000000100 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000000100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000010 +1111110000010000 +0000000000000101 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000000101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000010 +1111110000010000 +0000000000000110 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000010 +1111110000010000 +0000000000000111 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000000111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000010 +1111110000010000 +0000000000001000 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000001000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000010 +1111110000010000 +0000000000001001 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000001001 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000010 +1111110000010000 +0000000000001010 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000001010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000010 +1111110000010000 +0000000000001011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000100 +1110110000010000 +1110001110010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110101010001000 +0100100000011010 +1110001100000001 +0000000001111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0001011010110000 +1110110000010000 +0000000000001110 +1110001100001000 +0100100000110011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000011010 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110001100001000 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000001111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0100100001010101 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0100100110101011 +1110001100000101 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011001 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000001011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0001011010110000 +1110110000010000 +0000000000001110 +1110001100001000 +0100100010010100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110001100001000 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011010 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0100100011101001 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0100100101101011 +1110001100000101 +0000000000000001 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000001 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000100000000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001101010100110 +1110110000010000 +0000000000001110 +1110001100001000 +0100100100111001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0100100011010110 +1110101010000111 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0100100101111011 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0100100110000010 +1110001100000101 +0100100110010001 +1110101010000111 +0000000000100000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110001100001000 +0100100110101001 +1110101010000111 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110001100001000 +0100100001000011 +1110101010000111 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000000 +1111110111101000 +1110110010100000 +1110101010001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000100000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0100100111000110 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000001111110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0100100111010111 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111010101001000 +0000000000000000 +1111110010101000 +1111110000010000 +0100100111100011 +1110001100000101 +0100100111101101 +1110101010000111 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000010 +1111110000100000 +1110001100001000 +0000000000010101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0100100111111010 +1110001100000101 +0100101000100000 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011001 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0100101001000100 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011010 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110101010000111 +0000000000000100 +1110110000010000 +1110001110010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110101010001000 +0100101001001111 +1110001100000001 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0100100110110001 +1110110000010000 +0000000000001110 +1110001100001000 +0100101001101001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110001100001000 +0000000000010110 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0100101010001101 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0100101110010000 +1110001100000101 +0000000000010101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0100101010100010 +1110001100000101 +0100101011011001 +1110101010000111 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010100 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000100000000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010100000 +1111110001010000 +1110011111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000000001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0100101100001010 +1110101010000111 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010100 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000011111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000000001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010100 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111010101001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000100000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110001100001000 +0100101001111100 +1110101010000111 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0100101110100101 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0100101110110110 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111010101001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0100101111001010 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111010101001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0100101111100000 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111010101001000 +0000000000000000 +1111110010101000 +1111110000010000 +0100101111101100 +1110001100000101 +0100110000000011 +1110101010000111 +0000000000010100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0110101011011001 +1110110000010000 +0000000000001110 +1110001100001000 +0100101111111110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001110001110111 +1110110000010000 +0000000000001110 +1110001100001000 +0100110000011100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000010111 +1110001100001000 +0000000000100000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000101100000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001101010100110 +1110110000010000 +0000000000001110 +1110001100001000 +0100110001000000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000010111 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000010110 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010111 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001101010100110 +1110110000010000 +0000000000001110 +1110001100001000 +0100110001110100 +1110110000010000 +0000000001011111 +1110101010000111 +0100110001111000 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000010101 +1110001100001000 +0000000000100000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0100101001001101 +1110110000010000 +0000000000001110 +1110001100001000 +0100110010001111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1110110000010000 +0000000000001101 +1110001100001000 +0110100110011010 +1110110000010000 +0000000000001110 +1110001100001000 +0100110010101101 +1110110000010000 +0000000001011111 +1110101010000111 +0100110010110001 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0100110010111000 +1110001100000101 +0100110011001011 +1110101010000111 +0000000000000000 +1110110000010000 +0000000000001101 +1110001100001000 +0100111001001000 +1110110000010000 +0000000000001110 +1110001100001000 +0100110011000100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0100110110000100 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1110110000010000 +0000000000001101 +1110001100001000 +0110100110100010 +1110110000010000 +0000000000001110 +1110001100001000 +0100110011011110 +1110110000010000 +0000000001011111 +1110101010000111 +0100110011100010 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0100110011101001 +1110001100000101 +0100110011111100 +1110101010000111 +0000000000000000 +1110110000010000 +0000000000001101 +1110001100001000 +0100111010100110 +1110110000010000 +0000000000001110 +1110001100001000 +0100110011110101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0100110110000100 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0100101001001101 +1110110000010000 +0000000000001110 +1110001100001000 +0100110100001111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000010101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0100110100100100 +1110001100000101 +0100110101001100 +1110101010000111 +0000000000010111 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000010111 +1110001100001000 +0000000000010110 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000010110 +1110001100001000 +0000000000010111 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000100000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0100110101011100 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0100110101100011 +1110001100000101 +0100110101110110 +1110101010000111 +0000000000000000 +1110110000010000 +0000000000001101 +1110001100001000 +0100111001001000 +1110110000010000 +0000000000001110 +1110001100001000 +0100110101101111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0100110110000100 +1110101010000111 +0000000000010101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000010101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000000 +1111110000100000 +1110101010001000 +1110110111110000 +1110101010001000 +0000000000000000 +1110011111001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0110001011111011 +1110110000010000 +0000000000001110 +1110001100001000 +0100110110100100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0100110110111100 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0100111000000111 +1110001100000101 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0110001100010001 +1110110000010000 +0000000000001110 +1110001100001000 +0100110111011110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0100110010011010 +1110110000010000 +0000000000001110 +1110001100001000 +0100110111101010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0100110110101010 +1110101010000111 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000011000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0110011010110011 +1110110000010000 +0000000000001110 +1110001100001000 +0100111000100110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000011000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0100110110001010 +1110110000010000 +0000000000001110 +1110001100001000 +0100111000111101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000010110 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000101100000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000010111 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000010110 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000010111 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000010101 +1110001100001000 +0000000000010110 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0001111111000000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0100111010001110 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0100111010010101 +1110001100000101 +0100111010100000 +1110101010000111 +0000000000100000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000010110 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000010101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0100111010110011 +1110001100000101 +0100111101000000 +1110101010000111 +0000000000010111 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0100111011000001 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0100111011001000 +1110001100000101 +0100111011110010 +1110101010000111 +0000000000010111 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000010111 +1110001100001000 +0000000000010110 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000010110 +1110001100001000 +0100111100110101 +1110101010000111 +0000000000011111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000010111 +1110001100001000 +0000000000010110 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000100000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0100111100001101 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0100111100010100 +1110001100000101 +0100111100011111 +1110101010000111 +0001111111000000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000010110 +1110001100001000 +0000000000010110 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000101000001 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000010110 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000010101 +1110001100001000 +0100111101001100 +1110101010000111 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000010101 +1110001100001000 +0000000000100000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0100101001001101 +1110110000010000 +0000000000001110 +1110001100001000 +0100111101011110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000000 +1111110111101000 +1110110010100000 +1110101010001000 +0100000000000000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000011011 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000011100 +1110001100001000 +0000000000010001 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0001011010110000 +1110110000010000 +0000000000001110 +1110001100001000 +0100111110010110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000011101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000011101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0100111111010101 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0101000001110000 +1110001100000101 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000011101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000011101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0100111111000100 +1110101010000111 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000000 +1111110111101000 +1110110010100000 +1110101010001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0010000000000000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0101000010001011 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0101000011010111 +1110001100000101 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011011 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0101000001111010 +1110101010000111 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000011100 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0101000011101010 +1110001100000101 +0101000100111110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011011 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011011 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111010101001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0101000110010011 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011011 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011011 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000000001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000011100 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000011 +1110110000010000 +1110001110010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110101010001000 +0101000110101101 +1110001100000001 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0101000111000011 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000111111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0101000111010100 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111010101001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0101000111101000 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111010101001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000011111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0101000111111110 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111010101001000 +0000000000000000 +1111110010101000 +1111110000010000 +0101001000001010 +1110001100000101 +0101001000100001 +1110101010000111 +0000000000000111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0110101011011001 +1110110000010000 +0000000000001110 +1110001100001000 +0101001000011100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001110001110111 +1110110000010000 +0000000000001110 +1110001100001000 +0101001000111010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001101010100110 +1110110000010000 +0000000000001110 +1110001100001000 +0101001001100000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000100000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001101010100110 +1110110000010000 +0000000000001110 +1110001100001000 +0101001010000100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110001100001000 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0101000011011101 +1110110000010000 +0000000000001110 +1110001100001000 +0101001011001001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000010 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0101001011100011 +1110001100000101 +0101001100000100 +1110101010000111 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0101000110101011 +1110110000010000 +0000000000001110 +1110001100001000 +0101001011111101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0101001100100011 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0101000110101011 +1110110000010000 +0000000000001110 +1110001100001000 +0101001100011110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000001011 +1110110000010000 +1110001110010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110101010001000 +0101001100101011 +1110001100000001 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0101001101000001 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000010 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000111111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0101001101010011 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111010101001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0101001101100111 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111010101001000 +0000000000000010 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000011111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0101001101111111 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111010101001000 +0000000000000000 +1111110010101000 +1111110000010000 +0101001110001011 +1110001100000101 +0101001110100010 +1110101010000111 +0000000000001000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0110101011011001 +1110110000010000 +0000000000001110 +1110001100001000 +0101001110011101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000010 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0001101001110110 +1110110000010000 +0000000000001110 +1110001100001000 +0101001111000010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000010 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0001101001110110 +1110110000010000 +0000000000001110 +1110001100001000 +0101001111101011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0101010000000111 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000110 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0101010000101111 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000000001000 +0000000000000001 +1111110000010000 +0000000000000110 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000010 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0101010001010011 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000000001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111010101001000 +0000000000000000 +1111110010101000 +1111110000010000 +0101010001100100 +1110001100000101 +0101010011000010 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000010 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000010 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000100 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000010 +1111110111100000 +1110110111100000 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000010 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000010 +1111110111100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000100 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000010 +1111110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000110 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0101010011010010 +1110001100000101 +0101010101010100 +1110101010000111 +0000000000000001 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000100 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000010 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000001000 +1110000010010000 +0000000000001101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000001101 +1111110000100000 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0101010101000110 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000001 +1111110000010000 +0000000000000111 +1110000010010000 +0000000000001101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000001101 +1111110000100000 +1110001100001000 +0101010110100010 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000010 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000001000 +1110000010010000 +0000000000001101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000001101 +1111110000100000 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0101010110010110 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000001 +1111110000010000 +0000000000000111 +1110000010010000 +0000000000001101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000001101 +1111110000100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001101010100110 +1110110000010000 +0000000000001110 +1110001100001000 +0101010110111100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000001 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001101010100110 +1110110000010000 +0000000000001110 +1110001100001000 +0101010111101110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000001 +1111110000010000 +0000000000001001 +1110000010010000 +0000000000001101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000001101 +1111110000100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001101010100110 +1110110000010000 +0000000000001110 +1110001100001000 +0101011000100010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000001 +1111110000010000 +0000000000001010 +1110000010010000 +0000000000001101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000001101 +1111110000100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000110 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000001101 +1110001100001000 +0101001011010100 +1110110000010000 +0000000000001110 +1110001100001000 +0101011001010001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000001000 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0101011001101010 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0101011101001100 +1110001100000101 +0000000000000001 +1111110000010000 +0000000000000101 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0101011010000011 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0101011010001010 +1110001100000101 +0101011010101101 +1110101010000111 +0000000000000001 +1111110000010000 +0000000000000101 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000001001 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0101011100001100 +1110101010000111 +0000000000000001 +1111110000010000 +0000000000000101 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000001010 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000111 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0101011011011110 +1110001100000101 +0101011011110110 +1110101010000111 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0101011100001100 +1110101010000111 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000110 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000001101 +1110001100001000 +0101001011010100 +1110110000010000 +0000000000001110 +1110001100001000 +0101011101000101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0101011001010110 +1110101010000111 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000001001 +1110110000010000 +1110001110010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110101010001000 +0101011101010100 +1110001100000001 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0101011101101110 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0101011110000010 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111010101001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0101011110010110 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111010101001000 +0000000000000010 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000111111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0101011110101101 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111010101001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0101011111000001 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111010101001000 +0000000000000010 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000011111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0101011111011001 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111010101001000 +0000000000000000 +1111110010101000 +1111110000010000 +0101011111100101 +1110001100000101 +0101011111111100 +1110101010000111 +0000000000001001 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0110101011011001 +1110110000010000 +0000000000001110 +1110001100001000 +0101011111110111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001110001110111 +1110110000010000 +0000000000001110 +1110001100001000 +0101100000010101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001101010100110 +1110110000010000 +0000000000001110 +1110001100001000 +0101100000111111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000001 +1111110000010000 +0000000000000111 +1110000010010000 +0000000000001101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000001101 +1111110000100000 +1110001100001000 +0000000000000010 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001110001110111 +1110110000010000 +0000000000001110 +1110001100001000 +0101100001101010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000010 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000100 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001101010100110 +1110110000010000 +0000000000001110 +1110001100001000 +0101100010010110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000001 +1111110000010000 +0000000000001000 +1110000010010000 +0000000000001101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000001101 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000111 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000001000 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000011101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000100000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001101010100110 +1110110000010000 +0000000000001110 +1110001100001000 +0101100100110011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000001 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000100 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0101100101111001 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0101101011001101 +1110001100000101 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110001100001000 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0101100110101110 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0101100110110101 +1110001100000101 +0101100111100110 +1110101010000111 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000101 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000110 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000000001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0101000011011101 +1110110000010000 +0000000000001110 +1110001100001000 +0101100111011111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0101101010010000 +1110101010000111 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000110 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0101000011011101 +1110110000010000 +0000000000001110 +1110001100001000 +0101101000000010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0101101000101111 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0101101001101111 +1110001100000101 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010100000 +1111110001010000 +1110011111001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0101000011011101 +1110110000010000 +0000000000001110 +1110001100001000 +0101101001010010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0101101000011101 +1110101010000111 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000101 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0101000011011101 +1110110000010000 +0000000000001110 +1110001100001000 +0101101010001011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000010 +1111110111100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000100000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0101100101100101 +1110101010000111 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000001011 +1110110000010000 +1110001110010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110101010001000 +0101101011010101 +1110001100000001 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0010000011010110 +1110110000010000 +0000000000001110 +1110001100001000 +0101101011110111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000001 +1111110000010000 +0000000000000111 +1110000010010000 +0000000000001101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000001101 +1111110000100000 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0010000010100111 +1110110000010000 +0000000000001110 +1110001100001000 +0101101100011110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000001 +1111110000010000 +0000000000001000 +1110000010010000 +0000000000001101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000001101 +1111110000100000 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010100000 +1111110001010000 +1110011111001000 +0101101100111101 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000100000000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0101101101001110 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000000001000 +0000000000000001 +1111110000010000 +0000000000000111 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000001000000000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0101101101100110 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000000001000 +0000000000000001 +1111110000010000 +0000000000001000 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010100000 +1111110001010000 +1110011111001000 +0101101110000000 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000000001000 +0000000000000000 +1111110010101000 +1111110000010000 +0101101110001100 +1110001100000101 +0101111001010001 +1110101010000111 +0000000000000001 +1111110000010000 +0000000000000111 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0010000010100111 +1110110000010000 +0000000000001110 +1110001100001000 +0101101110100101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000001 +1111110000010000 +0000000000000111 +1110000010010000 +0000000000001101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000001101 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000001000 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000111111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0010000011010110 +1110110000010000 +0000000000001110 +1110001100001000 +0101101111001100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000001 +1111110000010000 +0000000000001000 +1110000010010000 +0000000000001101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000001101 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000111 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001110001110111 +1110110000010000 +0000000000001110 +1110001100001000 +0101101111110011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000111 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001101010100110 +1110110000010000 +0000000000001110 +1110001100001000 +0101110000011011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000001 +1111110000010000 +0000000000001001 +1110000010010000 +0000000000001101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000001101 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000001000 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001110001110111 +1110110000010000 +0000000000001110 +1110001100001000 +0101110001000111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000001000 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001101010100110 +1110110000010000 +0000000000001110 +1110001100001000 +0101110001110001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000001 +1111110000010000 +0000000000001010 +1110000010010000 +0000000000001101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000001101 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000001001 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000001010 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000011101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000100000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001101010100110 +1110110000010000 +0000000000001110 +1110001100001000 +0101110100001100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000110 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000110 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0101110101101011 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0101110101110010 +1110001100000101 +0101110110100011 +1110101010000111 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000100 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000101 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000000001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0101000011011101 +1110110000010000 +0000000000001110 +1110001100001000 +0101110110011100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0101111001010001 +1110101010000111 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000101 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0101000011011101 +1110110000010000 +0000000000001110 +1110001100001000 +0101110110111111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0101110111101110 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0101111000101110 +1110001100000101 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010100000 +1111110001010000 +1110011111001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0101000011011101 +1110110000010000 +0000000000001110 +1110001100001000 +0101111000010001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0101110111011010 +1110101010000111 +0000000000000001 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000100 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0101000011011101 +1110110000010000 +0000000000001110 +1110001100001000 +0101111001001100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000011 +1110110000010000 +0000000000001101 +1110001100001000 +0101101011010011 +1110110000010000 +0000000000001110 +1110001100001000 +0101111010100000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000011 +1110110000010000 +0000000000001101 +1110001100001000 +0101101011010011 +1110110000010000 +0000000000001110 +1110001100001000 +0101111011101110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000011 +1110110000010000 +0000000000001101 +1110001100001000 +0101101011010011 +1110110000010000 +0000000000001110 +1110001100001000 +0101111100111101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000011 +1110110000010000 +0000000000001101 +1110001100001000 +0101101011010011 +1110110000010000 +0000000000001110 +1110001100001000 +0101111110001100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000011 +1110110000010000 +1110001110010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110101010001000 +0101111110011001 +1110001100000001 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0101111110101111 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000111111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0101111111000000 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111010101001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0101111111010100 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111010101001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000011111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0101111111101010 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111010101001000 +0000000000000000 +1111110010101000 +1111110000010000 +0101111111110110 +1110001100000101 +0110000000001101 +1110101010000111 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0110101011011001 +1110110000010000 +0000000000001110 +1110001100001000 +0110000000001000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0110000000101001 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000111111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0110000001000111 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111010101001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0110000001101000 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111010101001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000011111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0110000010001011 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111010101001000 +0000000000000000 +1111110010101000 +1111110000010000 +0110000010010111 +1110001100000101 +0110000010101110 +1110101010000111 +0000000000001101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0110101011011001 +1110110000010000 +0000000000001110 +1110001100001000 +0110000010101001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000010 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000010 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000100 +1110110000010000 +0000000000001101 +1110001100001000 +0101111001010111 +1110110000010000 +0000000000001110 +1110001100001000 +0110000011111100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0110000100010011 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0110001000001011 +1110001100000101 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0110000100101011 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0110000100110010 +1110001100000101 +0110000101101100 +1110101010000111 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001101010100110 +1110110000010000 +0000000000001110 +1110001100001000 +0110000101010011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110001100001000 +0110000111000110 +1110101010000111 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001101010100110 +1110110000010000 +0000000000001110 +1110001100001000 +0110000110011001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000100 +1110110000010000 +0000000000001101 +1110001100001000 +0101111001010111 +1110110000010000 +0000000000001110 +1110001100001000 +0110001000000100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0110000100000001 +1110101010000111 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0010000111000011 +1110110000010000 +0000000000001110 +1110001100001000 +0110001000100011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0110001000110111 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0110001000111110 +1110001100000101 +0110001001010101 +1110101010000111 +0000000000001110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0110101011011001 +1110110000010000 +0000000000001110 +1110001100001000 +0110001001010000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0110001001100100 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0110001001101011 +1110001100000101 +0110001010000100 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0001011010110000 +1110110000010000 +0000000000001110 +1110001100001000 +0110001001111110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110000100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110110111100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0110001010111111 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0110001011000110 +1110001100000101 +0110001011011110 +1110101010000111 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0001011011110101 +1110110000010000 +0000000000001110 +1110001100001000 +0110001011011001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0010010010001101 +1110110000010000 +0000000000001110 +1110001100001000 +0110001011110000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000000011 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0110001100101100 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0110001100111111 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111010101001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0110001101010111 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111010101001000 +0000000000000000 +1111110010101000 +1111110000010000 +0110001101100011 +1110001100000101 +0110001101111010 +1110101010000111 +0000000000001111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0110101011011001 +1110110000010000 +0000000000001110 +1110001100001000 +0110001101110101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0110001110110110 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0110001111001001 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111010101001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0110001111100001 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111010101001000 +0000000000000000 +1111110010101000 +1111110000010000 +0110001111101101 +1110001100000101 +0110010000000100 +1110101010000111 +0000000000010000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0110101011011001 +1110110000010000 +0000000000001110 +1110001100001000 +0110001111111111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000010 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000000011 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0110010001011010 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0110010001100001 +1110001100000101 +0110010001111000 +1110101010000111 +0000000000010001 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0110101011011001 +1110110000010000 +0000000000001110 +1110001100001000 +0110010001110011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000011 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000000011 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110110111100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000000011 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0110010011100101 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0110010011101100 +1110001100000101 +0110010100000011 +1110101010000111 +0000000000010010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0110101011011001 +1110110000010000 +0000000000001110 +1110001100001000 +0110010011111110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000011 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110110111100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000101 +1110110000010000 +1110001110010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110101010001000 +0110010100100011 +1110001100000001 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000000011 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0110010101000110 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0110010101001101 +1110001100000101 +0110010101010011 +1110101010000111 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000101101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0110010110001000 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0110010110001111 +1110001100000101 +0110010110101001 +1110101010000111 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0110010110111100 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000001 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000000001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0110011010001001 +1110001100000101 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110001100001000 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0110011000010011 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001001 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0110011000100101 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111010101001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0110011001000101 +1110001100000101 +0110011010000111 +1110101010000111 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001101010100110 +1110110000010000 +0000000000001110 +1110001100001000 +0110011001011110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0110010110101001 +1110101010000111 +0000000000000001 +1111110000010000 +0000000000000100 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0110011010011001 +1110001100000101 +0110011010101010 +1110101010000111 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010100000 +1111110001010000 +1110011111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110101010000111 +0000000000000100 +1110110000010000 +1110001110010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110101010001000 +0110011010110101 +1110001100000001 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0110011011010111 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0110011011011110 +1110001100000101 +0110011011110101 +1110101010000111 +0000000000010011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0110101011011001 +1110110000010000 +0000000000001110 +1110001100001000 +0110011011110000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0001011010110000 +1110110000010000 +0000000000001110 +1110001100001000 +0110011100000111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0110011100011101 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0110011100100100 +1110001100000101 +0110011101000100 +1110101010000111 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010100000 +1111110001010000 +1110011111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000010 +1111110111100000 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0110011101100000 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0110100000000110 +1110001100000101 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001110001110111 +1110110000010000 +0000000000001110 +1110001100001000 +0110011110000001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001101010100110 +1110110000010000 +0000000000001110 +1110001100001000 +0110011111000001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000010 +1111110111100000 +1110001100001000 +0110011101010001 +1110101010000111 +0000000000000001 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0110100000010110 +1110001100000101 +0110100001011100 +1110101010000111 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000101101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0110100001101110 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0110100001110101 +1110001100000101 +0110100010001100 +1110101010000111 +0000000000010011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0110101011011001 +1110110000010000 +0000000000001110 +1110001100001000 +0110100010000111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0110100010011011 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0110100010100010 +1110001100000101 +0110100011011011 +1110101010000111 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110110111100000 +1110001100001000 +0110100101111011 +1110101010000111 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110110111100000 +1110001100001000 +0000000000000011 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0110100011111001 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0110100101111011 +1110001100000101 +0000000000000011 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000000011 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110110111100000 +1110001100001000 +0110100011100110 +1110101010000111 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0001011011110101 +1110110000010000 +0000000000001110 +1110001100001000 +0110100110001111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000010000000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110101010000111 +0000000010000001 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110101010000111 +0000000000100010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110101010000111 +0000000000000000 +1110110000010000 +0000000000001101 +1110001100001000 +0010000100000101 +1110110000010000 +0000000000001110 +1110001100001000 +0110100110111110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1110110000010000 +0000000000001101 +1110001100001000 +0001100101101001 +1110110000010000 +0000000000001110 +1110001100001000 +0110100111001111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1110110000010000 +0000000000001101 +1110001100001000 +0100111101101001 +1110110000010000 +0000000000001110 +1110001100001000 +0110100111100000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1110110000010000 +0000000000001101 +1110001100001000 +0010011001111110 +1110110000010000 +0000000000001110 +1110001100001000 +0110100111110001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1110110000010000 +0000000000001101 +1110001100001000 +0001011100011110 +1110110000010000 +0000000000001110 +1110001100001000 +0110101000000010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1110110000010000 +0000000000001101 +1110001100001000 +0000111011111101 +1110110000010000 +0000000000001110 +1110001100001000 +0110101000010011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1110110000010000 +0000000000001101 +1110001100001000 +0110101000101001 +1110110000010000 +0000000000001110 +1110001100001000 +0110101000100100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0110101000111010 +1110001100000101 +0110101000101001 +1110101010000111 +0000000000000000 +1111110111101000 +1110110010100000 +1110101010001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0110101001001101 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0110101001010100 +1110001100000101 +0110101001101001 +1110101010000111 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0110101011011001 +1110110000010000 +0000000000001110 +1110001100001000 +0110101001100100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0110101001111000 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0110101011010011 +1110001100000101 +0000000000110010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0110101010011011 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0110101010111011 +1110001100000101 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0110101010001100 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000010 +1111110000100000 +1110001100001000 +0110101001101001 +1110101010000111 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0110001000010001 +1110110000010000 +0000000000001110 +1110001100001000 +0110101011101011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000001000101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0110010000111011 +1110110000010000 +0000000000001110 +1110001100001000 +0110101011111101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000001010010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0110010000111011 +1110110000010000 +0000000000001110 +1110001100001000 +0110101100001111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000001010010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0110010000111011 +1110110000010000 +0000000000001110 +1110001100001000 +0110101100100001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0100110110001010 +1110110000010000 +0000000000001110 +1110001100001000 +0110101100101101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0100111000001101 +1110110000010000 +0000000000001110 +1110001100001000 +0110101101000101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1110110000010000 +0000000000001101 +1110001100001000 +0110101000101001 +1110110000010000 +0000000000001110 +1110001100001000 +0110101101010110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 diff --git a/projects/06/pong/Pong.nosymbol.asm b/projects/06/pong/Pong.nosymbol.asm new file mode 100644 index 0000000..8b80f7a --- /dev/null +++ b/projects/06/pong/Pong.nosymbol.asm @@ -0,0 +1,27483 @@ +@256 +D=A +@0 +M=D +@133 +0;JMP +@15 +M=D +@0 +AM=M-1 +D=M +A=A-1 +D=M-D +M=0 +@19 +D;JNE +@0 +A=M-1 +M=-1 +@15 +A=M +0;JMP +@15 +M=D +@0 +AM=M-1 +D=M +A=A-1 +D=M-D +M=0 +@35 +D;JLE +@0 +A=M-1 +M=-1 +@15 +A=M +0;JMP +@15 +M=D +@0 +AM=M-1 +D=M +A=A-1 +D=M-D +M=0 +@51 +D;JGE +@0 +A=M-1 +M=-1 +@15 +A=M +0;JMP +@5 +D=A +@1 +A=M-D +D=M +@13 +M=D +@0 +AM=M-1 +D=M +@2 +A=M +M=D +D=A +@0 +M=D+1 +@1 +D=M +@14 +AM=D-1 +D=M +@4 +M=D +@14 +AM=M-1 +D=M +@3 +M=D +@14 +AM=M-1 +D=M +@2 +M=D +@14 +AM=M-1 +D=M +@1 +M=D +@13 +A=M +0;JMP +@0 +A=M +M=D +@1 +D=M +@0 +AM=M+1 +M=D +@2 +D=M +@0 +AM=M+1 +M=D +@3 +D=M +@0 +AM=M+1 +M=D +@4 +D=M +@0 +AM=M+1 +M=D +@4 +D=A +@13 +D=D+M +@0 +D=M-D +@2 +M=D +@0 +MD=M+1 +@1 +M=D +@14 +A=M +0;JMP +@0 +D=A +@13 +M=D +@27058 +D=A +@14 +M=D +@145 +D=A +@95 +0;JMP +@15 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@8643 +D=A +@14 +M=D +@163 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@3 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +A=M +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +A=M+1 +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=M +@10 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@2 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@3 +D=M +@11 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@2 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=M +@12 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@2 +D=M +@5 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@3 +D=M +@13 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@0 +M=M+1 +A=M-1 +M=0 +@3 +D=M +@14 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@3 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@387 +D=A +@14 +M=D +@333 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@3 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@3 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@9357 +D=A +@14 +M=D +@376 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +A=M-1 +M=!M +@1 +D=A +@13 +M=D +@20889 +D=A +@14 +M=D +@418 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@3 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@514 +D=A +@14 +M=D +@441 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@1 +D=A +@13 +M=D +@20889 +D=A +@14 +M=D +@480 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@3 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@514 +D=A +@14 +M=D +@503 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@5 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@5 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@4 +D=A +@13 +M=D +@22354 +D=A +@14 +M=D +@588 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@5 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@54 +0;JMP +@3 +D=A +D=D-1 +@0 +AM=M+1 +A=A-1 +M=0 +@654 +D;JGT +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +A=A+1 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@6774 +D=A +@14 +M=D +@747 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@3 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@6774 +D=A +@14 +M=D +@774 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@798 +D=A +@38 +0;JMP +@3 +D=M +@7 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@3 +D=M +@7 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@826 +D;JNE +@930 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@886 +D=A +@38 +0;JMP +@3 +D=M +@8 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@916 +D=A +@38 +0;JMP +@3 +D=M +@9 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@991 +0;JMP +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@948 +D=A +@38 +0;JMP +@3 +D=M +@8 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@979 +D=A +@38 +0;JMP +@3 +D=M +@9 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@1016 +D=A +@95 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@1062 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@1109 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@3 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@452 +D=A +@14 +M=D +@1156 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@3 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@1178 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +@1185 +D;JNE +@1219 +0;JMP +@3 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=M +@5 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@1401 +0;JMP +@3 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=M +@6 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@3 +D=M +@9 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1267 +D;JNE +@1335 +0;JMP +@3 +D=M +@7 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1283 +D;JNE +@1309 +0;JMP +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@4 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@3 +A=M +M=D +@1333 +0;JMP +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@4 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@3 +A=M+1 +M=D +@1401 +0;JMP +@3 +D=M +@7 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1351 +D;JNE +@1377 +0;JMP +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@4 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@3 +A=M +M=D +@1401 +0;JMP +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@4 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@3 +A=M+1 +M=D +@3 +D=M +@8 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1417 +D;JNE +@1485 +0;JMP +@3 +D=M +@7 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1433 +D;JNE +@1459 +0;JMP +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@4 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@3 +A=M+1 +M=D +@1483 +0;JMP +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@4 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@3 +A=M +M=D +@1551 +0;JMP +@3 +D=M +@7 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1501 +D;JNE +@1527 +0;JMP +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@4 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@3 +A=M+1 +M=D +@1551 +0;JMP +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@4 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@3 +A=M +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=M +@10 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1571 +D=A +@22 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@1581 +D;JNE +@1612 +0;JMP +@0 +M=M+1 +A=M-1 +M=1 +@3 +D=M +@14 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@3 +D=M +@10 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +A=M +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=M +@11 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1632 +D=A +@38 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@1642 +D;JNE +@1675 +0;JMP +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=M +@14 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@3 +D=M +@11 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +A=M +M=D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=M +@12 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1695 +D=A +@22 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@1705 +D;JNE +@1738 +0;JMP +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=M +@14 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@3 +D=M +@12 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +A=M+1 +M=D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=M +@13 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1758 +D=A +@38 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@1768 +D;JNE +@1801 +0;JMP +@4 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=M +@14 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@3 +D=M +@13 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +A=M+1 +M=D +@3 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@387 +D=A +@14 +M=D +@1819 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@3 +D=M +@14 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@5 +D=A +D=D-1 +@0 +AM=M+1 +A=A-1 +M=0 +@1837 +D;JGT +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@10 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@7287 +D=A +@14 +M=D +@1882 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +M=D +@3 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@10 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@7287 +D=A +@14 +M=D +@1916 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@1939 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@1946 +D;JNE +@1963 +0;JMP +@10 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@2086 +0;JMP +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@1979 +D=A +@38 +0;JMP +@0 +A=M-1 +M=!M +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@1997 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D&M +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@2018 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +A=M-1 +D=!M +M=D+1 +@2042 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D&M +@0 +AM=M-1 +D=M +@2054 +D;JNE +@2071 +0;JMP +@20 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@2086 +0;JMP +@5 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@3 +D=M +@14 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@2103 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@2110 +D;JNE +@2227 +0;JMP +@506 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@50 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +A=M-1 +D=!M +M=D+1 +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@2153 +D=A +@95 +0;JMP +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@7287 +D=A +@14 +M=D +@2173 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@2214 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@2616 +0;JMP +@3 +D=M +@14 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2246 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@2253 +D;JNE +@2364 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@50 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@2290 +D=A +@95 +0;JMP +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@7287 +D=A +@14 +M=D +@2310 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@2351 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@2616 +0;JMP +@3 +D=M +@14 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2383 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@2390 +D;JNE +@2507 +0;JMP +@250 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@25 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +A=M-1 +D=!M +M=D+1 +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@2432 +D=A +@95 +0;JMP +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@7287 +D=A +@14 +M=D +@2453 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@2494 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@2616 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@25 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@2543 +D=A +@95 +0;JMP +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@7287 +D=A +@14 +M=D +@2564 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@2605 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@3 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@13 +M=D +@652 +D=A +@14 +M=D +@2648 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@5 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@8643 +D=A +@14 +M=D +@2677 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@3 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +A=M +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +A=M+1 +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +M=D +@2 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +A=A+1 +M=D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@3 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@2827 +D=A +@14 +M=D +@2773 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@3 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@3 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@9357 +D=A +@14 +M=D +@2816 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +A=M-1 +M=!M +@1 +D=A +@13 +M=D +@20889 +D=A +@14 +M=D +@2858 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@3 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@2954 +D=A +@14 +M=D +@2881 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@1 +D=A +@13 +M=D +@20889 +D=A +@14 +M=D +@2920 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@3 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@2954 +D=A +@14 +M=D +@2943 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@4 +D=A +@13 +M=D +@22354 +D=A +@14 +M=D +@3033 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@3 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@2892 +D=A +@14 +M=D +@3163 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +M=D +@3 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@2827 +D=A +@14 +M=D +@3200 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@3 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@3240 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@3247 +D;JNE +@3525 +0;JMP +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@4 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@3 +A=M +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@3286 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +@3293 +D;JNE +@3303 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@0 +AM=M-1 +D=M +@3 +A=M +M=D +@0 +M=M+1 +A=M-1 +M=0 +@1 +D=A +@13 +M=D +@20889 +D=A +@14 +M=D +@3319 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@4 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@4 +D=A +@13 +M=D +@22354 +D=A +@14 +M=D +@3424 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +A=M-1 +M=!M +@1 +D=A +@13 +M=D +@20889 +D=A +@14 +M=D +@3448 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@4 +D=A +@13 +M=D +@22354 +D=A +@14 +M=D +@3518 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@3831 +0;JMP +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@4 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@3 +A=M +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@511 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3579 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +@3586 +D;JNE +@3611 +0;JMP +@511 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@3 +A=M +M=D +@0 +M=M+1 +A=M-1 +M=0 +@1 +D=A +@13 +M=D +@20889 +D=A +@14 +M=D +@3627 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@4 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@4 +D=A +@13 +M=D +@22354 +D=A +@14 +M=D +@3706 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +A=M-1 +M=!M +@1 +D=A +@13 +M=D +@20889 +D=A +@14 +M=D +@3730 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@4 +D=A +@13 +M=D +@22354 +D=A +@14 +M=D +@3826 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@0 +AM=M+1 +A=A-1 +M=0 +@0 +D=A +@13 +M=D +@4508 +D=A +@14 +M=D +@3853 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +D=A +@13 +M=D +@4531 +D=A +@14 +M=D +@3870 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@4539 +D=A +@14 +M=D +@3895 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@4419 +D=A +@14 +M=D +@3919 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@7 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@8643 +D=A +@14 +M=D +@3948 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@3 +M=D +@0 +D=A +@13 +M=D +@20598 +D=A +@14 +M=D +@3965 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@50 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@230 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@229 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=M +@6 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@7 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@4 +D=A +@13 +M=D +@2659 +D=A +@14 +M=D +@4026 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@3 +A=M +M=D +@253 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@222 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@511 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@229 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@13 +M=D +@145 +D=A +@14 +M=D +@4076 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@3 +A=M+1 +M=D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@400 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@3 +D=A +@13 +M=D +@652 +D=A +@14 +M=D +@4111 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@238 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@511 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@240 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@4 +D=A +@13 +M=D +@22354 +D=A +@14 +M=D +@4150 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@22 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@2 +D=A +@13 +M=D +@19350 +D=A +@14 +M=D +@4177 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@8 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@25105 +D=A +@14 +M=D +@4200 +D=A +@95 +0;JMP +@83 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@25659 +D=A +@14 +M=D +@4218 +D=A +@95 +0;JMP +@99 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@25659 +D=A +@14 +M=D +@4236 +D=A +@95 +0;JMP +@111 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@25659 +D=A +@14 +M=D +@4254 +D=A +@95 +0;JMP +@114 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@25659 +D=A +@14 +M=D +@4272 +D=A +@95 +0;JMP +@101 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@25659 +D=A +@14 +M=D +@4290 +D=A +@95 +0;JMP +@58 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@25659 +D=A +@14 +M=D +@4308 +D=A +@95 +0;JMP +@32 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@25659 +D=A +@14 +M=D +@4326 +D=A +@95 +0;JMP +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@25659 +D=A +@14 +M=D +@4344 +D=A +@95 +0;JMP +@1 +D=A +@13 +M=D +@19850 +D=A +@14 +M=D +@4356 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +A=A+1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@3 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@2786 +D=A +@14 +M=D +@4450 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@346 +D=A +@14 +M=D +@4474 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@3 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@9357 +D=A +@14 +M=D +@4497 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@0 +D=A +@13 +M=D +@3930 +D=A +@14 +M=D +@4520 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@16 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@16 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@0 +AM=M+1 +A=A-1 +M=0 +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@3 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +A=M-1 +M=!M +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@4943 +D;JNE +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@4590 +D=A +@6 +0;JMP +@3 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +A=A-1 +M=D&M +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@4682 +D;JNE +@0 +D=A +@13 +M=D +@5924 +D=A +@14 +M=D +@4627 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@3211 +D=A +@14 +M=D +@4652 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@3 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@5191 +D=A +@14 +M=D +@4675 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@4575 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@130 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@4699 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@4706 +D;JNE +@4736 +0;JMP +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@2 +D=A +@13 +M=D +@3044 +D=A +@14 +M=D +@4729 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@4831 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@132 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@4753 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@4760 +D;JNE +@4792 +0;JMP +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@3044 +D=A +@14 +M=D +@4785 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@4831 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@140 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@4809 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@4816 +D;JNE +@4831 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +A=A+1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@4846 +D=A +@6 +0;JMP +@0 +A=M-1 +M=!M +@3 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +A=A-1 +M=D&M +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@4941 +D;JNE +@0 +D=A +@13 +M=D +@5924 +D=A +@14 +M=D +@4886 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@3211 +D=A +@14 +M=D +@4911 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@3 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@5191 +D=A +@14 +M=D +@4934 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@4831 +0;JMP +@4555 +0;JMP +@3 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4959 +D;JNE +@5185 +0;JMP +@10 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@19350 +D=A +@14 +M=D +@4983 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@9 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@25105 +D=A +@14 +M=D +@5006 +D=A +@95 +0;JMP +@71 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@25659 +D=A +@14 +M=D +@5024 +D=A +@95 +0;JMP +@97 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@25659 +D=A +@14 +M=D +@5042 +D=A +@95 +0;JMP +@109 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@25659 +D=A +@14 +M=D +@5060 +D=A +@95 +0;JMP +@101 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@25659 +D=A +@14 +M=D +@5078 +D=A +@95 +0;JMP +@32 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@25659 +D=A +@14 +M=D +@5096 +D=A +@95 +0;JMP +@79 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@25659 +D=A +@14 +M=D +@5114 +D=A +@95 +0;JMP +@118 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@25659 +D=A +@14 +M=D +@5132 +D=A +@95 +0;JMP +@101 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@25659 +D=A +@14 +M=D +@5150 +D=A +@95 +0;JMP +@114 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@25659 +D=A +@14 +M=D +@5168 +D=A +@95 +0;JMP +@1 +D=A +@13 +M=D +@19850 +D=A +@14 +M=D +@5180 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@5 +D=A +D=D-1 +@0 +AM=M+1 +A=A-1 +M=0 +@5193 +D;JGT +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@1126 +D=A +@14 +M=D +@5231 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@5254 +D=A +@22 +0;JMP +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=M +@5 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@5275 +D=A +@6 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +A=A-1 +M=D&M +@0 +AM=M-1 +D=M +@5290 +D;JNE +@5802 +0;JMP +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@3078 +D=A +@14 +M=D +@5337 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@3099 +D=A +@14 +M=D +@5362 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +M=D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@599 +D=A +@14 +M=D +@5388 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +M=D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@620 +D=A +@14 +M=D +@5415 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@4 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@5442 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@5449 +D;JNE +@5771 +0;JMP +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@5469 +D=A +@22 +0;JMP +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@5490 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +A=A+1 +M=D +@3 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@5522 +D;JNE +@5771 +0;JMP +@1 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@10 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@5553 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +@5560 +D;JNE +@5576 +0;JMP +@0 +M=M+1 +A=M-1 +M=1 +@0 +A=M-1 +D=!M +M=D+1 +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@5625 +0;JMP +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@10 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@5608 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +@5615 +D;JNE +@5625 +0;JMP +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@3 +D=M +@6 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=M +@6 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@3133 +D=A +@14 +M=D +@5684 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@3 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@22 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@7 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@19350 +D=A +@14 +M=D +@5740 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@3 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@19981 +D=A +@14 +M=D +@5766 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@1835 +D=A +@14 +M=D +@5797 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@5823 +D=A +@22 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@5833 +D;JNE +@5856 +0;JMP +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@27353 +D=A +@14 +M=D +@5851 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@8643 +D=A +@14 +M=D +@5875 +D=A +@95 +0;JMP +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@3 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@9357 +D=A +@14 +M=D +@5907 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@24576 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@8558 +D=A +@14 +M=D +@5942 +D=A +@95 +0;JMP +@54 +0;JMP +@0 +A=M +M=0 +AD=A+1 +M=0 +@0 +M=D+1 +@0 +M=M+1 +A=M-1 +M=0 +@1 +D=A +@13 +M=D +@19610 +D=A +@14 +M=D +@5967 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@5987 +D=A +@6 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@6002 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@6070 +D;JNE +@0 +D=A +@13 +M=D +@5924 +D=A +@14 +M=D +@6027 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@6048 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +@6055 +D;JNE +@6068 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@5972 +0;JMP +@0 +D=A +@13 +M=D +@27042 +D=A +@14 +M=D +@6082 +D=A +@95 +0;JMP +@1 +D=A +@13 +M=D +@19610 +D=A +@14 +M=D +@6094 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@19610 +D=A +@14 +M=D +@6118 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@5 +D=A +D=D-1 +@0 +AM=M+1 +A=A-1 +M=0 +@6134 +D;JGT +@80 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@25105 +D=A +@14 +M=D +@6159 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@19850 +D=A +@14 +M=D +@6186 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +D=A +@13 +M=D +@27034 +D=A +@14 +M=D +@6203 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@0 +D=A +@13 +M=D +@27042 +D=A +@14 +M=D +@6221 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +M=D +@1 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +A=M-1 +M=!M +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@6404 +D;JNE +@0 +D=A +@13 +M=D +@5944 +D=A +@14 +M=D +@6260 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@6284 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@1 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@6312 +D;JNE +@6402 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@6331 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@6338 +D;JNE +@6366 +0;JMP +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@25801 +D=A +@14 +M=D +@6359 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@6402 +0;JMP +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@25659 +D=A +@14 +M=D +@6394 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +M=D +@6228 +0;JMP +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@0 +A=M +M=0 +AD=A+1 +M=0 +@0 +M=D+1 +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@6132 +D=A +@14 +M=D +@6441 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@25889 +D=A +@14 +M=D +@6466 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@25252 +D=A +@14 +M=D +@6491 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@0 +AM=M+1 +A=A-1 +M=0 +@16 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@5808 +D=A +@14 +M=D +@6527 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@17 +M=D +@16 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@5808 +D=A +@14 +M=D +@6550 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@18 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@18 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@15 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6613 +D=A +@38 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@6768 +D;JNE +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@18 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@18 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@18 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@6596 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@6789 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +@6796 +D;JNE +@6813 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +A=M-1 +D=!M +M=D+1 +@0 +AM=M-1 +D=M +@2 +A=M +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@5 +D=A +D=D-1 +@0 +AM=M+1 +A=A-1 +M=0 +@6824 +D;JGT +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@6846 +D=A +@38 +0;JMP +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@6861 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D&M +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@6881 +D=A +@22 +0;JMP +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@6896 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D&M +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@6774 +D=A +@14 +M=D +@6934 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@2 +A=M +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@6774 +D=A +@14 +M=D +@6959 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@2 +A=M+1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@6983 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +@6990 +D;JNE +@7029 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@2 +A=M +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@2 +A=M+1 +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@7048 +D=A +@38 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@7245 +D;JNE +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@18 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D&M +@0 +M=M+1 +A=M-1 +M=0 +@7108 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +@7115 +D;JNE +@7192 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@18 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@2 +A=M +M=D +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +M=D +@7029 +0;JMP +@1 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@7261 +D;JNE +@7278 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +A=M-1 +D=!M +M=D+1 +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@4 +D=A +D=D-1 +@0 +AM=M+1 +A=A-1 +M=0 +@7289 +D;JGT +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@7311 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@7318 +D;JNE +@7341 +0;JMP +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@27353 +D=A +@14 +M=D +@7336 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@7356 +D=A +@38 +0;JMP +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@7371 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D&M +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@7391 +D=A +@22 +0;JMP +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@7406 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D&M +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@17 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@6774 +D=A +@14 +M=D +@7457 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@6774 +D=A +@14 +M=D +@7498 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@2 +A=M +M=D +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +A=M-1 +M=!M +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@7841 +D;JNE +@32767 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@17 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@17 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@7599 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +M=D +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@7626 +D;JNE +@7839 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@17 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@17 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@17 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@17 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@7790 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +M=D +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@7817 +D;JNE +@7839 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@7504 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +A=M-1 +D=!M +M=D+1 +@7860 +D=A +@22 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@8039 +D;JNE +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@17 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@7909 +D=A +@22 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@7919 +D;JNE +@8015 +0;JMP +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@18 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@17 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@2 +A=M +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@7841 +0;JMP +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@8054 +D;JNE +@8071 +0;JMP +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +A=M-1 +D=!M +M=D+1 +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@4 +D=A +D=D-1 +@0 +AM=M+1 +A=A-1 +M=0 +@8082 +D;JGT +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@8104 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +@8111 +D;JNE +@8134 +0;JMP +@4 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@27353 +D=A +@14 +M=D +@8129 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@7 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +A=M-1 +D=!M +M=D+1 +@8165 +D=A +@22 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@8348 +D;JNE +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@18 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@8249 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@8275 +D=A +@22 +0;JMP +@0 +A=M-1 +M=!M +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@8294 +D=A +@38 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +A=A-1 +M=D&M +@0 +AM=M-1 +D=M +@8309 +D;JNE +@8324 +0;JMP +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@8146 +0;JMP +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@8377 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +@8384 +D;JNE +@8397 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@2 +A=M+1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@8424 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +@8431 +D;JNE +@8444 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@2 +A=M+1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@0 +AM=M-1 +D=M +@19 +M=D +@2048 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@19 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@14334 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@2049 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@19 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@2050 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@19 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@19 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@0 +AM=M+1 +A=A-1 +M=0 +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@8662 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +@8669 +D;JNE +@8692 +0;JMP +@5 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@27353 +D=A +@14 +M=D +@8687 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@2048 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@0 +M=M+1 +A=M-1 +M=0 +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@8743 +D=A +@38 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@8787 +D;JNE +@0 +M=M+1 +A=M-1 +M=1 +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@8704 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@16379 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@8816 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +@8823 +D;JNE +@8846 +0;JMP +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@27353 +D=A +@14 +M=D +@8841 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@8896 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +@8903 +D;JNE +@9295 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +M=M+1 +A=M-1 +M=0 +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@0 +M=M+1 +A=M-1 +M=1 +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@9056 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@9063 +D;JNE +@9147 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@4 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@9227 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +M=M+1 +A=M-1 +M=1 +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@0 +M=M+1 +A=M-1 +M=1 +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@0 +M=M+1 +A=M-1 +M=0 +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +M=M+1 +A=M-1 +M=0 +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@54 +0;JMP +@0 +A=M +M=0 +AD=A+1 +M=0 +@0 +M=D+1 +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@0 +M=M+1 +A=M-1 +M=1 +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@9458 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@9465 +D;JNE +@9556 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +M=M+1 +A=M-1 +M=1 +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@9848 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +M=M+1 +A=M-1 +M=1 +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +M=M+1 +A=M-1 +M=0 +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@0 +M=M+1 +A=M-1 +M=1 +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@9717 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@9724 +D;JNE +@9782 +0;JMP +@0 +M=M+1 +A=M-1 +M=1 +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@9848 +0;JMP +@0 +M=M+1 +A=M-1 +M=1 +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +M=M+1 +A=M-1 +M=1 +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@16384 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@20 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@21 +M=D +@32 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@22 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +AM=M-1 +D=M +@23 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@25105 +D=A +@14 +M=D +@9915 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@24 +M=D +@0 +D=A +@13 +M=D +@9960 +D=A +@14 +M=D +@9932 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +D=A +@13 +M=D +@18456 +D=A +@14 +M=D +@9949 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@127 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@5808 +D=A +@14 +M=D +@9978 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@25 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@10061 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@32 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@10128 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@33 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@10211 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@34 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@54 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@54 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@20 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@10284 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@35 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@18 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@18 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@18 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@18 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@18 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@18 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@10367 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@36 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@10454 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@37 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@35 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@49 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@10535 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@38 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@54 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@54 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@10620 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@39 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@10693 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@40 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@10778 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@41 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@10863 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@42 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@10940 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@43 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@11017 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@44 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@11090 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@45 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@11159 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@46 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@11230 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@47 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@32 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@11309 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@11394 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@49 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@14 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@15 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@11479 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@50 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@11564 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@28 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@11649 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@52 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@16 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@28 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@26 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@25 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@60 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@11734 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@53 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@31 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@11819 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@54 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@28 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@31 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@11904 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@55 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@49 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@11989 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@56 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@12074 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@57 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@62 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@14 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@12159 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@58 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@12234 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@59 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@12311 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@60 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@12392 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@61 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@12463 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@62 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@12544 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@64 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@59 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@59 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@59 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@12629 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@12712 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@65 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@12797 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@66 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@31 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@31 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@31 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@12882 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@67 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@28 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@54 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@35 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@35 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@54 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@28 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@12967 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@68 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@15 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@15 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@13052 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@69 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@35 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@11 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@15 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@11 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@35 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@13137 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@70 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@35 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@11 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@15 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@11 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@13222 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@71 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@28 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@54 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@35 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@59 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@54 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@44 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@13307 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@72 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@13392 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@73 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@13477 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@74 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@60 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@14 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@13562 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@75 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@15 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@13647 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@76 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@35 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@13732 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@77 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@33 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@13817 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@78 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@55 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@55 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@59 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@59 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@13902 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@79 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@13987 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@80 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@31 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@31 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@14072 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@81 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@59 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@14159 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@82 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@31 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@31 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@14244 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@83 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@28 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@14329 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@84 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@45 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@14414 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@85 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@14499 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@86 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@14584 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@87 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@18 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@14669 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@88 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@14754 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@89 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@14839 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@90 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@49 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@35 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@14924 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@91 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@15009 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@92 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=1 +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@32 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@15088 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@93 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@15173 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@94 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@8 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@28 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@54 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@15246 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@95 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@15315 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@96 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@15388 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@97 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@14 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@54 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@15467 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@98 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@15 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@15552 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@99 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@15631 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@100 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@60 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@54 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@15716 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@101 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@15795 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@102 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@28 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@54 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@38 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@15 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@15 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@15880 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@103 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@62 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@15963 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@104 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@55 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@16048 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@105 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@14 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@16131 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@106 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@56 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@16216 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@107 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@15 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@15 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@16301 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@108 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@14 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@16386 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@109 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@29 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@43 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@43 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@43 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@43 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@16465 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@110 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@29 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@16544 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@111 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@16623 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@112 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@31 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@16704 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@113 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@62 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@16785 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@114 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@29 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@55 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@7 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@16864 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@115 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@16943 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@116 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@4 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@15 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@54 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@28 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@17028 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@117 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@54 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@17107 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@118 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@17186 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@119 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@18 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@17265 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@120 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@17344 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@121 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@62 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@15 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@17425 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@122 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@17504 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@123 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@56 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@7 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@56 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@17589 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@124 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@17674 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@125 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@7 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@56 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@7 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@17759 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@126 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@38 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@45 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@25 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@17832 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@0 +AM=M+1 +A=A-1 +M=0 +@11 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@5808 +D=A +@14 +M=D +@17865 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@25 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@0 +M=M+1 +A=M-1 +M=0 +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@0 +M=M+1 +A=M-1 +M=1 +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@2 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@2 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@4 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@2 +D=M +@5 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@5 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@2 +D=M +@6 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@2 +D=M +@7 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@7 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@2 +D=M +@8 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@8 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@2 +D=M +@9 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@9 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@2 +D=M +@10 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@10 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@2 +D=M +@11 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@4 +D=A +D=D-1 +@0 +AM=M+1 +A=A-1 +M=0 +@18458 +D;JGT +@127 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@5808 +D=A +@14 +M=D +@18483 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@26 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@127 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@18517 +D=A +@38 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@18859 +D;JNE +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@25 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@11 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@5808 +D=A +@14 +M=D +@18580 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@26 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +M=D +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@11 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@18665 +D=A +@38 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@18795 +D;JNE +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@256 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@18745 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +M=D +@18646 +0;JMP +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@18811 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@18818 +D;JNE +@18833 +0;JMP +@32 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +M=D +@18857 +0;JMP +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +M=D +@18499 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@0 +AM=M+1 +A=A-1 +M=0 +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@32 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@18886 +D=A +@38 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@126 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@18903 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@0 +AM=M-1 +D=M +@18915 +D;JNE +@18925 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@0 +AM=M-1 +D=M +@2 +A=M +M=D +@21 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@18938 +D;JNE +@18976 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@25 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@19012 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@26 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@4 +D=A +D=D-1 +@0 +AM=M+1 +A=A-1 +M=0 +@19023 +D;JGT +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@18865 +D=A +@14 +M=D +@19049 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +M=D +@22 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@11 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@19085 +D=A +@38 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@19344 +D;JNE +@21 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@19106 +D;JNE +@19161 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@20 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@256 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +A=M-1 +D=!M +M=D+1 +@0 +AM=M-1 +D=M +A=A-1 +M=D&M +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +M=D +@19210 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@20 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@255 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D&M +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@20 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@32 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@19068 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@19365 +D=A +@38 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@22 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@19382 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@19402 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@19424 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@0 +AM=M-1 +D=M +@19436 +D;JNE +@19459 +0;JMP +@20 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@27353 +D=A +@14 +M=D +@19454 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@7287 +D=A +@14 +M=D +@19484 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@23 +M=D +@32 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@352 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@19520 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@23 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@22 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@23 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@19572 +D=A +@95 +0;JMP +@19576 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@21 +M=D +@32 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@19021 +D=A +@14 +M=D +@19599 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +D=A +@13 +M=D +@27034 +D=A +@14 +M=D +@19629 +D=A +@95 +0;JMP +@19633 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@19640 +D;JNE +@19659 +0;JMP +@0 +D=A +@13 +M=D +@20040 +D=A +@14 +M=D +@19652 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@19844 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +D=A +@13 +M=D +@27042 +D=A +@14 +M=D +@19678 +D=A +@95 +0;JMP +@19682 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@19689 +D;JNE +@19708 +0;JMP +@0 +D=A +@13 +M=D +@20134 +D=A +@14 +M=D +@19701 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@19844 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@19021 +D=A +@14 +M=D +@19727 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@21 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@19748 +D;JNE +@19788 +0;JMP +@23 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@23 +M=D +@22 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@22 +M=D +@23 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@32 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@19804 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@19811 +D;JNE +@19830 +0;JMP +@0 +D=A +@13 +M=D +@20040 +D=A +@14 +M=D +@19823 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@19844 +0;JMP +@21 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@21 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@0 +A=M +M=0 +AD=A+1 +M=0 +@0 +M=D+1 +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@25339 +D=A +@14 +M=D +@19876 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@19900 +D=A +@38 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@19975 +D;JNE +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@25361 +D=A +@14 +M=D +@19934 +D=A +@95 +0;JMP +@1 +D=A +@13 +M=D +@19610 +D=A +@14 +M=D +@19946 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@19882 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@24 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@26291 +D=A +@14 +M=D +@20006 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@24 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@19850 +D=A +@14 +M=D +@20029 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@22 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@352 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@23 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@22 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +AM=M-1 +D=M +@23 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@21 +M=D +@22 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@8128 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@20110 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@20117 +D;JNE +@20128 +0;JMP +@32 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@22 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@21 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@20147 +D;JNE +@20288 +0;JMP +@23 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@20161 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +@20168 +D;JNE +@20210 +0;JMP +@23 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@23 +M=D +@22 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@22 +M=D +@20277 +0;JMP +@31 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@23 +M=D +@22 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@32 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@20237 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@20244 +D;JNE +@20255 +0;JMP +@8128 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@22 +M=D +@22 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@321 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@22 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +AM=M-1 +D=M +@21 +M=D +@20300 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@21 +M=D +@32 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@19021 +D=A +@14 +M=D +@20318 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@0 +AM=M+1 +A=A-1 +M=0 +@16384 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@27 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@28 +M=D +@17 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@5808 +D=A +@14 +M=D +@20374 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@29 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@29 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@16 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@20437 +D=A +@38 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@20592 +D;JNE +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@29 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@29 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@29 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@20420 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@0 +AM=M+1 +A=A-1 +M=0 +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@8192 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@20619 +D=A +@38 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@20695 +D;JNE +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +M=M+1 +A=M-1 +M=0 +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@20602 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@28 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@20714 +D;JNE +@20798 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@20883 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +A=A-1 +M=D&M +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@28 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@3 +D=A +D=D-1 +@0 +AM=M+1 +A=A-1 +M=0 +@20909 +D;JGT +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@20931 +D=A +@38 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@511 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@20948 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@20968 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@255 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@20990 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@0 +AM=M-1 +D=M +@21002 +D;JNE +@21025 +0;JMP +@7 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@27353 +D=A +@14 +M=D +@21020 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@16 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@7287 +D=A +@14 +M=D +@21050 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@16 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@21088 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@32 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@21124 +D=A +@95 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@29 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@20701 +D=A +@14 +M=D +@21193 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@21219 +D;JNE +@21252 +0;JMP +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@20907 +D=A +@14 +M=D +@21245 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@21283 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@20907 +D=A +@14 +M=D +@21278 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@11 +D=A +D=D-1 +@0 +AM=M+1 +A=A-1 +M=0 +@21291 +D;JGT +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@21313 +D=A +@38 +0;JMP +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@511 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@21331 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@21351 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@2 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@255 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@21375 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@0 +AM=M-1 +D=M +@21387 +D;JNE +@21410 +0;JMP +@8 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@27353 +D=A +@14 +M=D +@21405 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@1 +D=A +@13 +M=D +@6774 +D=A +@14 +M=D +@21442 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +M=D +@2 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@1 +D=A +@13 +M=D +@6774 +D=A +@14 +M=D +@21483 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +M=D +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@21511 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@1 +D=M +@6 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@21551 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D&M +@1 +D=M +@6 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +A=M-1 +M=!M +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@21587 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D&M +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@0 +AM=M-1 +D=M +@21604 +D;JNE +@21698 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@2 +A=M +M=D +@1 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@2 +A=M+1 +A=A+1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@2 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@2 +A=M+1 +M=D +@1 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@2 +A=M+1 +A=A+1 +A=A+1 +M=D +@1 +D=M +@6 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@21714 +D;JNE +@21844 +0;JMP +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +M=D +@1 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@2 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@8 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@21830 +D=A +@22 +0;JMP +@1 +D=M +@7 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@21922 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@8 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@21910 +D=A +@22 +0;JMP +@1 +D=M +@7 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@21948 +D=A +@95 +0;JMP +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@21998 +D=A +@95 +0;JMP +@1 +D=M +@9 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@22050 +D=A +@95 +0;JMP +@1 +D=M +@10 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@6 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@13 +M=D +@21204 +D=A +@14 +M=D +@22097 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@8 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@22122 +D=A +@38 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@22348 +D;JNE +@1 +D=M +@5 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@22147 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +@22154 +D;JNE +@22189 +0;JMP +@1 +D=M +@5 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@9 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@22284 +0;JMP +@1 +D=M +@5 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@10 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@1 +D=M +@7 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@22238 +D;JNE +@22262 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@22284 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@6 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@13 +M=D +@21204 +D=A +@14 +M=D +@22341 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@22102 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@9 +D=A +D=D-1 +@0 +AM=M+1 +A=A-1 +M=0 +@22356 +D;JGT +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@22382 +D=A +@22 +0;JMP +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@22402 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@22422 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@511 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@22445 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@22465 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@2 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@255 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@22489 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@0 +AM=M-1 +D=M +@22501 +D;JNE +@22524 +0;JMP +@9 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@27353 +D=A +@14 +M=D +@22519 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@16 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@7287 +D=A +@14 +M=D +@22549 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@16 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@22591 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@1 +D=M +@7 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@16 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@7287 +D=A +@14 +M=D +@22634 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@16 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@22678 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@1 +D=M +@8 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@1 +D=M +@7 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@29 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@1 +D=M +@8 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@29 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@32 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@22835 +D=A +@95 +0;JMP +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@1 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@22905 +D=A +@22 +0;JMP +@0 +A=M-1 +M=!M +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@23245 +D;JNE +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@22958 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@22965 +D;JNE +@23014 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@5 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@6 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D&M +@2 +D=A +@13 +M=D +@20701 +D=A +@14 +M=D +@23007 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@23184 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@6 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@20701 +D=A +@14 +M=D +@23042 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@23087 +D=A +@38 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@23151 +D;JNE +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +A=M-1 +D=!M +M=D+1 +@2 +D=A +@13 +M=D +@20701 +D=A +@14 +M=D +@23122 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@23069 +0;JMP +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@5 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@20701 +D=A +@14 +M=D +@23179 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@2 +A=M+1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@32 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@22885 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@11 +D=A +D=D-1 +@0 +AM=M+1 +A=A-1 +M=0 +@23253 +D;JGT +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@8406 +D=A +@14 +M=D +@23287 +D=A +@95 +0;JMP +@1 +D=M +@7 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@8359 +D=A +@14 +M=D +@23326 +D=A +@95 +0;JMP +@1 +D=M +@8 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +A=M-1 +D=!M +M=D+1 +@23357 +D=A +@22 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@256 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@23374 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D&M +@1 +D=M +@7 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@512 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@23398 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D&M +@1 +D=M +@8 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +A=M-1 +D=!M +M=D+1 +@23424 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D&M +@0 +AM=M-1 +D=M +@23436 +D;JNE +@24145 +0;JMP +@1 +D=M +@7 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@2 +D=A +@13 +M=D +@8359 +D=A +@14 +M=D +@23461 +D=A +@95 +0;JMP +@1 +D=M +@7 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@1 +D=M +@8 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@511 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@8406 +D=A +@14 +M=D +@23500 +D=A +@95 +0;JMP +@1 +D=M +@8 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@1 +D=M +@7 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@16 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@7287 +D=A +@14 +M=D +@23539 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@1 +D=M +@7 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@16 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@23579 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@1 +D=M +@9 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@1 +D=M +@8 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@16 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@7287 +D=A +@14 +M=D +@23623 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +M=D +@1 +D=M +@8 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@16 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@23665 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@1 +D=M +@10 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@1 +D=M +@9 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@29 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@1 +D=M +@10 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@29 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@32 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@23820 +D=A +@95 +0;JMP +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@6 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +M=D +@1 +D=M +@6 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@23915 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@23922 +D;JNE +@23971 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@5 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D&M +@2 +D=A +@13 +M=D +@20701 +D=A +@14 +M=D +@23964 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@24145 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@5 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@20701 +D=A +@14 +M=D +@23999 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@24046 +D=A +@38 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@24110 +D;JNE +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +A=M-1 +D=!M +M=D+1 +@2 +D=A +@13 +M=D +@20701 +D=A +@14 +M=D +@24081 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@24026 +0;JMP +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@20701 +D=A +@14 +M=D +@24140 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@3 +D=A +@13 +M=D +@23251 +D=A +@14 +M=D +@24224 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@3 +D=A +@13 +M=D +@23251 +D=A +@14 +M=D +@24302 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@3 +D=A +@13 +M=D +@23251 +D=A +@14 +M=D +@24381 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@3 +D=A +@13 +M=D +@23251 +D=A +@14 +M=D +@24460 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@3 +D=A +D=D-1 +@0 +AM=M+1 +A=A-1 +M=0 +@24473 +D;JGT +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@24495 +D=A +@38 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@511 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24512 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@24532 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@255 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24554 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@0 +AM=M-1 +D=M +@24566 +D;JNE +@24589 +0;JMP +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@27353 +D=A +@14 +M=D +@24584 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +M=M+1 +A=M-1 +M=0 +@24617 +D=A +@38 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@511 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24647 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +M=M+1 +A=M-1 +M=0 +@24680 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@255 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24715 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@0 +AM=M-1 +D=M +@24727 +D;JNE +@24750 +0;JMP +@13 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@27353 +D=A +@14 +M=D +@24745 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@4 +D=A +@13 +M=D +@24151 +D=A +@14 +M=D +@24828 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@24851 +D=A +@22 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@25099 +D;JNE +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@24875 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +@24882 +D;JNE +@24940 +0;JMP +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@24915 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +M=D +@25030 +0;JMP +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@24985 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@5 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@4 +D=A +@13 +M=D +@24151 +D=A +@14 +M=D +@25092 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@24833 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@8643 +D=A +@14 +M=D +@25123 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@3 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@25143 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +@25150 +D;JNE +@25173 +0;JMP +@14 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@27353 +D=A +@14 +M=D +@25168 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@25188 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +@25195 +D;JNE +@25220 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@5808 +D=A +@14 +M=D +@25214 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@3 +A=M+1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +A=M +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +M=D +@3 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@25279 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +@25286 +D;JNE +@25310 +0;JMP +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@5877 +D=A +@14 +M=D +@25305 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@3 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@9357 +D=A +@14 +M=D +@25328 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@25388 +D=A +@38 +0;JMP +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@25407 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@25431 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@0 +AM=M-1 +D=M +@25443 +D;JNE +@25466 +0;JMP +@15 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@27353 +D=A +@14 +M=D +@25461 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@25526 +D=A +@38 +0;JMP +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@25545 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@25569 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@0 +AM=M-1 +D=M +@25581 +D;JNE +@25604 +0;JMP +@16 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@27353 +D=A +@14 +M=D +@25599 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@25690 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@25697 +D;JNE +@25720 +0;JMP +@17 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@27353 +D=A +@14 +M=D +@25715 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +M=D +@3 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@25829 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@25836 +D;JNE +@25859 +0;JMP +@18 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@27353 +D=A +@14 +M=D +@25854 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@5 +D=A +D=D-1 +@0 +AM=M+1 +A=A-1 +M=0 +@25891 +D;JGT +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@25926 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@25933 +D;JNE +@25939 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@45 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@25992 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@25999 +D;JNE +@26025 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@26044 +D=A +@38 +0;JMP +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D&M +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@26249 +D;JNE +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@26131 +D=A +@38 +0;JMP +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@9 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@26149 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +M=D +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@26181 +D;JNE +@26247 +0;JMP +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@10 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@26206 +D=A +@95 +0;JMP +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@26025 +0;JMP +@1 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@26265 +D;JNE +@26282 +0;JMP +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +A=M-1 +D=!M +M=D+1 +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@4 +D=A +D=D-1 +@0 +AM=M+1 +A=A-1 +M=0 +@26293 +D;JGT +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@26327 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@26334 +D;JNE +@26357 +0;JMP +@19 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@27353 +D=A +@14 +M=D +@26352 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@5808 +D=A +@14 +M=D +@26375 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@26397 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +@26404 +D;JNE +@26436 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +A=M-1 +D=!M +M=D+1 +@0 +AM=M-1 +D=M +@2 +A=M+1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@26464 +D=A +@22 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@26630 +D;JNE +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@10 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@7287 +D=A +@14 +M=D +@26497 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@10 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@26561 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@2 +A=M+1 +M=D +@26449 +0;JMP +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@26646 +D;JNE +@26716 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@45 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@26734 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +@26741 +D;JNE +@26764 +0;JMP +@19 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@27353 +D=A +@14 +M=D +@26759 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@26779 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@26786 +D;JNE +@26843 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +M=D +@27003 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@26873 +D=A +@38 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@27003 +D;JNE +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +M=D +@26854 +0;JMP +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@5877 +D=A +@14 +M=D +@27023 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@128 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@129 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@34 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@0 +D=A +@13 +M=D +@8453 +D=A +@14 +M=D +@27070 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +D=A +@13 +M=D +@6505 +D=A +@14 +M=D +@27087 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +D=A +@13 +M=D +@20329 +D=A +@14 +M=D +@27104 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +D=A +@13 +M=D +@9854 +D=A +@14 +M=D +@27121 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +D=A +@13 +M=D +@5918 +D=A +@14 +M=D +@27138 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +D=A +@13 +M=D +@3837 +D=A +@14 +M=D +@27155 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +D=A +@13 +M=D +@27177 +D=A +@14 +M=D +@27172 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +A=M-1 +M=!M +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@27194 +D;JNE +@27177 +0;JMP +@0 +AM=M+1 +A=A-1 +M=0 +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@27213 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +@27220 +D;JNE +@27241 +0;JMP +@0 +M=M+1 +A=M-1 +M=1 +@1 +D=A +@13 +M=D +@27353 +D=A +@14 +M=D +@27236 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@27256 +D=A +@22 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@27347 +D;JNE +@50 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@27291 +D=A +@22 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@27323 +D;JNE +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@27276 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@2 +A=M +M=D +@27241 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@25105 +D=A +@14 +M=D +@27371 +D=A +@95 +0;JMP +@69 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@25659 +D=A +@14 +M=D +@27389 +D=A +@95 +0;JMP +@82 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@25659 +D=A +@14 +M=D +@27407 +D=A +@95 +0;JMP +@82 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@25659 +D=A +@14 +M=D +@27425 +D=A +@95 +0;JMP +@1 +D=A +@13 +M=D +@19850 +D=A +@14 +M=D +@27437 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@19981 +D=A +@14 +M=D +@27461 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +D=A +@13 +M=D +@27177 +D=A +@14 +M=D +@27478 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D diff --git a/projects/06/pong/PongL.asm b/projects/06/pong/PongL.asm new file mode 100644 index 0000000..17c1044 --- /dev/null +++ b/projects/06/pong/PongL.asm @@ -0,0 +1,27490 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/06/pong/PongL.asm + +// Symbol-less version of the Pong.asm program. + +@256 +D=A +@0 +M=D +@133 +0;JMP +@15 +M=D +@0 +AM=M-1 +D=M +A=A-1 +D=M-D +M=0 +@19 +D;JNE +@0 +A=M-1 +M=-1 +@15 +A=M +0;JMP +@15 +M=D +@0 +AM=M-1 +D=M +A=A-1 +D=M-D +M=0 +@35 +D;JLE +@0 +A=M-1 +M=-1 +@15 +A=M +0;JMP +@15 +M=D +@0 +AM=M-1 +D=M +A=A-1 +D=M-D +M=0 +@51 +D;JGE +@0 +A=M-1 +M=-1 +@15 +A=M +0;JMP +@5 +D=A +@1 +A=M-D +D=M +@13 +M=D +@0 +AM=M-1 +D=M +@2 +A=M +M=D +D=A +@0 +M=D+1 +@1 +D=M +@14 +AM=D-1 +D=M +@4 +M=D +@14 +AM=M-1 +D=M +@3 +M=D +@14 +AM=M-1 +D=M +@2 +M=D +@14 +AM=M-1 +D=M +@1 +M=D +@13 +A=M +0;JMP +@0 +A=M +M=D +@1 +D=M +@0 +AM=M+1 +M=D +@2 +D=M +@0 +AM=M+1 +M=D +@3 +D=M +@0 +AM=M+1 +M=D +@4 +D=M +@0 +AM=M+1 +M=D +@4 +D=A +@13 +D=D+M +@0 +D=M-D +@2 +M=D +@0 +MD=M+1 +@1 +M=D +@14 +A=M +0;JMP +@0 +D=A +@13 +M=D +@27058 +D=A +@14 +M=D +@145 +D=A +@95 +0;JMP +@15 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@8643 +D=A +@14 +M=D +@163 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@3 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +A=M +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +A=M+1 +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=M +@10 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@2 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@3 +D=M +@11 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@2 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=M +@12 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@2 +D=M +@5 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@3 +D=M +@13 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@0 +M=M+1 +A=M-1 +M=0 +@3 +D=M +@14 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@3 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@387 +D=A +@14 +M=D +@333 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@3 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@3 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@9357 +D=A +@14 +M=D +@376 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +A=M-1 +M=!M +@1 +D=A +@13 +M=D +@20889 +D=A +@14 +M=D +@418 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@3 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@514 +D=A +@14 +M=D +@441 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@1 +D=A +@13 +M=D +@20889 +D=A +@14 +M=D +@480 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@3 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@514 +D=A +@14 +M=D +@503 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@5 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@5 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@4 +D=A +@13 +M=D +@22354 +D=A +@14 +M=D +@588 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@5 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@54 +0;JMP +@3 +D=A +D=D-1 +@0 +AM=M+1 +A=A-1 +M=0 +@654 +D;JGT +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +A=A+1 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@6774 +D=A +@14 +M=D +@747 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@3 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@6774 +D=A +@14 +M=D +@774 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@798 +D=A +@38 +0;JMP +@3 +D=M +@7 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@3 +D=M +@7 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@826 +D;JNE +@930 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@886 +D=A +@38 +0;JMP +@3 +D=M +@8 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@916 +D=A +@38 +0;JMP +@3 +D=M +@9 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@991 +0;JMP +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@948 +D=A +@38 +0;JMP +@3 +D=M +@8 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@979 +D=A +@38 +0;JMP +@3 +D=M +@9 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@1016 +D=A +@95 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@1062 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@1109 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@3 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@452 +D=A +@14 +M=D +@1156 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@3 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@1178 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +@1185 +D;JNE +@1219 +0;JMP +@3 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=M +@5 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@1401 +0;JMP +@3 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=M +@6 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@3 +D=M +@9 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1267 +D;JNE +@1335 +0;JMP +@3 +D=M +@7 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1283 +D;JNE +@1309 +0;JMP +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@4 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@3 +A=M +M=D +@1333 +0;JMP +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@4 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@3 +A=M+1 +M=D +@1401 +0;JMP +@3 +D=M +@7 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1351 +D;JNE +@1377 +0;JMP +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@4 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@3 +A=M +M=D +@1401 +0;JMP +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@4 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@3 +A=M+1 +M=D +@3 +D=M +@8 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1417 +D;JNE +@1485 +0;JMP +@3 +D=M +@7 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1433 +D;JNE +@1459 +0;JMP +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@4 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@3 +A=M+1 +M=D +@1483 +0;JMP +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@4 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@3 +A=M +M=D +@1551 +0;JMP +@3 +D=M +@7 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1501 +D;JNE +@1527 +0;JMP +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@4 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@3 +A=M+1 +M=D +@1551 +0;JMP +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@4 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@3 +A=M +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=M +@10 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1571 +D=A +@22 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@1581 +D;JNE +@1612 +0;JMP +@0 +M=M+1 +A=M-1 +M=1 +@3 +D=M +@14 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@3 +D=M +@10 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +A=M +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=M +@11 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1632 +D=A +@38 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@1642 +D;JNE +@1675 +0;JMP +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=M +@14 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@3 +D=M +@11 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +A=M +M=D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=M +@12 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1695 +D=A +@22 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@1705 +D;JNE +@1738 +0;JMP +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=M +@14 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@3 +D=M +@12 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +A=M+1 +M=D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=M +@13 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1758 +D=A +@38 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@1768 +D;JNE +@1801 +0;JMP +@4 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=M +@14 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@3 +D=M +@13 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +A=M+1 +M=D +@3 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@387 +D=A +@14 +M=D +@1819 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@3 +D=M +@14 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@5 +D=A +D=D-1 +@0 +AM=M+1 +A=A-1 +M=0 +@1837 +D;JGT +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@10 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@7287 +D=A +@14 +M=D +@1882 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +M=D +@3 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@10 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@7287 +D=A +@14 +M=D +@1916 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@1939 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@1946 +D;JNE +@1963 +0;JMP +@10 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@2086 +0;JMP +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@1979 +D=A +@38 +0;JMP +@0 +A=M-1 +M=!M +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@1997 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D&M +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@2018 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +A=M-1 +D=!M +M=D+1 +@2042 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D&M +@0 +AM=M-1 +D=M +@2054 +D;JNE +@2071 +0;JMP +@20 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@2086 +0;JMP +@5 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@3 +D=M +@14 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@2103 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@2110 +D;JNE +@2227 +0;JMP +@506 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@50 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +A=M-1 +D=!M +M=D+1 +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@2153 +D=A +@95 +0;JMP +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@7287 +D=A +@14 +M=D +@2173 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@2214 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@2616 +0;JMP +@3 +D=M +@14 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2246 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@2253 +D;JNE +@2364 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@50 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@2290 +D=A +@95 +0;JMP +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@7287 +D=A +@14 +M=D +@2310 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@2351 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@2616 +0;JMP +@3 +D=M +@14 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2383 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@2390 +D;JNE +@2507 +0;JMP +@250 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@25 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +A=M-1 +D=!M +M=D+1 +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@2432 +D=A +@95 +0;JMP +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@7287 +D=A +@14 +M=D +@2453 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@2494 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@2616 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@25 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@2543 +D=A +@95 +0;JMP +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@7287 +D=A +@14 +M=D +@2564 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@2605 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@3 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@13 +M=D +@652 +D=A +@14 +M=D +@2648 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@5 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@8643 +D=A +@14 +M=D +@2677 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@3 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +A=M +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +A=M+1 +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +M=D +@2 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +A=A+1 +M=D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@3 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@2827 +D=A +@14 +M=D +@2773 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@3 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@3 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@9357 +D=A +@14 +M=D +@2816 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +A=M-1 +M=!M +@1 +D=A +@13 +M=D +@20889 +D=A +@14 +M=D +@2858 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@3 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@2954 +D=A +@14 +M=D +@2881 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@1 +D=A +@13 +M=D +@20889 +D=A +@14 +M=D +@2920 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@3 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@2954 +D=A +@14 +M=D +@2943 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@4 +D=A +@13 +M=D +@22354 +D=A +@14 +M=D +@3033 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@3 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@2892 +D=A +@14 +M=D +@3163 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +M=D +@3 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@2827 +D=A +@14 +M=D +@3200 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@3 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@3240 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@3247 +D;JNE +@3525 +0;JMP +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@4 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@3 +A=M +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@3286 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +@3293 +D;JNE +@3303 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@0 +AM=M-1 +D=M +@3 +A=M +M=D +@0 +M=M+1 +A=M-1 +M=0 +@1 +D=A +@13 +M=D +@20889 +D=A +@14 +M=D +@3319 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@4 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@4 +D=A +@13 +M=D +@22354 +D=A +@14 +M=D +@3424 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +A=M-1 +M=!M +@1 +D=A +@13 +M=D +@20889 +D=A +@14 +M=D +@3448 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@4 +D=A +@13 +M=D +@22354 +D=A +@14 +M=D +@3518 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@3831 +0;JMP +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@4 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@3 +A=M +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@511 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3579 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +@3586 +D;JNE +@3611 +0;JMP +@511 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@3 +A=M +M=D +@0 +M=M+1 +A=M-1 +M=0 +@1 +D=A +@13 +M=D +@20889 +D=A +@14 +M=D +@3627 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@4 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@4 +D=A +@13 +M=D +@22354 +D=A +@14 +M=D +@3706 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +A=M-1 +M=!M +@1 +D=A +@13 +M=D +@20889 +D=A +@14 +M=D +@3730 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@4 +D=A +@13 +M=D +@22354 +D=A +@14 +M=D +@3826 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@0 +AM=M+1 +A=A-1 +M=0 +@0 +D=A +@13 +M=D +@4508 +D=A +@14 +M=D +@3853 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +D=A +@13 +M=D +@4531 +D=A +@14 +M=D +@3870 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@4539 +D=A +@14 +M=D +@3895 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@4419 +D=A +@14 +M=D +@3919 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@7 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@8643 +D=A +@14 +M=D +@3948 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@3 +M=D +@0 +D=A +@13 +M=D +@20598 +D=A +@14 +M=D +@3965 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@50 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@230 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@229 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=M +@6 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@7 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@4 +D=A +@13 +M=D +@2659 +D=A +@14 +M=D +@4026 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@3 +A=M +M=D +@253 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@222 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@511 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@229 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@13 +M=D +@145 +D=A +@14 +M=D +@4076 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@3 +A=M+1 +M=D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@400 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@3 +D=A +@13 +M=D +@652 +D=A +@14 +M=D +@4111 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@238 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@511 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@240 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@4 +D=A +@13 +M=D +@22354 +D=A +@14 +M=D +@4150 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@22 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@2 +D=A +@13 +M=D +@19350 +D=A +@14 +M=D +@4177 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@8 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@25105 +D=A +@14 +M=D +@4200 +D=A +@95 +0;JMP +@83 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@25659 +D=A +@14 +M=D +@4218 +D=A +@95 +0;JMP +@99 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@25659 +D=A +@14 +M=D +@4236 +D=A +@95 +0;JMP +@111 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@25659 +D=A +@14 +M=D +@4254 +D=A +@95 +0;JMP +@114 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@25659 +D=A +@14 +M=D +@4272 +D=A +@95 +0;JMP +@101 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@25659 +D=A +@14 +M=D +@4290 +D=A +@95 +0;JMP +@58 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@25659 +D=A +@14 +M=D +@4308 +D=A +@95 +0;JMP +@32 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@25659 +D=A +@14 +M=D +@4326 +D=A +@95 +0;JMP +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@25659 +D=A +@14 +M=D +@4344 +D=A +@95 +0;JMP +@1 +D=A +@13 +M=D +@19850 +D=A +@14 +M=D +@4356 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +A=A+1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@3 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@2786 +D=A +@14 +M=D +@4450 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@346 +D=A +@14 +M=D +@4474 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@3 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@9357 +D=A +@14 +M=D +@4497 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@0 +D=A +@13 +M=D +@3930 +D=A +@14 +M=D +@4520 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@16 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@16 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@0 +AM=M+1 +A=A-1 +M=0 +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@3 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +A=M-1 +M=!M +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@4943 +D;JNE +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@4590 +D=A +@6 +0;JMP +@3 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +A=A-1 +M=D&M +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@4682 +D;JNE +@0 +D=A +@13 +M=D +@5924 +D=A +@14 +M=D +@4627 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@3211 +D=A +@14 +M=D +@4652 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@3 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@5191 +D=A +@14 +M=D +@4675 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@4575 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@130 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@4699 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@4706 +D;JNE +@4736 +0;JMP +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@2 +D=A +@13 +M=D +@3044 +D=A +@14 +M=D +@4729 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@4831 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@132 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@4753 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@4760 +D;JNE +@4792 +0;JMP +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@3044 +D=A +@14 +M=D +@4785 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@4831 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@140 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@4809 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@4816 +D;JNE +@4831 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +A=A+1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@4846 +D=A +@6 +0;JMP +@0 +A=M-1 +M=!M +@3 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +A=A-1 +M=D&M +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@4941 +D;JNE +@0 +D=A +@13 +M=D +@5924 +D=A +@14 +M=D +@4886 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@3211 +D=A +@14 +M=D +@4911 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@3 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@5191 +D=A +@14 +M=D +@4934 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@4831 +0;JMP +@4555 +0;JMP +@3 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4959 +D;JNE +@5185 +0;JMP +@10 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@19350 +D=A +@14 +M=D +@4983 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@9 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@25105 +D=A +@14 +M=D +@5006 +D=A +@95 +0;JMP +@71 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@25659 +D=A +@14 +M=D +@5024 +D=A +@95 +0;JMP +@97 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@25659 +D=A +@14 +M=D +@5042 +D=A +@95 +0;JMP +@109 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@25659 +D=A +@14 +M=D +@5060 +D=A +@95 +0;JMP +@101 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@25659 +D=A +@14 +M=D +@5078 +D=A +@95 +0;JMP +@32 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@25659 +D=A +@14 +M=D +@5096 +D=A +@95 +0;JMP +@79 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@25659 +D=A +@14 +M=D +@5114 +D=A +@95 +0;JMP +@118 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@25659 +D=A +@14 +M=D +@5132 +D=A +@95 +0;JMP +@101 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@25659 +D=A +@14 +M=D +@5150 +D=A +@95 +0;JMP +@114 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@25659 +D=A +@14 +M=D +@5168 +D=A +@95 +0;JMP +@1 +D=A +@13 +M=D +@19850 +D=A +@14 +M=D +@5180 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@5 +D=A +D=D-1 +@0 +AM=M+1 +A=A-1 +M=0 +@5193 +D;JGT +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@1126 +D=A +@14 +M=D +@5231 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@5254 +D=A +@22 +0;JMP +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=M +@5 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@5275 +D=A +@6 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +A=A-1 +M=D&M +@0 +AM=M-1 +D=M +@5290 +D;JNE +@5802 +0;JMP +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@3078 +D=A +@14 +M=D +@5337 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@3099 +D=A +@14 +M=D +@5362 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +M=D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@599 +D=A +@14 +M=D +@5388 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +M=D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@620 +D=A +@14 +M=D +@5415 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@4 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@5442 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@5449 +D;JNE +@5771 +0;JMP +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@5469 +D=A +@22 +0;JMP +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@5490 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +A=A+1 +M=D +@3 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@5522 +D;JNE +@5771 +0;JMP +@1 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@10 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@5553 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +@5560 +D;JNE +@5576 +0;JMP +@0 +M=M+1 +A=M-1 +M=1 +@0 +A=M-1 +D=!M +M=D+1 +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@5625 +0;JMP +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@10 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@5608 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +@5615 +D;JNE +@5625 +0;JMP +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@3 +D=M +@6 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=M +@6 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@3133 +D=A +@14 +M=D +@5684 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@3 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@22 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@7 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@19350 +D=A +@14 +M=D +@5740 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@3 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@19981 +D=A +@14 +M=D +@5766 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@1835 +D=A +@14 +M=D +@5797 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@5823 +D=A +@22 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@5833 +D;JNE +@5856 +0;JMP +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@27353 +D=A +@14 +M=D +@5851 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@8643 +D=A +@14 +M=D +@5875 +D=A +@95 +0;JMP +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@3 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@9357 +D=A +@14 +M=D +@5907 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@24576 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@8558 +D=A +@14 +M=D +@5942 +D=A +@95 +0;JMP +@54 +0;JMP +@0 +A=M +M=0 +AD=A+1 +M=0 +@0 +M=D+1 +@0 +M=M+1 +A=M-1 +M=0 +@1 +D=A +@13 +M=D +@19610 +D=A +@14 +M=D +@5967 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@5987 +D=A +@6 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@6002 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@6070 +D;JNE +@0 +D=A +@13 +M=D +@5924 +D=A +@14 +M=D +@6027 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@6048 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +@6055 +D;JNE +@6068 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@5972 +0;JMP +@0 +D=A +@13 +M=D +@27042 +D=A +@14 +M=D +@6082 +D=A +@95 +0;JMP +@1 +D=A +@13 +M=D +@19610 +D=A +@14 +M=D +@6094 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@19610 +D=A +@14 +M=D +@6118 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@5 +D=A +D=D-1 +@0 +AM=M+1 +A=A-1 +M=0 +@6134 +D;JGT +@80 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@25105 +D=A +@14 +M=D +@6159 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@19850 +D=A +@14 +M=D +@6186 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +D=A +@13 +M=D +@27034 +D=A +@14 +M=D +@6203 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@0 +D=A +@13 +M=D +@27042 +D=A +@14 +M=D +@6221 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +M=D +@1 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +A=M-1 +M=!M +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@6404 +D;JNE +@0 +D=A +@13 +M=D +@5944 +D=A +@14 +M=D +@6260 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@6284 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@1 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@6312 +D;JNE +@6402 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@6331 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@6338 +D;JNE +@6366 +0;JMP +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@25801 +D=A +@14 +M=D +@6359 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@6402 +0;JMP +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@25659 +D=A +@14 +M=D +@6394 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +M=D +@6228 +0;JMP +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@0 +A=M +M=0 +AD=A+1 +M=0 +@0 +M=D+1 +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@6132 +D=A +@14 +M=D +@6441 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@25889 +D=A +@14 +M=D +@6466 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@25252 +D=A +@14 +M=D +@6491 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@0 +AM=M+1 +A=A-1 +M=0 +@16 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@5808 +D=A +@14 +M=D +@6527 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@17 +M=D +@16 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@5808 +D=A +@14 +M=D +@6550 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@18 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@18 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@15 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6613 +D=A +@38 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@6768 +D;JNE +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@18 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@18 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@18 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@6596 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@6789 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +@6796 +D;JNE +@6813 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +A=M-1 +D=!M +M=D+1 +@0 +AM=M-1 +D=M +@2 +A=M +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@5 +D=A +D=D-1 +@0 +AM=M+1 +A=A-1 +M=0 +@6824 +D;JGT +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@6846 +D=A +@38 +0;JMP +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@6861 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D&M +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@6881 +D=A +@22 +0;JMP +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@6896 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D&M +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@6774 +D=A +@14 +M=D +@6934 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@2 +A=M +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@6774 +D=A +@14 +M=D +@6959 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@2 +A=M+1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@6983 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +@6990 +D;JNE +@7029 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@2 +A=M +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@2 +A=M+1 +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@7048 +D=A +@38 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@7245 +D;JNE +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@18 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D&M +@0 +M=M+1 +A=M-1 +M=0 +@7108 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +@7115 +D;JNE +@7192 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@18 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@2 +A=M +M=D +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +M=D +@7029 +0;JMP +@1 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@7261 +D;JNE +@7278 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +A=M-1 +D=!M +M=D+1 +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@4 +D=A +D=D-1 +@0 +AM=M+1 +A=A-1 +M=0 +@7289 +D;JGT +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@7311 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@7318 +D;JNE +@7341 +0;JMP +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@27353 +D=A +@14 +M=D +@7336 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@7356 +D=A +@38 +0;JMP +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@7371 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D&M +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@7391 +D=A +@22 +0;JMP +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@7406 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D&M +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@17 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@6774 +D=A +@14 +M=D +@7457 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@6774 +D=A +@14 +M=D +@7498 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@2 +A=M +M=D +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +A=M-1 +M=!M +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@7841 +D;JNE +@32767 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@17 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@17 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@7599 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +M=D +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@7626 +D;JNE +@7839 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@17 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@17 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@17 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@17 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@7790 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +M=D +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@7817 +D;JNE +@7839 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@7504 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +A=M-1 +D=!M +M=D+1 +@7860 +D=A +@22 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@8039 +D;JNE +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@17 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@7909 +D=A +@22 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@7919 +D;JNE +@8015 +0;JMP +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@18 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@17 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@2 +A=M +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@7841 +0;JMP +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@8054 +D;JNE +@8071 +0;JMP +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +A=M-1 +D=!M +M=D+1 +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@4 +D=A +D=D-1 +@0 +AM=M+1 +A=A-1 +M=0 +@8082 +D;JGT +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@8104 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +@8111 +D;JNE +@8134 +0;JMP +@4 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@27353 +D=A +@14 +M=D +@8129 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@7 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +A=M-1 +D=!M +M=D+1 +@8165 +D=A +@22 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@8348 +D;JNE +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@18 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@8249 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@8275 +D=A +@22 +0;JMP +@0 +A=M-1 +M=!M +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@8294 +D=A +@38 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +A=A-1 +M=D&M +@0 +AM=M-1 +D=M +@8309 +D;JNE +@8324 +0;JMP +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@8146 +0;JMP +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@8377 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +@8384 +D;JNE +@8397 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@2 +A=M+1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@8424 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +@8431 +D;JNE +@8444 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@2 +A=M+1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@0 +AM=M-1 +D=M +@19 +M=D +@2048 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@19 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@14334 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@2049 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@19 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@2050 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@19 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@19 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@0 +AM=M+1 +A=A-1 +M=0 +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@8662 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +@8669 +D;JNE +@8692 +0;JMP +@5 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@27353 +D=A +@14 +M=D +@8687 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@2048 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@0 +M=M+1 +A=M-1 +M=0 +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@8743 +D=A +@38 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@8787 +D;JNE +@0 +M=M+1 +A=M-1 +M=1 +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@8704 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@16379 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@8816 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +@8823 +D;JNE +@8846 +0;JMP +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@27353 +D=A +@14 +M=D +@8841 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@8896 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +@8903 +D;JNE +@9295 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +M=M+1 +A=M-1 +M=0 +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@0 +M=M+1 +A=M-1 +M=1 +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@9056 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@9063 +D;JNE +@9147 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@4 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@9227 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +M=M+1 +A=M-1 +M=1 +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@0 +M=M+1 +A=M-1 +M=1 +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@0 +M=M+1 +A=M-1 +M=0 +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +M=M+1 +A=M-1 +M=0 +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@54 +0;JMP +@0 +A=M +M=0 +AD=A+1 +M=0 +@0 +M=D+1 +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@0 +M=M+1 +A=M-1 +M=1 +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@9458 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@9465 +D;JNE +@9556 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +M=M+1 +A=M-1 +M=1 +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@9848 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +M=M+1 +A=M-1 +M=1 +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +M=M+1 +A=M-1 +M=0 +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@0 +M=M+1 +A=M-1 +M=1 +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@9717 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@9724 +D;JNE +@9782 +0;JMP +@0 +M=M+1 +A=M-1 +M=1 +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@9848 +0;JMP +@0 +M=M+1 +A=M-1 +M=1 +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +M=M+1 +A=M-1 +M=1 +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@16384 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@20 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@21 +M=D +@32 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@22 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +AM=M-1 +D=M +@23 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@25105 +D=A +@14 +M=D +@9915 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@24 +M=D +@0 +D=A +@13 +M=D +@9960 +D=A +@14 +M=D +@9932 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +D=A +@13 +M=D +@18456 +D=A +@14 +M=D +@9949 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@127 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@5808 +D=A +@14 +M=D +@9978 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@25 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@10061 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@32 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@10128 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@33 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@10211 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@34 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@54 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@54 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@20 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@10284 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@35 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@18 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@18 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@18 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@18 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@18 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@18 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@10367 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@36 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@10454 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@37 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@35 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@49 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@10535 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@38 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@54 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@54 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@10620 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@39 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@10693 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@40 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@10778 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@41 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@10863 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@42 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@10940 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@43 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@11017 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@44 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@11090 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@45 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@11159 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@46 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@11230 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@47 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@32 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@11309 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@11394 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@49 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@14 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@15 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@11479 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@50 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@11564 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@28 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@11649 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@52 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@16 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@28 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@26 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@25 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@60 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@11734 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@53 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@31 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@11819 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@54 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@28 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@31 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@11904 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@55 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@49 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@11989 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@56 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@12074 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@57 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@62 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@14 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@12159 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@58 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@12234 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@59 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@12311 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@60 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@12392 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@61 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@12463 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@62 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@12544 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@64 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@59 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@59 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@59 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@12629 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@12712 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@65 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@12797 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@66 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@31 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@31 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@31 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@12882 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@67 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@28 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@54 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@35 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@35 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@54 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@28 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@12967 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@68 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@15 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@15 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@13052 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@69 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@35 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@11 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@15 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@11 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@35 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@13137 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@70 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@35 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@11 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@15 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@11 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@13222 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@71 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@28 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@54 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@35 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@59 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@54 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@44 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@13307 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@72 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@13392 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@73 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@13477 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@74 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@60 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@14 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@13562 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@75 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@15 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@13647 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@76 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@35 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@13732 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@77 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@33 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@13817 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@78 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@55 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@55 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@59 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@59 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@13902 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@79 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@13987 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@80 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@31 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@31 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@14072 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@81 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@59 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@14159 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@82 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@31 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@31 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@14244 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@83 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@28 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@14329 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@84 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@45 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@14414 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@85 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@14499 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@86 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@14584 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@87 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@18 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@14669 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@88 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@14754 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@89 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@14839 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@90 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@49 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@35 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@14924 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@91 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@15009 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@92 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=1 +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@32 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@15088 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@93 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@15173 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@94 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@8 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@28 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@54 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@15246 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@95 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@15315 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@96 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@15388 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@97 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@14 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@54 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@15467 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@98 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@15 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@15552 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@99 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@15631 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@100 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@60 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@54 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@15716 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@101 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@15795 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@102 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@28 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@54 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@38 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@15 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@15 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@15880 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@103 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@62 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@15963 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@104 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@55 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@16048 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@105 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@14 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@16131 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@106 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@56 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@16216 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@107 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@15 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@15 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@16301 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@108 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@14 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@16386 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@109 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@29 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@43 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@43 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@43 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@43 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@16465 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@110 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@29 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@16544 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@111 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@16623 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@112 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@31 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@16704 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@113 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@62 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@16785 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@114 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@29 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@55 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@7 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@16864 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@115 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@16943 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@116 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@4 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@15 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@54 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@28 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@17028 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@117 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@54 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@17107 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@118 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@17186 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@119 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@18 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@17265 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@120 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@17344 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@121 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@62 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@15 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@17425 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@122 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@17504 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@123 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@56 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@7 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@56 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@17589 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@124 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@17674 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@125 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@7 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@56 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@7 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@17759 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@126 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@38 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@45 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@25 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@17832 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@0 +AM=M+1 +A=A-1 +M=0 +@11 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@5808 +D=A +@14 +M=D +@17865 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@25 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@0 +M=M+1 +A=M-1 +M=0 +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@0 +M=M+1 +A=M-1 +M=1 +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@2 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@2 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@4 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@2 +D=M +@5 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@5 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@2 +D=M +@6 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@2 +D=M +@7 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@7 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@2 +D=M +@8 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@8 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@2 +D=M +@9 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@9 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@2 +D=M +@10 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@10 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@2 +D=M +@11 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@4 +D=A +D=D-1 +@0 +AM=M+1 +A=A-1 +M=0 +@18458 +D;JGT +@127 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@5808 +D=A +@14 +M=D +@18483 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@26 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@127 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@18517 +D=A +@38 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@18859 +D;JNE +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@25 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@11 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@5808 +D=A +@14 +M=D +@18580 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@26 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +M=D +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@11 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@18665 +D=A +@38 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@18795 +D;JNE +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@256 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@18745 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +M=D +@18646 +0;JMP +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@18811 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@18818 +D;JNE +@18833 +0;JMP +@32 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +M=D +@18857 +0;JMP +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +M=D +@18499 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@0 +AM=M+1 +A=A-1 +M=0 +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@32 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@18886 +D=A +@38 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@126 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@18903 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@0 +AM=M-1 +D=M +@18915 +D;JNE +@18925 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@0 +AM=M-1 +D=M +@2 +A=M +M=D +@21 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@18938 +D;JNE +@18976 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@25 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@19012 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@26 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@4 +D=A +D=D-1 +@0 +AM=M+1 +A=A-1 +M=0 +@19023 +D;JGT +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@18865 +D=A +@14 +M=D +@19049 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +M=D +@22 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@11 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@19085 +D=A +@38 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@19344 +D;JNE +@21 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@19106 +D;JNE +@19161 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@20 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@256 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +A=M-1 +D=!M +M=D+1 +@0 +AM=M-1 +D=M +A=A-1 +M=D&M +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +M=D +@19210 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@20 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@255 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D&M +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@20 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@32 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@19068 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@19365 +D=A +@38 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@22 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@19382 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@19402 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@19424 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@0 +AM=M-1 +D=M +@19436 +D;JNE +@19459 +0;JMP +@20 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@27353 +D=A +@14 +M=D +@19454 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@7287 +D=A +@14 +M=D +@19484 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@23 +M=D +@32 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@352 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@19520 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@23 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@22 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@23 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@19572 +D=A +@95 +0;JMP +@19576 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@21 +M=D +@32 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@19021 +D=A +@14 +M=D +@19599 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +D=A +@13 +M=D +@27034 +D=A +@14 +M=D +@19629 +D=A +@95 +0;JMP +@19633 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@19640 +D;JNE +@19659 +0;JMP +@0 +D=A +@13 +M=D +@20040 +D=A +@14 +M=D +@19652 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@19844 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +D=A +@13 +M=D +@27042 +D=A +@14 +M=D +@19678 +D=A +@95 +0;JMP +@19682 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@19689 +D;JNE +@19708 +0;JMP +@0 +D=A +@13 +M=D +@20134 +D=A +@14 +M=D +@19701 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@19844 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@19021 +D=A +@14 +M=D +@19727 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@21 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@19748 +D;JNE +@19788 +0;JMP +@23 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@23 +M=D +@22 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@22 +M=D +@23 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@32 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@19804 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@19811 +D;JNE +@19830 +0;JMP +@0 +D=A +@13 +M=D +@20040 +D=A +@14 +M=D +@19823 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@19844 +0;JMP +@21 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@21 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@0 +A=M +M=0 +AD=A+1 +M=0 +@0 +M=D+1 +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@25339 +D=A +@14 +M=D +@19876 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@19900 +D=A +@38 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@19975 +D;JNE +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@25361 +D=A +@14 +M=D +@19934 +D=A +@95 +0;JMP +@1 +D=A +@13 +M=D +@19610 +D=A +@14 +M=D +@19946 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@19882 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@24 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@26291 +D=A +@14 +M=D +@20006 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@24 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@19850 +D=A +@14 +M=D +@20029 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@22 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@352 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@23 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@22 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +AM=M-1 +D=M +@23 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@21 +M=D +@22 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@8128 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@20110 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@20117 +D;JNE +@20128 +0;JMP +@32 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@22 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@21 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@20147 +D;JNE +@20288 +0;JMP +@23 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@20161 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +@20168 +D;JNE +@20210 +0;JMP +@23 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@23 +M=D +@22 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@22 +M=D +@20277 +0;JMP +@31 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@23 +M=D +@22 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@32 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@20237 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@20244 +D;JNE +@20255 +0;JMP +@8128 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@22 +M=D +@22 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@321 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@22 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +AM=M-1 +D=M +@21 +M=D +@20300 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@21 +M=D +@32 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@19021 +D=A +@14 +M=D +@20318 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@0 +AM=M+1 +A=A-1 +M=0 +@16384 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@27 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@28 +M=D +@17 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@5808 +D=A +@14 +M=D +@20374 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@29 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@29 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@16 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@20437 +D=A +@38 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@20592 +D;JNE +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@29 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@29 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@29 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@20420 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@0 +AM=M+1 +A=A-1 +M=0 +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@8192 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@20619 +D=A +@38 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@20695 +D;JNE +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +M=M+1 +A=M-1 +M=0 +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@20602 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@28 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@20714 +D;JNE +@20798 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@20883 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +A=A-1 +M=D&M +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@28 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@3 +D=A +D=D-1 +@0 +AM=M+1 +A=A-1 +M=0 +@20909 +D;JGT +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@20931 +D=A +@38 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@511 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@20948 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@20968 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@255 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@20990 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@0 +AM=M-1 +D=M +@21002 +D;JNE +@21025 +0;JMP +@7 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@27353 +D=A +@14 +M=D +@21020 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@16 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@7287 +D=A +@14 +M=D +@21050 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@16 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@21088 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@32 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@21124 +D=A +@95 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@29 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@20701 +D=A +@14 +M=D +@21193 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@21219 +D;JNE +@21252 +0;JMP +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@20907 +D=A +@14 +M=D +@21245 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@21283 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@20907 +D=A +@14 +M=D +@21278 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@11 +D=A +D=D-1 +@0 +AM=M+1 +A=A-1 +M=0 +@21291 +D;JGT +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@21313 +D=A +@38 +0;JMP +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@511 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@21331 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@21351 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@2 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@255 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@21375 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@0 +AM=M-1 +D=M +@21387 +D;JNE +@21410 +0;JMP +@8 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@27353 +D=A +@14 +M=D +@21405 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@1 +D=A +@13 +M=D +@6774 +D=A +@14 +M=D +@21442 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +M=D +@2 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@1 +D=A +@13 +M=D +@6774 +D=A +@14 +M=D +@21483 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +M=D +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@21511 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@1 +D=M +@6 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@21551 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D&M +@1 +D=M +@6 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +A=M-1 +M=!M +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@21587 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D&M +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@0 +AM=M-1 +D=M +@21604 +D;JNE +@21698 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@2 +A=M +M=D +@1 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@2 +A=M+1 +A=A+1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@2 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@2 +A=M+1 +M=D +@1 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@2 +A=M+1 +A=A+1 +A=A+1 +M=D +@1 +D=M +@6 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@21714 +D;JNE +@21844 +0;JMP +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +M=D +@1 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@2 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@8 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@21830 +D=A +@22 +0;JMP +@1 +D=M +@7 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@21922 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@8 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@21910 +D=A +@22 +0;JMP +@1 +D=M +@7 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@21948 +D=A +@95 +0;JMP +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@21998 +D=A +@95 +0;JMP +@1 +D=M +@9 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@22050 +D=A +@95 +0;JMP +@1 +D=M +@10 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@6 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@13 +M=D +@21204 +D=A +@14 +M=D +@22097 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@8 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@22122 +D=A +@38 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@22348 +D;JNE +@1 +D=M +@5 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@22147 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +@22154 +D;JNE +@22189 +0;JMP +@1 +D=M +@5 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@9 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@22284 +0;JMP +@1 +D=M +@5 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@10 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@1 +D=M +@7 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@22238 +D;JNE +@22262 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@22284 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@6 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@13 +M=D +@21204 +D=A +@14 +M=D +@22341 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@22102 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@9 +D=A +D=D-1 +@0 +AM=M+1 +A=A-1 +M=0 +@22356 +D;JGT +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@22382 +D=A +@22 +0;JMP +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@22402 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@22422 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@511 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@22445 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@22465 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@2 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@255 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@22489 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@0 +AM=M-1 +D=M +@22501 +D;JNE +@22524 +0;JMP +@9 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@27353 +D=A +@14 +M=D +@22519 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@16 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@7287 +D=A +@14 +M=D +@22549 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@16 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@22591 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@1 +D=M +@7 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@16 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@7287 +D=A +@14 +M=D +@22634 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@16 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@22678 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@1 +D=M +@8 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@1 +D=M +@7 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@29 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@1 +D=M +@8 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@29 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@32 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@22835 +D=A +@95 +0;JMP +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@1 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@22905 +D=A +@22 +0;JMP +@0 +A=M-1 +M=!M +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@23245 +D;JNE +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@22958 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@22965 +D;JNE +@23014 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@5 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@6 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D&M +@2 +D=A +@13 +M=D +@20701 +D=A +@14 +M=D +@23007 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@23184 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@6 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@20701 +D=A +@14 +M=D +@23042 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@23087 +D=A +@38 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@23151 +D;JNE +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +A=M-1 +D=!M +M=D+1 +@2 +D=A +@13 +M=D +@20701 +D=A +@14 +M=D +@23122 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@23069 +0;JMP +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@5 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@20701 +D=A +@14 +M=D +@23179 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@2 +A=M+1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@32 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@22885 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@11 +D=A +D=D-1 +@0 +AM=M+1 +A=A-1 +M=0 +@23253 +D;JGT +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@8406 +D=A +@14 +M=D +@23287 +D=A +@95 +0;JMP +@1 +D=M +@7 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@8359 +D=A +@14 +M=D +@23326 +D=A +@95 +0;JMP +@1 +D=M +@8 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +A=M-1 +D=!M +M=D+1 +@23357 +D=A +@22 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@256 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@23374 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D&M +@1 +D=M +@7 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@512 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@23398 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D&M +@1 +D=M +@8 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +A=M-1 +D=!M +M=D+1 +@23424 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D&M +@0 +AM=M-1 +D=M +@23436 +D;JNE +@24145 +0;JMP +@1 +D=M +@7 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@2 +D=A +@13 +M=D +@8359 +D=A +@14 +M=D +@23461 +D=A +@95 +0;JMP +@1 +D=M +@7 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@1 +D=M +@8 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@511 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@8406 +D=A +@14 +M=D +@23500 +D=A +@95 +0;JMP +@1 +D=M +@8 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@1 +D=M +@7 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@16 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@7287 +D=A +@14 +M=D +@23539 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@1 +D=M +@7 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@16 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@23579 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@1 +D=M +@9 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@1 +D=M +@8 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@16 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@7287 +D=A +@14 +M=D +@23623 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +M=D +@1 +D=M +@8 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@16 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@23665 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@1 +D=M +@10 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@1 +D=M +@9 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@29 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@1 +D=M +@10 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@29 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@32 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@23820 +D=A +@95 +0;JMP +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@6 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +M=D +@1 +D=M +@6 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@23915 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@23922 +D;JNE +@23971 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@5 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D&M +@2 +D=A +@13 +M=D +@20701 +D=A +@14 +M=D +@23964 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@24145 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@5 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@20701 +D=A +@14 +M=D +@23999 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@24046 +D=A +@38 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@24110 +D;JNE +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +A=M-1 +D=!M +M=D+1 +@2 +D=A +@13 +M=D +@20701 +D=A +@14 +M=D +@24081 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@24026 +0;JMP +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@20701 +D=A +@14 +M=D +@24140 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@3 +D=A +@13 +M=D +@23251 +D=A +@14 +M=D +@24224 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@3 +D=A +@13 +M=D +@23251 +D=A +@14 +M=D +@24302 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@3 +D=A +@13 +M=D +@23251 +D=A +@14 +M=D +@24381 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@3 +D=A +@13 +M=D +@23251 +D=A +@14 +M=D +@24460 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@3 +D=A +D=D-1 +@0 +AM=M+1 +A=A-1 +M=0 +@24473 +D;JGT +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@24495 +D=A +@38 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@511 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24512 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@24532 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@255 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24554 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@0 +AM=M-1 +D=M +@24566 +D;JNE +@24589 +0;JMP +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@27353 +D=A +@14 +M=D +@24584 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +M=M+1 +A=M-1 +M=0 +@24617 +D=A +@38 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@511 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24647 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +M=M+1 +A=M-1 +M=0 +@24680 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@255 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24715 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@0 +AM=M-1 +D=M +@24727 +D;JNE +@24750 +0;JMP +@13 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@27353 +D=A +@14 +M=D +@24745 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@4 +D=A +@13 +M=D +@24151 +D=A +@14 +M=D +@24828 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@24851 +D=A +@22 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@25099 +D;JNE +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@24875 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +@24882 +D;JNE +@24940 +0;JMP +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@24915 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +M=D +@25030 +0;JMP +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@24985 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@5 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@4 +D=A +@13 +M=D +@24151 +D=A +@14 +M=D +@25092 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@24833 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@8643 +D=A +@14 +M=D +@25123 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@3 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@25143 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +@25150 +D;JNE +@25173 +0;JMP +@14 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@27353 +D=A +@14 +M=D +@25168 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@25188 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +@25195 +D;JNE +@25220 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@5808 +D=A +@14 +M=D +@25214 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@3 +A=M+1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +A=M +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +M=D +@3 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@25279 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +@25286 +D;JNE +@25310 +0;JMP +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@5877 +D=A +@14 +M=D +@25305 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@3 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@9357 +D=A +@14 +M=D +@25328 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@25388 +D=A +@38 +0;JMP +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@25407 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@25431 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@0 +AM=M-1 +D=M +@25443 +D;JNE +@25466 +0;JMP +@15 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@27353 +D=A +@14 +M=D +@25461 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@25526 +D=A +@38 +0;JMP +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@25545 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@25569 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@0 +AM=M-1 +D=M +@25581 +D;JNE +@25604 +0;JMP +@16 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@27353 +D=A +@14 +M=D +@25599 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@25690 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@25697 +D;JNE +@25720 +0;JMP +@17 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@27353 +D=A +@14 +M=D +@25715 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +M=D +@3 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@25829 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@25836 +D;JNE +@25859 +0;JMP +@18 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@27353 +D=A +@14 +M=D +@25854 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@5 +D=A +D=D-1 +@0 +AM=M+1 +A=A-1 +M=0 +@25891 +D;JGT +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@25926 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@25933 +D;JNE +@25939 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@45 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@25992 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@25999 +D;JNE +@26025 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@26044 +D=A +@38 +0;JMP +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D&M +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@26249 +D;JNE +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@26131 +D=A +@38 +0;JMP +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@9 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@26149 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +M=D +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@26181 +D;JNE +@26247 +0;JMP +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@10 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@26206 +D=A +@95 +0;JMP +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@26025 +0;JMP +@1 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@26265 +D;JNE +@26282 +0;JMP +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +A=M-1 +D=!M +M=D+1 +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@4 +D=A +D=D-1 +@0 +AM=M+1 +A=A-1 +M=0 +@26293 +D;JGT +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@26327 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@26334 +D;JNE +@26357 +0;JMP +@19 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@27353 +D=A +@14 +M=D +@26352 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@5808 +D=A +@14 +M=D +@26375 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@26397 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +@26404 +D;JNE +@26436 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +A=M-1 +D=!M +M=D+1 +@0 +AM=M-1 +D=M +@2 +A=M+1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@26464 +D=A +@22 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@26630 +D;JNE +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@10 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@7287 +D=A +@14 +M=D +@26497 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@10 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@26561 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@2 +A=M+1 +M=D +@26449 +0;JMP +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@26646 +D;JNE +@26716 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@45 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@26734 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +@26741 +D;JNE +@26764 +0;JMP +@19 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@27353 +D=A +@14 +M=D +@26759 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@26779 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@26786 +D;JNE +@26843 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +M=D +@27003 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@26873 +D=A +@38 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@27003 +D;JNE +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +M=D +@26854 +0;JMP +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@5877 +D=A +@14 +M=D +@27023 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@128 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@129 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@34 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@0 +D=A +@13 +M=D +@8453 +D=A +@14 +M=D +@27070 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +D=A +@13 +M=D +@6505 +D=A +@14 +M=D +@27087 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +D=A +@13 +M=D +@20329 +D=A +@14 +M=D +@27104 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +D=A +@13 +M=D +@9854 +D=A +@14 +M=D +@27121 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +D=A +@13 +M=D +@5918 +D=A +@14 +M=D +@27138 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +D=A +@13 +M=D +@3837 +D=A +@14 +M=D +@27155 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +D=A +@13 +M=D +@27177 +D=A +@14 +M=D +@27172 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +A=M-1 +M=!M +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@27194 +D;JNE +@27177 +0;JMP +@0 +AM=M+1 +A=A-1 +M=0 +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@27213 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +@27220 +D;JNE +@27241 +0;JMP +@0 +M=M+1 +A=M-1 +M=1 +@1 +D=A +@13 +M=D +@27353 +D=A +@14 +M=D +@27236 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@27256 +D=A +@22 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@27347 +D;JNE +@50 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@27291 +D=A +@22 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@27323 +D;JNE +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@27276 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@2 +A=M +M=D +@27241 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@25105 +D=A +@14 +M=D +@27371 +D=A +@95 +0;JMP +@69 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@25659 +D=A +@14 +M=D +@27389 +D=A +@95 +0;JMP +@82 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@25659 +D=A +@14 +M=D +@27407 +D=A +@95 +0;JMP +@82 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@25659 +D=A +@14 +M=D +@27425 +D=A +@95 +0;JMP +@1 +D=A +@13 +M=D +@19850 +D=A +@14 +M=D +@27437 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@19981 +D=A +@14 +M=D +@27461 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +D=A +@13 +M=D +@27177 +D=A +@14 +M=D +@27478 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D diff --git a/projects/06/pong/PongL.hack b/projects/06/pong/PongL.hack new file mode 100644 index 0000000..9eb4a3d --- /dev/null +++ b/projects/06/pong/PongL.hack @@ -0,0 +1,27483 @@ +0000000100000000 +1110110000010000 +0000000000000000 +1110001100001000 +0000000010000101 +1110101010000111 +0000000000001111 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111010000 +1110101010001000 +0000000000010011 +1110001100000101 +0000000000000000 +1111110010100000 +1110111010001000 +0000000000001111 +1111110000100000 +1110101010000111 +0000000000001111 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111010000 +1110101010001000 +0000000000100011 +1110001100000110 +0000000000000000 +1111110010100000 +1110111010001000 +0000000000001111 +1111110000100000 +1110101010000111 +0000000000001111 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111010000 +1110101010001000 +0000000000110011 +1110001100000011 +0000000000000000 +1111110010100000 +1110111010001000 +0000000000001111 +1111110000100000 +1110101010000111 +0000000000000101 +1110110000010000 +0000000000000001 +1111000111100000 +1111110000010000 +0000000000001101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000010 +1111110000100000 +1110001100001000 +1110110000010000 +0000000000000000 +1110011111001000 +0000000000000001 +1111110000010000 +0000000000001110 +1110001110101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000001110 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000001110 +1111110010101000 +1111110000010000 +0000000000000010 +1110001100001000 +0000000000001110 +1111110010101000 +1111110000010000 +0000000000000001 +1110001100001000 +0000000000001101 +1111110000100000 +1110101010000111 +0000000000000000 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000000 +1111110111101000 +1110001100001000 +0000000000000010 +1111110000010000 +0000000000000000 +1111110111101000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000000 +1111110111101000 +1110001100001000 +0000000000000100 +1111110000010000 +0000000000000000 +1111110111101000 +1110001100001000 +0000000000000100 +1110110000010000 +0000000000001101 +1111000010010000 +0000000000000000 +1111000111010000 +0000000000000010 +1110001100001000 +0000000000000000 +1111110111011000 +0000000000000001 +1110001100001000 +0000000000001110 +1111110000100000 +1110101010000111 +0000000000000000 +1110110000010000 +0000000000001101 +1110001100001000 +0110100110110010 +1110110000010000 +0000000000001110 +1110001100001000 +0000000010010001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000001111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0010000111000011 +1110110000010000 +0000000000001110 +1110001100001000 +0000000010100011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110000100000 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110001100001000 +0000000000000010 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000001010 +1110000010010000 +0000000000001101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000001101 +1111110000100000 +1110001100001000 +0000000000000010 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000011 +1111110000010000 +0000000000001011 +1110000010010000 +0000000000001101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000001101 +1111110000100000 +1110001100001000 +0000000000000010 +1111110000010000 +0000000000000100 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000001100 +1110000010010000 +0000000000001101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000001101 +1111110000100000 +1110001100001000 +0000000000000010 +1111110000010000 +0000000000000101 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000011 +1111110000010000 +0000000000001101 +1110000010010000 +0000000000001101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000001101 +1111110000100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000011 +1111110000010000 +0000000000001110 +1110000010010000 +0000000000001101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000001101 +1111110000100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0000000110000011 +1110110000010000 +0000000000001110 +1110001100001000 +0000000101001101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0010010010001101 +1110110000010000 +0000000000001110 +1110001100001000 +0000000101111000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0101000110011001 +1110110000010000 +0000000000001110 +1110001100001000 +0000000110100010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0000001000000010 +1110110000010000 +0000000000001110 +1110001100001000 +0000000110111001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0101000110011001 +1110110000010000 +0000000000001110 +1110001100001000 +0000000111100000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0000001000000010 +1110110000010000 +0000000000001110 +1110001100001000 +0000000111110111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000100 +1110110000010000 +0000000000001101 +1110001100001000 +0101011101010010 +1110110000010000 +0000000000001110 +1110001100001000 +0000001001001100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000110110 +1110101010000111 +0000000000000011 +1110110000010000 +1110001110010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110101010001000 +0000001010001110 +1110001100000001 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110110111100000 +1110001100001000 +0000000000000010 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000011 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0001101001110110 +1110110000010000 +0000000000001110 +1110001100001000 +0000001011101011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0001101001110110 +1110110000010000 +0000000000001110 +1110001100001000 +0000001100000110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000001100011110 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000011 +1111110000010000 +0000000000000111 +1110000010010000 +0000000000001101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000001101 +1111110000100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000111 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000001100111010 +1110001100000101 +0000001110100010 +1110101010000111 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110001100001000 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000001101110110 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000011 +1111110000010000 +0000000000001000 +1110000010010000 +0000000000001101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000001101 +1111110000100000 +1110001100001000 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000001110010100 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000011 +1111110000010000 +0000000000001001 +1110000010010000 +0000000000001101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000001101 +1111110000100000 +1110001100001000 +0000001111011111 +1110101010000111 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000001110110100 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000011 +1111110000010000 +0000000000001000 +1110000010010000 +0000000000001101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000001101 +1111110000100000 +1110001100001000 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000001111010011 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000011 +1111110000010000 +0000000000001001 +1110000010010000 +0000000000001101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000001101 +1111110000100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001101010100110 +1110110000010000 +0000000000001110 +1110001100001000 +0000001111111000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001101010100110 +1110110000010000 +0000000000001110 +1110001100001000 +0000010000100110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001101010100110 +1110110000010000 +0000000000001110 +1110001100001000 +0000010001010101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0000000111000100 +1110110000010000 +0000000000001110 +1110001100001000 +0000010010000100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000100 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000010010011010 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000010010100001 +1110001100000101 +0000010011000011 +1110101010000111 +0000000000000011 +1111110000010000 +0000000000000100 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000101 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000010101111001 +1110101010000111 +0000000000000011 +1111110000010000 +0000000000000100 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000110 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000001001 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000010011110011 +1110001100000101 +0000010100110111 +1110101010000111 +0000000000000011 +1111110000010000 +0000000000000111 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000010100000011 +1110001100000101 +0000010100011101 +1110101010000111 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110000100000 +1110001100001000 +0000010100110101 +1110101010000111 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110001100001000 +0000010101111001 +1110101010000111 +0000000000000011 +1111110000010000 +0000000000000111 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000010101000111 +1110001100000101 +0000010101100001 +1110101010000111 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110000100000 +1110001100001000 +0000010101111001 +1110101010000111 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000001000 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000010110001001 +1110001100000101 +0000010111001101 +1110101010000111 +0000000000000011 +1111110000010000 +0000000000000111 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000010110011001 +1110001100000101 +0000010110110011 +1110101010000111 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110001100001000 +0000010111001011 +1110101010000111 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110000100000 +1110001100001000 +0000011000001111 +1110101010000111 +0000000000000011 +1111110000010000 +0000000000000111 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000010111011101 +1110001100000101 +0000010111110111 +1110101010000111 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110001100001000 +0000011000001111 +1110101010000111 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110000100000 +1110001100001000 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000001010 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000011000100011 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000011000101101 +1110001100000101 +0000011001001100 +1110101010000111 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000011 +1111110000010000 +0000000000001110 +1110000010010000 +0000000000001101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000001101 +1111110000100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000001010 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110000100000 +1110001100001000 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000001011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000011001100000 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000011001101010 +1110001100000101 +0000011010001011 +1110101010000111 +0000000000000010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000001110 +1110000010010000 +0000000000001101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000001101 +1111110000100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000001011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110000100000 +1110001100001000 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000001100 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000011010011111 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000011010101001 +1110001100000101 +0000011011001010 +1110101010000111 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000001110 +1110000010010000 +0000000000001101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000001101 +1111110000100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000001100 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110001100001000 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000001101 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000011011011110 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000011011101000 +1110001100000101 +0000011100001001 +1110101010000111 +0000000000000100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000001110 +1110000010010000 +0000000000001101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000001101 +1111110000100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000001101 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0000000110000011 +1110110000010000 +0000000000001110 +1110001100001000 +0000011100011011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000001110 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110101010000111 +0000000000000101 +1110110000010000 +1110001110010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110101010001000 +0000011100101101 +1110001100000001 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000000011 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001110001110111 +1110110000010000 +0000000000001110 +1110001100001000 +0000011101011010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001110001110111 +1110110000010000 +0000000000001110 +1110001100001000 +0000011101111100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000011110010011 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000011110011010 +1110001100000101 +0000011110101011 +1110101010000111 +0000000000001010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000100000100110 +1110101010000111 +0000000000000011 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000011110111011 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000011111001101 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000000001000 +0000000000000011 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000011111100010 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111010101001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010100000 +1111110001010000 +1110011111001000 +0000011111111010 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000000001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000100000000110 +1110001100000101 +0000100000010111 +1110101010000111 +0000000000010100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000100000100110 +1110101010000111 +0000000000000101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000001110 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000100000110111 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000100000111110 +1110001100000101 +0000100010110011 +1110101010000111 +0000000111111010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010100000 +1111110001010000 +1110011111001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001101010100110 +1110110000010000 +0000000000001110 +1110001100001000 +0000100001101001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001110001110111 +1110110000010000 +0000000000001110 +1110001100001000 +0000100001111101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110001100001000 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000100 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001101010100110 +1110110000010000 +0000000000001110 +1110001100001000 +0000100010100110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110001100001000 +0000101000111000 +1110101010000111 +0000000000000011 +1111110000010000 +0000000000001110 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000100011000110 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000100011001101 +1110001100000101 +0000100100111100 +1110101010000111 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001101010100110 +1110110000010000 +0000000000001110 +1110001100001000 +0000100011110010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001110001110111 +1110110000010000 +0000000000001110 +1110001100001000 +0000100100000110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110001100001000 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000100 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001101010100110 +1110110000010000 +0000000000001110 +1110001100001000 +0000100100101111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110001100001000 +0000101000111000 +1110101010000111 +0000000000000011 +1111110000010000 +0000000000001110 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000100101001111 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000100101010110 +1110001100000101 +0000100111001011 +1110101010000111 +0000000011111010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110001100001000 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011001 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010100000 +1111110001010000 +1110011111001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001101010100110 +1110110000010000 +0000000000001110 +1110001100001000 +0000100110000000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000001 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001110001110111 +1110110000010000 +0000000000001110 +1110001100001000 +0000100110010101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000100 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001101010100110 +1110110000010000 +0000000000001110 +1110001100001000 +0000100110111110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000101000111000 +1110101010000111 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110001100001000 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011001 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001101010100110 +1110110000010000 +0000000000001110 +1110001100001000 +0000100111101111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000001 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001110001110111 +1110110000010000 +0000000000001110 +1110001100001000 +0000101000000100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000100 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001101010100110 +1110110000010000 +0000000000001110 +1110001100001000 +0000101000101101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000001101 +1110001100001000 +0000001010001100 +1110110000010000 +0000000000001110 +1110001100001000 +0000101001011000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0010000111000011 +1110110000010000 +0000000000001110 +1110001100001000 +0000101001110101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110000100000 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110001100001000 +0000000000000010 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110110111100000 +1110001100001000 +0000000000000010 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0000101100001011 +1110110000010000 +0000000000001110 +1110001100001000 +0000101011010101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0010010010001101 +1110110000010000 +0000000000001110 +1110001100001000 +0000101100000000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0101000110011001 +1110110000010000 +0000000000001110 +1110001100001000 +0000101100101010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0000101110001010 +1110110000010000 +0000000000001110 +1110001100001000 +0000101101000001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0101000110011001 +1110110000010000 +0000000000001110 +1110001100001000 +0000101101101000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0000101110001010 +1110110000010000 +0000000000001110 +1110001100001000 +0000101101111111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000100 +1110110000010000 +0000000000001101 +1110001100001000 +0101011101010010 +1110110000010000 +0000000000001110 +1110001100001000 +0000101111011001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000110110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0000101101001100 +1110110000010000 +0000000000001110 +1110001100001000 +0000110001011011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110110111100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0000101100001011 +1110110000010000 +0000000000001110 +1110001100001000 +0000110010000000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000100 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000110010101000 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000110010101111 +1110001100000101 +0000110111000101 +1110101010000111 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110000100000 +1110001100001000 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000110011010110 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000110011011101 +1110001100000101 +0000110011100111 +1110101010000111 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110000100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0101000110011001 +1110110000010000 +0000000000001110 +1110001100001000 +0000110011110111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000100 +1110110000010000 +0000000000001101 +1110001100001000 +0101011101010010 +1110110000010000 +0000000000001110 +1110001100001000 +0000110101100000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0101000110011001 +1110110000010000 +0000000000001110 +1110001100001000 +0000110101111000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000100 +1110110000010000 +0000000000001101 +1110001100001000 +0101011101010010 +1110110000010000 +0000000000001110 +1110001100001000 +0000110110111110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000111011110111 +1110101010000111 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110000100000 +1110001100001000 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000111111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000110111111011 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000111000000010 +1110001100000101 +0000111000011011 +1110101010000111 +0000000111111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110000100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0101000110011001 +1110110000010000 +0000000000001110 +1110001100001000 +0000111000101011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000100 +1110110000010000 +0000000000001101 +1110001100001000 +0101011101010010 +1110110000010000 +0000000000001110 +1110001100001000 +0000111001111010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0101000110011001 +1110110000010000 +0000000000001110 +1110001100001000 +0000111010010010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000100 +1110110000010000 +0000000000001101 +1110001100001000 +0101011101010010 +1110110000010000 +0000000000001110 +1110001100001000 +0000111011110010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000000 +1111110111101000 +1110110010100000 +1110101010001000 +0000000000000000 +1110110000010000 +0000000000001101 +1110001100001000 +0001000110011100 +1110110000010000 +0000000000001110 +1110001100001000 +0000111100001101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1110110000010000 +0000000000001101 +1110001100001000 +0001000110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0000111100011110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0001000110111011 +1110110000010000 +0000000000001110 +1110001100001000 +0000111100110111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0001000101000011 +1110110000010000 +0000000000001110 +1110001100001000 +0000111101001111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0010000111000011 +1110110000010000 +0000000000001110 +1110001100001000 +0000111101101100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000000000 +1110110000010000 +0000000000001101 +1110001100001000 +0101000001110110 +1110110000010000 +0000000000001110 +1110001100001000 +0000111101111101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000110010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000011100110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000011100101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000110 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000100 +1110110000010000 +0000000000001101 +1110001100001000 +0000101001100011 +1110110000010000 +0000000000001110 +1110001100001000 +0000111110111010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110000100000 +1110001100001000 +0000000011111101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000011011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000111111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000011100101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000001101 +1110001100001000 +0000000010010001 +1110110000010000 +0000000000001110 +1110001100001000 +0000111111101100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110001100001000 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000110010000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000011 +1110110000010000 +0000000000001101 +1110001100001000 +0000001010001100 +1110110000010000 +0000000000001110 +1110001100001000 +0001000000001111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000011101110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000111111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000011110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000100 +1110110000010000 +0000000000001101 +1110001100001000 +0101011101010010 +1110110000010000 +0000000000001110 +1110001100001000 +0001000000110110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000010110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0100101110010110 +1110110000010000 +0000000000001110 +1110001100001000 +0001000001010001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000001000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0110001000010001 +1110110000010000 +0000000000001110 +1110001100001000 +0001000001101000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000001010011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0110010000111011 +1110110000010000 +0000000000001110 +1110001100001000 +0001000001111010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000001100011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0110010000111011 +1110110000010000 +0000000000001110 +1110001100001000 +0001000010001100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000001101111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0110010000111011 +1110110000010000 +0000000000001110 +1110001100001000 +0001000010011110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000001110010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0110010000111011 +1110110000010000 +0000000000001110 +1110001100001000 +0001000010110000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000001100101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0110010000111011 +1110110000010000 +0000000000001110 +1110001100001000 +0001000011000010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000111010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0110010000111011 +1110110000010000 +0000000000001110 +1110001100001000 +0001000011010100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000100000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0110010000111011 +1110110000010000 +0000000000001110 +1110001100001000 +0001000011100110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0110010000111011 +1110110000010000 +0000000000001110 +1110001100001000 +0001000011111000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0100110110001010 +1110110000010000 +0000000000001110 +1110001100001000 +0001000100000100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110110111100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0000101011100010 +1110110000010000 +0000000000001110 +1110001100001000 +0001000101100010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0000000101011010 +1110110000010000 +0000000000001110 +1110001100001000 +0001000101111010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0010010010001101 +1110110000010000 +0000000000001110 +1110001100001000 +0001000110010001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000000 +1110110000010000 +0000000000001101 +1110001100001000 +0000111101011010 +1110110000010000 +0000000000001110 +1110001100001000 +0001000110101000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000010000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000010000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110101010000111 +0000000000000000 +1111110111101000 +1110110010100000 +1110101010001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0001001101001111 +1110001100000101 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0001000111101110 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000011 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000000001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0001001001001010 +1110001100000101 +0000000000000000 +1110110000010000 +0000000000001101 +1110001100001000 +0001011100100100 +1110110000010000 +0000000000001110 +1110001100001000 +0001001000010011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0000110010001011 +1110110000010000 +0000000000001110 +1110001100001000 +0001001000101100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0001010001000111 +1110110000010000 +0000000000001110 +1110001100001000 +0001001001000011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0001000111011111 +1110101010000111 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000010000010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0001001001011011 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0001001001100010 +1110001100000101 +0001001010000000 +1110101010000111 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0000101111100100 +1110110000010000 +0000000000001110 +1110001100001000 +0001001001111001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0001001011011111 +1110101010000111 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000010000100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0001001010010001 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0001001010011000 +1110001100000101 +0001001010111000 +1110101010000111 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0000101111100100 +1110110000010000 +0000000000001110 +1110001100001000 +0001001010110001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0001001011011111 +1110101010000111 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000010001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0001001011001001 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0001001011010000 +1110001100000101 +0001001011011111 +1110101010000111 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0001001011101110 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000011 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000000001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0001001101001101 +1110001100000101 +0000000000000000 +1110110000010000 +0000000000001101 +1110001100001000 +0001011100100100 +1110110000010000 +0000000000001110 +1110001100001000 +0001001100010110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0000110010001011 +1110110000010000 +0000000000001110 +1110001100001000 +0001001100101111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0001010001000111 +1110110000010000 +0000000000001110 +1110001100001000 +0001001101000110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0001001011011111 +1110101010000111 +0001000111001011 +1110101010000111 +0000000000000011 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0001001101011111 +1110001100000101 +0001010001000001 +1110101010000111 +0000000000001010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0100101110010110 +1110110000010000 +0000000000001110 +1110001100001000 +0001001101110111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000001001 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0110001000010001 +1110110000010000 +0000000000001110 +1110001100001000 +0001001110001110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000001000111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0110010000111011 +1110110000010000 +0000000000001110 +1110001100001000 +0001001110100000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000001100001 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0110010000111011 +1110110000010000 +0000000000001110 +1110001100001000 +0001001110110010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000001101101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0110010000111011 +1110110000010000 +0000000000001110 +1110001100001000 +0001001111000100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000001100101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0110010000111011 +1110110000010000 +0000000000001110 +1110001100001000 +0001001111010110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000100000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0110010000111011 +1110110000010000 +0000000000001110 +1110001100001000 +0001001111101000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000001001111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0110010000111011 +1110110000010000 +0000000000001110 +1110001100001000 +0001001111111010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000001110110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0110010000111011 +1110110000010000 +0000000000001110 +1110001100001000 +0001010000001100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000001100101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0110010000111011 +1110110000010000 +0000000000001110 +1110001100001000 +0001010000011110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000001110010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0110010000111011 +1110110000010000 +0000000000001110 +1110001100001000 +0001010000110000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0100110110001010 +1110110000010000 +0000000000001110 +1110001100001000 +0001010000111100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000101 +1110110000010000 +1110001110010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110101010001000 +0001010001001001 +1110001100000001 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0000010001100110 +1110110000010000 +0000000000001110 +1110001100001000 +0001010001101111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110110111100000 +1110001100001000 +0000000000000011 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0001010010000110 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000011 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000101 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0001010010011011 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000000001000 +0000000000000000 +1111110010101000 +1111110000010000 +0001010010101010 +1110001100000101 +0001011010101010 +1110101010000111 +0000000000000011 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0000110000000110 +1110110000010000 +0000000000001110 +1110001100001000 +0001010011011001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110001100001000 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0000110000011011 +1110110000010000 +0000000000001110 +1110001100001000 +0001010011110010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110001100001000 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0000001001010111 +1110110000010000 +0000000000001110 +1110001100001000 +0001010100001100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0000001001101100 +1110110000010000 +0000000000001110 +1110001100001000 +0001010100100111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000011 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0001010101000010 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0001010101001001 +1110001100000101 +0001011010001011 +1110101010000111 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000100 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0001010101011101 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0001010101110010 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111010101001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0001010110010010 +1110001100000101 +0001011010001011 +1110101010000111 +0000000000000001 +1111110000010000 +0000000000000100 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0001010110110001 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0001010110111000 +1110001100000101 +0001010111001000 +1110101010000111 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010100000 +1111110001010000 +1110011111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0001010111111001 +1110101010000111 +0000000000000001 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0001010111101000 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0001010111101111 +1110001100000101 +0001010111111001 +1110101010000111 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000110 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000110 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0000110000111101 +1110110000010000 +0000000000001110 +1110001100001000 +0001011000110100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000100 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000010110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0100101110010110 +1110110000010000 +0000000000001110 +1110001100001000 +0001011001101100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000100 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0100111000001101 +1110110000010000 +0000000000001110 +1110001100001000 +0001011010000110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0000011100101011 +1110110000010000 +0000000000001110 +1110001100001000 +0001011010100101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0001011010111111 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0001011011001001 +1110001100000101 +0001011011100000 +1110101010000111 +0000000000000010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0110101011011001 +1110110000010000 +0000000000001110 +1110001100001000 +0001011011011011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0010000111000011 +1110110000010000 +0000000000001110 +1110001100001000 +0001011011110011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000110110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0010010010001101 +1110110000010000 +0000000000001110 +1110001100001000 +0001011100010011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0110000000000000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0010000101101110 +1110110000010000 +0000000000001110 +1110001100001000 +0001011100110110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000110110 +1110101010000111 +0000000000000000 +1111110000100000 +1110101010001000 +1110110111110000 +1110101010001000 +0000000000000000 +1110011111001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0100110010011010 +1110110000010000 +0000000000001110 +1110001100001000 +0001011101001111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0001011101100011 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0001011101110010 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111010101001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0001011110110110 +1110001100000101 +0000000000000000 +1110110000010000 +0000000000001101 +1110001100001000 +0001011100100100 +1110110000010000 +0000000000001110 +1110001100001000 +0001011110001011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0001011110100000 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0001011110100111 +1110001100000101 +0001011110110100 +1110101010000111 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110001100001000 +0001011101010100 +1110101010000111 +0000000000000000 +1110110000010000 +0000000000001101 +1110001100001000 +0110100110100010 +1110110000010000 +0000000000001110 +1110001100001000 +0001011111000010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0100110010011010 +1110110000010000 +0000000000001110 +1110001100001000 +0001011111001110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0100110010011010 +1110110000010000 +0000000000001110 +1110001100001000 +0001011111100110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110101010000111 +0000000000000101 +1110110000010000 +1110001110010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110101010001000 +0001011111110110 +1110001100000001 +0000000001010000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0110001000010001 +1110110000010000 +0000000000001110 +1110001100001000 +0001100000001111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0100110110001010 +1110110000010000 +0000000000001110 +1110001100001000 +0001100000101010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1110110000010000 +0000000000001101 +1110001100001000 +0110100110011010 +1110110000010000 +0000000000001110 +1110001100001000 +0001100000111011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110001100001000 +0000000000000000 +1110110000010000 +0000000000001101 +1110001100001000 +0110100110100010 +1110110000010000 +0000000000001110 +1110001100001000 +0001100001001101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000100 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0001100100000100 +1110001100000101 +0000000000000000 +1110110000010000 +0000000000001101 +1110001100001000 +0001011100111000 +1110110000010000 +0000000000001110 +1110001100001000 +0001100001110100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0001100010001100 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000100 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0001100010101000 +1110001100000101 +0001100100000010 +1110101010000111 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0001100010111011 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0001100011000010 +1110001100000101 +0001100011011110 +1110101010000111 +0000000000000001 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0110010011001001 +1110110000010000 +0000000000001110 +1110001100001000 +0001100011010111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0001100100000010 +1110101010000111 +0000000000000001 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0110010000111011 +1110110000010000 +0000000000001110 +1110001100001000 +0001100011111010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0001100001010100 +1110101010000111 +0000000000000001 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110101010000111 +0000000000000000 +1111110000100000 +1110101010001000 +1110110111110000 +1110101010001000 +0000000000000000 +1110011111001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0001011111110100 +1110110000010000 +0000000000001110 +1110001100001000 +0001100100101001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0110010100100001 +1110110000010000 +0000000000001110 +1110001100001000 +0001100101000010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0110001010100100 +1110110000010000 +0000000000001110 +1110001100001000 +0001100101011011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110101010000111 +0000000000000000 +1111110111101000 +1110110010100000 +1110101010001000 +0000000000010000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0001011010110000 +1110110000010000 +0000000000001110 +1110001100001000 +0001100101111111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000010001 +1110001100001000 +0000000000010000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0001011010110000 +1110110000010000 +0000000000001110 +1110001100001000 +0001100110010110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000010010 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000010010 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0001100111010101 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0001101001110000 +1110001100000101 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010010 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000010010 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000010010 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0001100111000100 +1110101010000111 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0001101010000101 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0001101010001100 +1110001100000101 +0001101010011101 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010100000 +1111110001010000 +1110011111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000010 +1111110000100000 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110101010000111 +0000000000000101 +1110110000010000 +1110001110010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110101010001000 +0001101010101000 +1110001100000001 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0001101010111110 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0001101011001101 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000000001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0001101011100001 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0001101011110000 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000000001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111010101001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0001101001110110 +1110110000010000 +0000000000001110 +1110001100001000 +0001101100010110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000010 +1111110000100000 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0001101001110110 +1110110000010000 +0000000000001110 +1110001100001000 +0001101100101111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000010 +1111110111100000 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0001101101000111 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0001101101001110 +1110001100000101 +0001101101110101 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000010 +1111110000100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000010 +1111110111100000 +1110001100001000 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0001101110001000 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0001110001001101 +1110001100000101 +0000000000000001 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010010 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000000001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0001101111000100 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0001101111001011 +1110001100000101 +0001110000011000 +1110101010000111 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010010 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000010 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0001101101110101 +1110101010000111 +0000000000000001 +1111110000010000 +0000000000000100 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0001110001011101 +1110001100000101 +0001110001101110 +1110101010000111 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010100000 +1111110001010000 +1110011111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110101010000111 +0000000000000100 +1110110000010000 +1110001110010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110101010001000 +0001110001111001 +1110001100000001 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0001110010001111 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0001110010010110 +1110001100000101 +0001110010101101 +1110101010000111 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0110101011011001 +1110110000010000 +0000000000001110 +1110001100001000 +0001110010101000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0001110010111100 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0001110011001011 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000000001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0001110011011111 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0001110011101110 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000000001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111010101001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000010001 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0001101001110110 +1110110000010000 +0000000000001110 +1110001100001000 +0001110100100001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0001101001110110 +1110110000010000 +0000000000001110 +1110001100001000 +0001110101001010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000010 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0001111010100001 +1110001100000101 +0111111111111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010001 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010001 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0001110110101111 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0001110111001010 +1110001100000101 +0001111010011111 +1110101010000111 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000010001 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010001 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010001 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000010001 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0001111001101110 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0001111010001001 +1110001100000101 +0001111010011111 +1110101010000111 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0001110101010000 +1110101010000111 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010100000 +1111110001010000 +1110011111001000 +0001111010110100 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0001111101100111 +1110001100000101 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010001 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0001111011100101 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0001111011101111 +1110001100000101 +0001111101001111 +1110101010000111 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010010 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010001 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000010 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0001111010100001 +1110101010000111 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0001111101110110 +1110001100000101 +0001111110000111 +1110101010000111 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010100000 +1111110001010000 +1110011111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110101010000111 +0000000000000100 +1110110000010000 +1110001110010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110101010001000 +0001111110010010 +1110001100000001 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0001111110101000 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0001111110101111 +1110001100000101 +0001111111000110 +1110101010000111 +0000000000000100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0110101011011001 +1110110000010000 +0000000000001110 +1110001100001000 +0001111111000001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010100000 +1111110001010000 +1110011111001000 +0001111111100101 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0010000010011100 +1110001100000101 +0000000000000001 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010010 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001101010100110 +1110110000010000 +0000000000001110 +1110001100001000 +0010000000111001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110001100001000 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0010000001010011 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0010000001100110 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000000001000 +0000000000000000 +1111110010101000 +1111110000010000 +0010000001110101 +1110001100000101 +0010000010000100 +1110101010000111 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0001111111010010 +1110101010000111 +0000000000000001 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0010000010111001 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0010000011000000 +1110001100000101 +0010000011001101 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000010 +1111110111100000 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0010000011101000 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0010000011101111 +1110001100000101 +0010000011111100 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000010 +1111110111100000 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110101010000111 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000010011 +1110001100001000 +0000100000000000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010011 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0011011111111110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000100000000001 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010011 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000100000000010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010011 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010011 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000000 +1111110111101000 +1110110010100000 +1110101010001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0010000111010110 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0010000111011101 +1110001100000101 +0010000111110100 +1110101010000111 +0000000000000101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0110101011011001 +1110110000010000 +0000000000001110 +1110001100001000 +0010000111101111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000100000000000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0010001000100111 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0010001001010011 +1110001100000101 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0010001000000000 +1110101010000111 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0011111111111011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0010001001110000 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0010001001110111 +1110001100000101 +0010001010001110 +1110101010000111 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0110101011011001 +1110110000010000 +0000000000001110 +1110001100001000 +0010001010001001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0010001011000000 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0010001011000111 +1110001100000101 +0010010001001111 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0010001101100000 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0010001101100111 +1110001100000101 +0010001110111011 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0010010000001011 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000110110 +1110101010000111 +0000000000000000 +1111110000100000 +1110101010001000 +1110110111110000 +1110101010001000 +0000000000000000 +1110011111001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0010010011110010 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0010010011111001 +1110001100000101 +0010010101010100 +1110101010000111 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0010011001111000 +1110101010000111 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0010010111110101 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0010010111111100 +1110001100000101 +0010011000110110 +1110101010000111 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0010011001111000 +1110101010000111 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0100000000000000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000010100 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000010101 +1110001100001000 +0000000000100000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000010110 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000010111 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0110001000010001 +1110110000010000 +0000000000001110 +1110001100001000 +0010011010111011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000011000 +1110001100001000 +0000000000000000 +1110110000010000 +0000000000001101 +1110001100001000 +0010011011101000 +1110110000010000 +0000000000001110 +1110001100001000 +0010011011001100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1110110000010000 +0000000000001101 +1110001100001000 +0100100000011000 +1110110000010000 +0000000000001110 +1110001100001000 +0010011011011101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000001111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0001011010110000 +1110110000010000 +0000000000001110 +1110001100001000 +0010011011111010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000011001 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0010011101001101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000100000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0010011110010000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000100001 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0010011111100011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000100010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0010100000101100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000100011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000010010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0010100001111111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000100100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0010100011010110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000100101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000100011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110001 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0010100100100111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000100110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0010100101111100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000100111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0010100111000101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000101000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0010101000011010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000101001 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0010101001101111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000101010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0010101010111100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000101011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0010101100001001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000101100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0010101101010010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000101101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0010101110010111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000101110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0010101111011110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000101111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000100000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0010110000101101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0010110010000010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000110001 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0010110011010111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000110010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0010110100101100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0010110110000001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000110100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011001 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0010110111010110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000110101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0010111000101011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000110110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0010111010000000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000110111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110001 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0010111011010101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000111000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0010111100101010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000111001 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0010111101111111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000111010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0010111111001010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000111011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011000000010111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000111100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011000001101000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000111101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011000010101111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000111110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011000100000000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001000000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011000101010101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011000110101000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001000001 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011000111111101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001000010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011001001010010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000100011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000100011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011001010100111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001000100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011001011111100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001000101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000100011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000100011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011001101010001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000100011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011001110100110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001000111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000100011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000101100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011001111111011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001001000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011010001010000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001001001 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011010010100101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001001010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011010011111010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001001011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011010101001111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000100011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011010110100100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001001101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000100001 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011010111111001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001001110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011011001001110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001001111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011011010100011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001010000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011011011111000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001010001 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011011101001111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001010010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011011110100100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001010011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011011111111001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001010100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000101101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011100001001110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001010101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011100010100011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001010110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011100011111000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001010111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011100101001101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011100110100010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001011001 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011100111110111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001011010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110001 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000100011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011101001001100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001011011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011101010100001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001011100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000100000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011101011110000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001011101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011101101000101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011101110001110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001011111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011101111010011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001100000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011110000011100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001100001 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011110001101011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001100010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011110011000000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001100011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011110100001111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001100100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011110101100100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001100101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011110110110011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001100110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000100110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011111000001000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001100111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011111001011011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001101000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011111010110000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001101001 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011111100000011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001101010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000111000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011111101011000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001101011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0011111110101101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001101100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0100000000000010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001101101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000011101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000101011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000101011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000101011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000101011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0100000001010001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001101110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000011101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0100000010100000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001101111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0100000011101111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0100000101000000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001110001 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0100000110010001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001110010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000011101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0100000111100000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0100001000101111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001110100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0100001010000100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001110101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000011011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0100001011010011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001110110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0100001100100010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001110111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0100001101110001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001111000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0100001111000000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001111001 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0100010000010001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001111010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0100010001100000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001111011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0100010010110101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001111100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0100010100001010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001111101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0100010101011111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000001111110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000100110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000101101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011001 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000001100 +1110110000010000 +0000000000001101 +1110001100001000 +0100010110110011 +1110110000010000 +0000000000001110 +1110001100001000 +0100010110101000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000000 +1111110111101000 +1110110010100000 +1110101010001000 +0000000000001011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0001011010110000 +1110110000010000 +0000000000001110 +1110001100001000 +0100010111001001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011001 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000010 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000010 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000010 +1111110000010000 +0000000000000100 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000000100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000010 +1111110000010000 +0000000000000101 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000000101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000010 +1111110000010000 +0000000000000110 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000010 +1111110000010000 +0000000000000111 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000000111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000010 +1111110000010000 +0000000000001000 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000001000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000010 +1111110000010000 +0000000000001001 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000001001 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000010 +1111110000010000 +0000000000001010 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000001010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000010 +1111110000010000 +0000000000001011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000100 +1110110000010000 +1110001110010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110101010001000 +0100100000011010 +1110001100000001 +0000000001111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0001011010110000 +1110110000010000 +0000000000001110 +1110001100001000 +0100100000110011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000011010 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110001100001000 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000001111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0100100001010101 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0100100110101011 +1110001100000101 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011001 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000001011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0001011010110000 +1110110000010000 +0000000000001110 +1110001100001000 +0100100010010100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110001100001000 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011010 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0100100011101001 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0100100101101011 +1110001100000101 +0000000000000001 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000001 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000100000000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001101010100110 +1110110000010000 +0000000000001110 +1110001100001000 +0100100100111001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0100100011010110 +1110101010000111 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0100100101111011 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0100100110000010 +1110001100000101 +0100100110010001 +1110101010000111 +0000000000100000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110001100001000 +0100100110101001 +1110101010000111 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110001100001000 +0100100001000011 +1110101010000111 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000000 +1111110111101000 +1110110010100000 +1110101010001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000100000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0100100111000110 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000001111110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0100100111010111 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111010101001000 +0000000000000000 +1111110010101000 +1111110000010000 +0100100111100011 +1110001100000101 +0100100111101101 +1110101010000111 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000010 +1111110000100000 +1110001100001000 +0000000000010101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0100100111111010 +1110001100000101 +0100101000100000 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011001 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0100101001000100 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011010 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110101010000111 +0000000000000100 +1110110000010000 +1110001110010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110101010001000 +0100101001001111 +1110001100000001 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0100100110110001 +1110110000010000 +0000000000001110 +1110001100001000 +0100101001101001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110001100001000 +0000000000010110 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0100101010001101 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0100101110010000 +1110001100000101 +0000000000010101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0100101010100010 +1110001100000101 +0100101011011001 +1110101010000111 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010100 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000100000000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010100000 +1111110001010000 +1110011111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000000001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0100101100001010 +1110101010000111 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010100 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000011111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000000001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010100 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111010101001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000100000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110001100001000 +0100101001111100 +1110101010000111 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0100101110100101 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0100101110110110 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111010101001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0100101111001010 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111010101001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0100101111100000 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111010101001000 +0000000000000000 +1111110010101000 +1111110000010000 +0100101111101100 +1110001100000101 +0100110000000011 +1110101010000111 +0000000000010100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0110101011011001 +1110110000010000 +0000000000001110 +1110001100001000 +0100101111111110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001110001110111 +1110110000010000 +0000000000001110 +1110001100001000 +0100110000011100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000010111 +1110001100001000 +0000000000100000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000101100000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001101010100110 +1110110000010000 +0000000000001110 +1110001100001000 +0100110001000000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000010111 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000010110 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010111 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001101010100110 +1110110000010000 +0000000000001110 +1110001100001000 +0100110001110100 +1110110000010000 +0000000001011111 +1110101010000111 +0100110001111000 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000010101 +1110001100001000 +0000000000100000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0100101001001101 +1110110000010000 +0000000000001110 +1110001100001000 +0100110010001111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1110110000010000 +0000000000001101 +1110001100001000 +0110100110011010 +1110110000010000 +0000000000001110 +1110001100001000 +0100110010101101 +1110110000010000 +0000000001011111 +1110101010000111 +0100110010110001 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0100110010111000 +1110001100000101 +0100110011001011 +1110101010000111 +0000000000000000 +1110110000010000 +0000000000001101 +1110001100001000 +0100111001001000 +1110110000010000 +0000000000001110 +1110001100001000 +0100110011000100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0100110110000100 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1110110000010000 +0000000000001101 +1110001100001000 +0110100110100010 +1110110000010000 +0000000000001110 +1110001100001000 +0100110011011110 +1110110000010000 +0000000001011111 +1110101010000111 +0100110011100010 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0100110011101001 +1110001100000101 +0100110011111100 +1110101010000111 +0000000000000000 +1110110000010000 +0000000000001101 +1110001100001000 +0100111010100110 +1110110000010000 +0000000000001110 +1110001100001000 +0100110011110101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0100110110000100 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0100101001001101 +1110110000010000 +0000000000001110 +1110001100001000 +0100110100001111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000010101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0100110100100100 +1110001100000101 +0100110101001100 +1110101010000111 +0000000000010111 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000010111 +1110001100001000 +0000000000010110 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000010110 +1110001100001000 +0000000000010111 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000100000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0100110101011100 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0100110101100011 +1110001100000101 +0100110101110110 +1110101010000111 +0000000000000000 +1110110000010000 +0000000000001101 +1110001100001000 +0100111001001000 +1110110000010000 +0000000000001110 +1110001100001000 +0100110101101111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0100110110000100 +1110101010000111 +0000000000010101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000010101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000000 +1111110000100000 +1110101010001000 +1110110111110000 +1110101010001000 +0000000000000000 +1110011111001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0110001011111011 +1110110000010000 +0000000000001110 +1110001100001000 +0100110110100100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0100110110111100 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0100111000000111 +1110001100000101 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0110001100010001 +1110110000010000 +0000000000001110 +1110001100001000 +0100110111011110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0100110010011010 +1110110000010000 +0000000000001110 +1110001100001000 +0100110111101010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0100110110101010 +1110101010000111 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000011000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0110011010110011 +1110110000010000 +0000000000001110 +1110001100001000 +0100111000100110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000011000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0100110110001010 +1110110000010000 +0000000000001110 +1110001100001000 +0100111000111101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000010110 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000101100000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000010111 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000010110 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000010111 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000010101 +1110001100001000 +0000000000010110 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0001111111000000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0100111010001110 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0100111010010101 +1110001100000101 +0100111010100000 +1110101010000111 +0000000000100000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000010110 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000010101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0100111010110011 +1110001100000101 +0100111101000000 +1110101010000111 +0000000000010111 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0100111011000001 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0100111011001000 +1110001100000101 +0100111011110010 +1110101010000111 +0000000000010111 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000010111 +1110001100001000 +0000000000010110 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000010110 +1110001100001000 +0100111100110101 +1110101010000111 +0000000000011111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000010111 +1110001100001000 +0000000000010110 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000100000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0100111100001101 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0100111100010100 +1110001100000101 +0100111100011111 +1110101010000111 +0001111111000000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000010110 +1110001100001000 +0000000000010110 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000101000001 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000010110 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000010101 +1110001100001000 +0100111101001100 +1110101010000111 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000010101 +1110001100001000 +0000000000100000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0100101001001101 +1110110000010000 +0000000000001110 +1110001100001000 +0100111101011110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000000 +1111110111101000 +1110110010100000 +1110101010001000 +0100000000000000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000011011 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000011100 +1110001100001000 +0000000000010001 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0001011010110000 +1110110000010000 +0000000000001110 +1110001100001000 +0100111110010110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000011101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000011101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0100111111010101 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0101000001110000 +1110001100000101 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000011101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000011101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0100111111000100 +1110101010000111 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000000 +1111110111101000 +1110110010100000 +1110101010001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0010000000000000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0101000010001011 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0101000011010111 +1110001100000101 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011011 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0101000001111010 +1110101010000111 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000011100 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0101000011101010 +1110001100000101 +0101000100111110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011011 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011011 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111010101001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0101000110010011 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011011 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011011 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000000001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000011100 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000011 +1110110000010000 +1110001110010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110101010001000 +0101000110101101 +1110001100000001 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0101000111000011 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000111111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0101000111010100 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111010101001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0101000111101000 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111010101001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000011111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0101000111111110 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111010101001000 +0000000000000000 +1111110010101000 +1111110000010000 +0101001000001010 +1110001100000101 +0101001000100001 +1110101010000111 +0000000000000111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0110101011011001 +1110110000010000 +0000000000001110 +1110001100001000 +0101001000011100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001110001110111 +1110110000010000 +0000000000001110 +1110001100001000 +0101001000111010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001101010100110 +1110110000010000 +0000000000001110 +1110001100001000 +0101001001100000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000100000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001101010100110 +1110110000010000 +0000000000001110 +1110001100001000 +0101001010000100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110001100001000 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0101000011011101 +1110110000010000 +0000000000001110 +1110001100001000 +0101001011001001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000010 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0101001011100011 +1110001100000101 +0101001100000100 +1110101010000111 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0101000110101011 +1110110000010000 +0000000000001110 +1110001100001000 +0101001011111101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0101001100100011 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0101000110101011 +1110110000010000 +0000000000001110 +1110001100001000 +0101001100011110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000001011 +1110110000010000 +1110001110010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110101010001000 +0101001100101011 +1110001100000001 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0101001101000001 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000010 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000111111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0101001101010011 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111010101001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0101001101100111 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111010101001000 +0000000000000010 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000011111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0101001101111111 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111010101001000 +0000000000000000 +1111110010101000 +1111110000010000 +0101001110001011 +1110001100000101 +0101001110100010 +1110101010000111 +0000000000001000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0110101011011001 +1110110000010000 +0000000000001110 +1110001100001000 +0101001110011101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000010 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0001101001110110 +1110110000010000 +0000000000001110 +1110001100001000 +0101001111000010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000010 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0001101001110110 +1110110000010000 +0000000000001110 +1110001100001000 +0101001111101011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0101010000000111 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000110 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0101010000101111 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000000001000 +0000000000000001 +1111110000010000 +0000000000000110 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000010 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0101010001010011 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000000001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111010101001000 +0000000000000000 +1111110010101000 +1111110000010000 +0101010001100100 +1110001100000101 +0101010011000010 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000010 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000010 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000100 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000010 +1111110111100000 +1110110111100000 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000010 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000010 +1111110111100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000100 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000010 +1111110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000110 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0101010011010010 +1110001100000101 +0101010101010100 +1110101010000111 +0000000000000001 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000100 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000010 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000001000 +1110000010010000 +0000000000001101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000001101 +1111110000100000 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0101010101000110 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000001 +1111110000010000 +0000000000000111 +1110000010010000 +0000000000001101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000001101 +1111110000100000 +1110001100001000 +0101010110100010 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000010 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000001000 +1110000010010000 +0000000000001101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000001101 +1111110000100000 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0101010110010110 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000001 +1111110000010000 +0000000000000111 +1110000010010000 +0000000000001101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000001101 +1111110000100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001101010100110 +1110110000010000 +0000000000001110 +1110001100001000 +0101010110111100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000001 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001101010100110 +1110110000010000 +0000000000001110 +1110001100001000 +0101010111101110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000001 +1111110000010000 +0000000000001001 +1110000010010000 +0000000000001101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000001101 +1111110000100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001101010100110 +1110110000010000 +0000000000001110 +1110001100001000 +0101011000100010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000001 +1111110000010000 +0000000000001010 +1110000010010000 +0000000000001101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000001101 +1111110000100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000110 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000001101 +1110001100001000 +0101001011010100 +1110110000010000 +0000000000001110 +1110001100001000 +0101011001010001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000001000 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0101011001101010 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0101011101001100 +1110001100000101 +0000000000000001 +1111110000010000 +0000000000000101 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0101011010000011 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0101011010001010 +1110001100000101 +0101011010101101 +1110101010000111 +0000000000000001 +1111110000010000 +0000000000000101 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000001001 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0101011100001100 +1110101010000111 +0000000000000001 +1111110000010000 +0000000000000101 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000001010 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000111 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0101011011011110 +1110001100000101 +0101011011110110 +1110101010000111 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0101011100001100 +1110101010000111 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000110 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1110110000010000 +0000000000001101 +1110001100001000 +0101001011010100 +1110110000010000 +0000000000001110 +1110001100001000 +0101011101000101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0101011001010110 +1110101010000111 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000001001 +1110110000010000 +1110001110010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110101010001000 +0101011101010100 +1110001100000001 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0101011101101110 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0101011110000010 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111010101001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0101011110010110 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111010101001000 +0000000000000010 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000111111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0101011110101101 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111010101001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0101011111000001 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111010101001000 +0000000000000010 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000011111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0101011111011001 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111010101001000 +0000000000000000 +1111110010101000 +1111110000010000 +0101011111100101 +1110001100000101 +0101011111111100 +1110101010000111 +0000000000001001 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0110101011011001 +1110110000010000 +0000000000001110 +1110001100001000 +0101011111110111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001110001110111 +1110110000010000 +0000000000001110 +1110001100001000 +0101100000010101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001101010100110 +1110110000010000 +0000000000001110 +1110001100001000 +0101100000111111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000001 +1111110000010000 +0000000000000111 +1110000010010000 +0000000000001101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000001101 +1111110000100000 +1110001100001000 +0000000000000010 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001110001110111 +1110110000010000 +0000000000001110 +1110001100001000 +0101100001101010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000010 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000100 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001101010100110 +1110110000010000 +0000000000001110 +1110001100001000 +0101100010010110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000001 +1111110000010000 +0000000000001000 +1110000010010000 +0000000000001101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000001101 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000111 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000001000 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000011101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000100000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001101010100110 +1110110000010000 +0000000000001110 +1110001100001000 +0101100100110011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000001 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000100 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0101100101111001 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0101101011001101 +1110001100000101 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110001100001000 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0101100110101110 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0101100110110101 +1110001100000101 +0101100111100110 +1110101010000111 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000101 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000110 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000000001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0101000011011101 +1110110000010000 +0000000000001110 +1110001100001000 +0101100111011111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0101101010010000 +1110101010000111 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000110 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0101000011011101 +1110110000010000 +0000000000001110 +1110001100001000 +0101101000000010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0101101000101111 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0101101001101111 +1110001100000101 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010100000 +1111110001010000 +1110011111001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0101000011011101 +1110110000010000 +0000000000001110 +1110001100001000 +0101101001010010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0101101000011101 +1110101010000111 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000101 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0101000011011101 +1110110000010000 +0000000000001110 +1110001100001000 +0101101010001011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000010 +1111110111100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000100000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0101100101100101 +1110101010000111 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000001011 +1110110000010000 +1110001110010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110101010001000 +0101101011010101 +1110001100000001 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0010000011010110 +1110110000010000 +0000000000001110 +1110001100001000 +0101101011110111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000001 +1111110000010000 +0000000000000111 +1110000010010000 +0000000000001101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000001101 +1111110000100000 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0010000010100111 +1110110000010000 +0000000000001110 +1110001100001000 +0101101100011110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000001 +1111110000010000 +0000000000001000 +1110000010010000 +0000000000001101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000001101 +1111110000100000 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010100000 +1111110001010000 +1110011111001000 +0101101100111101 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000100000000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0101101101001110 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000000001000 +0000000000000001 +1111110000010000 +0000000000000111 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000001000000000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0101101101100110 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000000001000 +0000000000000001 +1111110000010000 +0000000000001000 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010100000 +1111110001010000 +1110011111001000 +0101101110000000 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000000001000 +0000000000000000 +1111110010101000 +1111110000010000 +0101101110001100 +1110001100000101 +0101111001010001 +1110101010000111 +0000000000000001 +1111110000010000 +0000000000000111 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0010000010100111 +1110110000010000 +0000000000001110 +1110001100001000 +0101101110100101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000001 +1111110000010000 +0000000000000111 +1110000010010000 +0000000000001101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000001101 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000001000 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000111111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0010000011010110 +1110110000010000 +0000000000001110 +1110001100001000 +0101101111001100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000001 +1111110000010000 +0000000000001000 +1110000010010000 +0000000000001101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000001101 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000111 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001110001110111 +1110110000010000 +0000000000001110 +1110001100001000 +0101101111110011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000111 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001101010100110 +1110110000010000 +0000000000001110 +1110001100001000 +0101110000011011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000001 +1111110000010000 +0000000000001001 +1110000010010000 +0000000000001101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000001101 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000001000 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001110001110111 +1110110000010000 +0000000000001110 +1110001100001000 +0101110001000111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000001000 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000010000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001101010100110 +1110110000010000 +0000000000001110 +1110001100001000 +0101110001110001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000001 +1111110000010000 +0000000000001010 +1110000010010000 +0000000000001101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000001101 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000001001 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000011101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000001010 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000011101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000100000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001101010100110 +1110110000010000 +0000000000001110 +1110001100001000 +0101110100001100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000110 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000110 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0101110101101011 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0101110101110010 +1110001100000101 +0101110110100011 +1110101010000111 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000100 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000101 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000000001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0101000011011101 +1110110000010000 +0000000000001110 +1110001100001000 +0101110110011100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0101111001010001 +1110101010000111 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000101 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0101000011011101 +1110110000010000 +0000000000001110 +1110001100001000 +0101110110111111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0101110111101110 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0101111000101110 +1110001100000101 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010100000 +1111110001010000 +1110011111001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0101000011011101 +1110110000010000 +0000000000001110 +1110001100001000 +0101111000010001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0101110111011010 +1110101010000111 +0000000000000001 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000100 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0101000011011101 +1110110000010000 +0000000000001110 +1110001100001000 +0101111001001100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000011 +1110110000010000 +0000000000001101 +1110001100001000 +0101101011010011 +1110110000010000 +0000000000001110 +1110001100001000 +0101111010100000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000011 +1110110000010000 +0000000000001101 +1110001100001000 +0101101011010011 +1110110000010000 +0000000000001110 +1110001100001000 +0101111011101110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000011 +1110110000010000 +0000000000001101 +1110001100001000 +0101101011010011 +1110110000010000 +0000000000001110 +1110001100001000 +0101111100111101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000011 +1110110000010000 +0000000000001101 +1110001100001000 +0101101011010011 +1110110000010000 +0000000000001110 +1110001100001000 +0101111110001100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000011 +1110110000010000 +1110001110010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110101010001000 +0101111110011001 +1110001100000001 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0101111110101111 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000111111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0101111111000000 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111010101001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0101111111010100 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111010101001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000011111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0101111111101010 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111010101001000 +0000000000000000 +1111110010101000 +1111110000010000 +0101111111110110 +1110001100000101 +0110000000001101 +1110101010000111 +0000000000001100 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0110101011011001 +1110110000010000 +0000000000001110 +1110001100001000 +0110000000001000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0110000000101001 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000111111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0110000001000111 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111010101001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0110000001101000 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111010101001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000011111111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0110000010001011 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111010101001000 +0000000000000000 +1111110010101000 +1111110000010000 +0110000010010111 +1110001100000101 +0110000010101110 +1110101010000111 +0000000000001101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0110101011011001 +1110110000010000 +0000000000001110 +1110001100001000 +0110000010101001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000010 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000010 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000100 +1110110000010000 +0000000000001101 +1110001100001000 +0101111001010111 +1110110000010000 +0000000000001110 +1110001100001000 +0110000011111100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0110000100010011 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0110001000001011 +1110001100000101 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0110000100101011 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0110000100110010 +1110001100000101 +0110000101101100 +1110101010000111 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001101010100110 +1110110000010000 +0000000000001110 +1110001100001000 +0110000101010011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110001100001000 +0110000111000110 +1110101010000111 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001101010100110 +1110110000010000 +0000000000001110 +1110001100001000 +0110000110011001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000100 +1110110000010000 +0000000000001101 +1110001100001000 +0101111001010111 +1110110000010000 +0000000000001110 +1110001100001000 +0110001000000100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0110000100000001 +1110101010000111 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0010000111000011 +1110110000010000 +0000000000001110 +1110001100001000 +0110001000100011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0110001000110111 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0110001000111110 +1110001100000101 +0110001001010101 +1110101010000111 +0000000000001110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0110101011011001 +1110110000010000 +0000000000001110 +1110001100001000 +0110001001010000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0110001001100100 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0110001001101011 +1110001100000101 +0110001010000100 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0001011010110000 +1110110000010000 +0000000000001110 +1110001100001000 +0110001001111110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110000100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110110111100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0110001010111111 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0110001011000110 +1110001100000101 +0110001011011110 +1110101010000111 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0001011011110101 +1110110000010000 +0000000000001110 +1110001100001000 +0110001011011001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0010010010001101 +1110110000010000 +0000000000001110 +1110001100001000 +0110001011110000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000000011 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0110001100101100 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0110001100111111 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111010101001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0110001101010111 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111010101001000 +0000000000000000 +1111110010101000 +1111110000010000 +0110001101100011 +1110001100000101 +0110001101111010 +1110101010000111 +0000000000001111 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0110101011011001 +1110110000010000 +0000000000001110 +1110001100001000 +0110001101110101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0110001110110110 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0110001111001001 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111010101001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0110001111100001 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111010101001000 +0000000000000000 +1111110010101000 +1111110000010000 +0110001111101101 +1110001100000101 +0110010000000100 +1110101010000111 +0000000000010000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0110101011011001 +1110110000010000 +0000000000001110 +1110001100001000 +0110001111111111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000010 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000000011 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0110010001011010 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0110010001100001 +1110001100000101 +0110010001111000 +1110101010000111 +0000000000010001 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0110101011011001 +1110110000010000 +0000000000001110 +1110001100001000 +0110010001110011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000011 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000000011 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110110111100000 +1110001100001000 +0000000000000011 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000000011 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0110010011100101 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0110010011101100 +1110001100000101 +0110010100000011 +1110101010000111 +0000000000010010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0110101011011001 +1110110000010000 +0000000000001110 +1110001100001000 +0110010011111110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000011 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110110111100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000101 +1110110000010000 +1110001110010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110101010001000 +0110010100100011 +1110001100000001 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000000011 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0110010101000110 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0110010101001101 +1110001100000101 +0110010101010011 +1110101010000111 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000101101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0110010110001000 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0110010110001111 +1110001100000101 +0110010110101001 +1110101010000111 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0110010110111100 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000001 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000000001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0110011010001001 +1110001100000101 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110001100001000 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0110011000010011 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001001 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0110011000100101 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111010101001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000001 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0110011001000101 +1110001100000101 +0110011010000111 +1110101010000111 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001101010100110 +1110110000010000 +0000000000001110 +1110001100001000 +0110011001011110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0110010110101001 +1110101010000111 +0000000000000001 +1111110000010000 +0000000000000100 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0110011010011001 +1110001100000101 +0110011010101010 +1110101010000111 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010100000 +1111110001010000 +1110011111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110101010000111 +0000000000000100 +1110110000010000 +1110001110010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110101010001000 +0110011010110101 +1110001100000001 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1110001100001000 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0110011011010111 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0110011011011110 +1110001100000101 +0110011011110101 +1110101010000111 +0000000000010011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0110101011011001 +1110110000010000 +0000000000001110 +1110001100001000 +0110011011110000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000110 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0001011010110000 +1110110000010000 +0000000000001110 +1110001100001000 +0110011100000111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0110011100011101 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0110011100100100 +1110001100000101 +0110011101000100 +1110101010000111 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110110111100000 +1110110111100000 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010100000 +1111110001010000 +1110011111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000010 +1111110111100000 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0110011101100000 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0110100000000110 +1110001100000101 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001110001110111 +1110110000010000 +0000000000001110 +1110001100001000 +0110011110000001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110111100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000001010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0001101010100110 +1110110000010000 +0000000000001110 +1110001100001000 +0110011111000001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000001 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000010 +1111110111100000 +1110001100001000 +0110011101010001 +1110101010000111 +0000000000000001 +1111110000010000 +0000000000000011 +1110000010100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0110100000010110 +1110001100000101 +0110100001011100 +1110101010000111 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000101101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000011 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0110100001101110 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0110100001110101 +1110001100000101 +0110100010001100 +1110101010000111 +0000000000010011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0110101011011001 +1110110000010000 +0000000000001110 +1110001100001000 +0110100010000111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0110100010011011 +1110110000010000 +0000000000000110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0110100010100010 +1110001100000101 +0110100011011011 +1110101010000111 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000110000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110110111100000 +1110001100001000 +0110100101111011 +1110101010000111 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110110111100000 +1110001100001000 +0000000000000011 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0110100011111001 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0110100101111011 +1110001100000101 +0000000000000011 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000011 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000100 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1110001100001000 +0000000000000101 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000100 +1111110000100000 +1110001100001000 +0000000000000011 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000010001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000011 +1111110111100000 +1110110111100000 +1110001100001000 +0110100011100110 +1110101010000111 +0000000000000001 +1111110111100000 +1110110111100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0001011011110101 +1110110000010000 +0000000000001110 +1110001100001000 +0110100110001111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000010000000 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110101010000111 +0000000010000001 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110101010000111 +0000000000100010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000110110 +1110101010000111 +0000000000000000 +1110110000010000 +0000000000001101 +1110001100001000 +0010000100000101 +1110110000010000 +0000000000001110 +1110001100001000 +0110100110111110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1110110000010000 +0000000000001101 +1110001100001000 +0001100101101001 +1110110000010000 +0000000000001110 +1110001100001000 +0110100111001111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1110110000010000 +0000000000001101 +1110001100001000 +0100111101101001 +1110110000010000 +0000000000001110 +1110001100001000 +0110100111100000 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1110110000010000 +0000000000001101 +1110001100001000 +0010011001111110 +1110110000010000 +0000000000001110 +1110001100001000 +0110100111110001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1110110000010000 +0000000000001101 +1110001100001000 +0001011100011110 +1110110000010000 +0000000000001110 +1110001100001000 +0110101000000010 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1110110000010000 +0000000000001101 +1110001100001000 +0000111011111101 +1110110000010000 +0000000000001110 +1110001100001000 +0110101000010011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1110110000010000 +0000000000001101 +1110001100001000 +0110101000101001 +1110110000010000 +0000000000001110 +1110001100001000 +0110101000100100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0110101000111010 +1110001100000101 +0110101000101001 +1110101010000111 +0000000000000000 +1111110111101000 +1110110010100000 +1110101010001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0110101001001101 +1110110000010000 +0000000000100110 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0110101001010100 +1110001100000101 +0110101001101001 +1110101010000111 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0110101011011001 +1110110000010000 +0000000000001110 +1110001100001000 +0110101001100100 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0110101001111000 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0110101011010011 +1110001100000101 +0000000000110010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0110101010011011 +1110110000010000 +0000000000010110 +1110101010000111 +0000000000000000 +1111110010100000 +1111110001001000 +0000000000000000 +1111110010101000 +1111110000010000 +0110101010111011 +1110001100000101 +0000000000000001 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000001 +1111110000100000 +1110001100001000 +0110101010001100 +1110101010000111 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000000 +1111110111001000 +1111110010100000 +1110111111001000 +0000000000000000 +1111110010101000 +1111110000010000 +1110110010100000 +1111000111001000 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000010 +1111110000100000 +1110001100001000 +0110101001101001 +1110101010000111 +0000000000000000 +1111110111001000 +1111110010100000 +1110101010001000 +0000000000110110 +1110101010000111 +0000000000000011 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0110001000010001 +1110110000010000 +0000000000001110 +1110001100001000 +0110101011101011 +1110110000010000 +0000000001011111 +1110101010000111 +0000000001000101 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0110010000111011 +1110110000010000 +0000000000001110 +1110001100001000 +0110101011111101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000001010010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0110010000111011 +1110110000010000 +0000000000001110 +1110001100001000 +0110101100001111 +1110110000010000 +0000000001011111 +1110101010000111 +0000000001010010 +1110110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000010 +1110110000010000 +0000000000001101 +1110001100001000 +0110010000111011 +1110110000010000 +0000000000001110 +1110001100001000 +0110101100100001 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0100110110001010 +1110110000010000 +0000000000001110 +1110001100001000 +0110101100101101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000010 +1111110000100000 +1111110000010000 +0000000000000000 +1111110111101000 +1110110010100000 +1110001100001000 +0000000000000001 +1110110000010000 +0000000000001101 +1110001100001000 +0100111000001101 +1110110000010000 +0000000000001110 +1110001100001000 +0110101101000101 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 +0000000000000000 +1110110000010000 +0000000000001101 +1110001100001000 +0110101000101001 +1110110000010000 +0000000000001110 +1110001100001000 +0110101101010110 +1110110000010000 +0000000001011111 +1110101010000111 +0000000000000000 +1111110010101000 +1111110000010000 +0000000000000101 +1110001100001000 diff --git a/projects/06/pong/PongL.nosymbol.asm b/projects/06/pong/PongL.nosymbol.asm new file mode 100644 index 0000000..8b80f7a --- /dev/null +++ b/projects/06/pong/PongL.nosymbol.asm @@ -0,0 +1,27483 @@ +@256 +D=A +@0 +M=D +@133 +0;JMP +@15 +M=D +@0 +AM=M-1 +D=M +A=A-1 +D=M-D +M=0 +@19 +D;JNE +@0 +A=M-1 +M=-1 +@15 +A=M +0;JMP +@15 +M=D +@0 +AM=M-1 +D=M +A=A-1 +D=M-D +M=0 +@35 +D;JLE +@0 +A=M-1 +M=-1 +@15 +A=M +0;JMP +@15 +M=D +@0 +AM=M-1 +D=M +A=A-1 +D=M-D +M=0 +@51 +D;JGE +@0 +A=M-1 +M=-1 +@15 +A=M +0;JMP +@5 +D=A +@1 +A=M-D +D=M +@13 +M=D +@0 +AM=M-1 +D=M +@2 +A=M +M=D +D=A +@0 +M=D+1 +@1 +D=M +@14 +AM=D-1 +D=M +@4 +M=D +@14 +AM=M-1 +D=M +@3 +M=D +@14 +AM=M-1 +D=M +@2 +M=D +@14 +AM=M-1 +D=M +@1 +M=D +@13 +A=M +0;JMP +@0 +A=M +M=D +@1 +D=M +@0 +AM=M+1 +M=D +@2 +D=M +@0 +AM=M+1 +M=D +@3 +D=M +@0 +AM=M+1 +M=D +@4 +D=M +@0 +AM=M+1 +M=D +@4 +D=A +@13 +D=D+M +@0 +D=M-D +@2 +M=D +@0 +MD=M+1 +@1 +M=D +@14 +A=M +0;JMP +@0 +D=A +@13 +M=D +@27058 +D=A +@14 +M=D +@145 +D=A +@95 +0;JMP +@15 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@8643 +D=A +@14 +M=D +@163 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@3 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +A=M +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +A=M+1 +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=M +@10 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@2 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@3 +D=M +@11 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@2 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=M +@12 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@2 +D=M +@5 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@3 +D=M +@13 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@0 +M=M+1 +A=M-1 +M=0 +@3 +D=M +@14 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@3 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@387 +D=A +@14 +M=D +@333 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@3 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@3 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@9357 +D=A +@14 +M=D +@376 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +A=M-1 +M=!M +@1 +D=A +@13 +M=D +@20889 +D=A +@14 +M=D +@418 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@3 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@514 +D=A +@14 +M=D +@441 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@1 +D=A +@13 +M=D +@20889 +D=A +@14 +M=D +@480 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@3 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@514 +D=A +@14 +M=D +@503 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@5 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@5 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@4 +D=A +@13 +M=D +@22354 +D=A +@14 +M=D +@588 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@5 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@54 +0;JMP +@3 +D=A +D=D-1 +@0 +AM=M+1 +A=A-1 +M=0 +@654 +D;JGT +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +A=A+1 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@6774 +D=A +@14 +M=D +@747 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@3 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@6774 +D=A +@14 +M=D +@774 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@798 +D=A +@38 +0;JMP +@3 +D=M +@7 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@3 +D=M +@7 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@826 +D;JNE +@930 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@886 +D=A +@38 +0;JMP +@3 +D=M +@8 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@916 +D=A +@38 +0;JMP +@3 +D=M +@9 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@991 +0;JMP +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@948 +D=A +@38 +0;JMP +@3 +D=M +@8 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@979 +D=A +@38 +0;JMP +@3 +D=M +@9 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@1016 +D=A +@95 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@1062 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@1109 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@3 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@452 +D=A +@14 +M=D +@1156 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@3 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@1178 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +@1185 +D;JNE +@1219 +0;JMP +@3 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=M +@5 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@1401 +0;JMP +@3 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=M +@6 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@3 +D=M +@9 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1267 +D;JNE +@1335 +0;JMP +@3 +D=M +@7 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1283 +D;JNE +@1309 +0;JMP +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@4 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@3 +A=M +M=D +@1333 +0;JMP +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@4 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@3 +A=M+1 +M=D +@1401 +0;JMP +@3 +D=M +@7 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1351 +D;JNE +@1377 +0;JMP +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@4 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@3 +A=M +M=D +@1401 +0;JMP +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@4 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@3 +A=M+1 +M=D +@3 +D=M +@8 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1417 +D;JNE +@1485 +0;JMP +@3 +D=M +@7 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1433 +D;JNE +@1459 +0;JMP +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@4 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@3 +A=M+1 +M=D +@1483 +0;JMP +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@4 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@3 +A=M +M=D +@1551 +0;JMP +@3 +D=M +@7 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1501 +D;JNE +@1527 +0;JMP +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@4 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@3 +A=M+1 +M=D +@1551 +0;JMP +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@4 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@3 +A=M +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=M +@10 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1571 +D=A +@22 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@1581 +D;JNE +@1612 +0;JMP +@0 +M=M+1 +A=M-1 +M=1 +@3 +D=M +@14 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@3 +D=M +@10 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +A=M +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=M +@11 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1632 +D=A +@38 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@1642 +D;JNE +@1675 +0;JMP +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=M +@14 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@3 +D=M +@11 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +A=M +M=D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=M +@12 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1695 +D=A +@22 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@1705 +D;JNE +@1738 +0;JMP +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=M +@14 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@3 +D=M +@12 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +A=M+1 +M=D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=M +@13 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1758 +D=A +@38 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@1768 +D;JNE +@1801 +0;JMP +@4 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=M +@14 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@3 +D=M +@13 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +A=M+1 +M=D +@3 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@387 +D=A +@14 +M=D +@1819 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@3 +D=M +@14 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@5 +D=A +D=D-1 +@0 +AM=M+1 +A=A-1 +M=0 +@1837 +D;JGT +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@10 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@7287 +D=A +@14 +M=D +@1882 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +M=D +@3 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@10 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@7287 +D=A +@14 +M=D +@1916 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@1939 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@1946 +D;JNE +@1963 +0;JMP +@10 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@2086 +0;JMP +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@1979 +D=A +@38 +0;JMP +@0 +A=M-1 +M=!M +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@1997 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D&M +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@2018 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +A=M-1 +D=!M +M=D+1 +@2042 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D&M +@0 +AM=M-1 +D=M +@2054 +D;JNE +@2071 +0;JMP +@20 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@2086 +0;JMP +@5 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@3 +D=M +@14 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@2103 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@2110 +D;JNE +@2227 +0;JMP +@506 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@50 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +A=M-1 +D=!M +M=D+1 +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@2153 +D=A +@95 +0;JMP +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@7287 +D=A +@14 +M=D +@2173 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@2214 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@2616 +0;JMP +@3 +D=M +@14 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2246 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@2253 +D;JNE +@2364 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@50 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@2290 +D=A +@95 +0;JMP +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@7287 +D=A +@14 +M=D +@2310 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@2351 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@2616 +0;JMP +@3 +D=M +@14 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2383 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@2390 +D;JNE +@2507 +0;JMP +@250 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@25 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +A=M-1 +D=!M +M=D+1 +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@2432 +D=A +@95 +0;JMP +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@7287 +D=A +@14 +M=D +@2453 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@2494 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@2616 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@25 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@2543 +D=A +@95 +0;JMP +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@7287 +D=A +@14 +M=D +@2564 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@2605 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@3 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@13 +M=D +@652 +D=A +@14 +M=D +@2648 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@5 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@8643 +D=A +@14 +M=D +@2677 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@3 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +A=M +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +A=M+1 +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +M=D +@2 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +A=A+1 +M=D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@3 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@2827 +D=A +@14 +M=D +@2773 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@3 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@3 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@9357 +D=A +@14 +M=D +@2816 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +A=M-1 +M=!M +@1 +D=A +@13 +M=D +@20889 +D=A +@14 +M=D +@2858 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@3 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@2954 +D=A +@14 +M=D +@2881 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@1 +D=A +@13 +M=D +@20889 +D=A +@14 +M=D +@2920 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@3 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@2954 +D=A +@14 +M=D +@2943 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@4 +D=A +@13 +M=D +@22354 +D=A +@14 +M=D +@3033 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@3 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@2892 +D=A +@14 +M=D +@3163 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +M=D +@3 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@2827 +D=A +@14 +M=D +@3200 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@3 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@3240 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@3247 +D;JNE +@3525 +0;JMP +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@4 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@3 +A=M +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@3286 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +@3293 +D;JNE +@3303 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@0 +AM=M-1 +D=M +@3 +A=M +M=D +@0 +M=M+1 +A=M-1 +M=0 +@1 +D=A +@13 +M=D +@20889 +D=A +@14 +M=D +@3319 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@4 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@4 +D=A +@13 +M=D +@22354 +D=A +@14 +M=D +@3424 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +A=M-1 +M=!M +@1 +D=A +@13 +M=D +@20889 +D=A +@14 +M=D +@3448 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@4 +D=A +@13 +M=D +@22354 +D=A +@14 +M=D +@3518 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@3831 +0;JMP +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@4 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@3 +A=M +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@511 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3579 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +@3586 +D;JNE +@3611 +0;JMP +@511 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@3 +A=M +M=D +@0 +M=M+1 +A=M-1 +M=0 +@1 +D=A +@13 +M=D +@20889 +D=A +@14 +M=D +@3627 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@4 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@4 +D=A +@13 +M=D +@22354 +D=A +@14 +M=D +@3706 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +A=M-1 +M=!M +@1 +D=A +@13 +M=D +@20889 +D=A +@14 +M=D +@3730 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@4 +D=A +@13 +M=D +@22354 +D=A +@14 +M=D +@3826 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@0 +AM=M+1 +A=A-1 +M=0 +@0 +D=A +@13 +M=D +@4508 +D=A +@14 +M=D +@3853 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +D=A +@13 +M=D +@4531 +D=A +@14 +M=D +@3870 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@4539 +D=A +@14 +M=D +@3895 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@4419 +D=A +@14 +M=D +@3919 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@7 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@8643 +D=A +@14 +M=D +@3948 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@3 +M=D +@0 +D=A +@13 +M=D +@20598 +D=A +@14 +M=D +@3965 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@50 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@230 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@229 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=M +@6 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@7 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@4 +D=A +@13 +M=D +@2659 +D=A +@14 +M=D +@4026 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@3 +A=M +M=D +@253 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@222 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@511 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@229 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@13 +M=D +@145 +D=A +@14 +M=D +@4076 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@3 +A=M+1 +M=D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@400 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@3 +D=A +@13 +M=D +@652 +D=A +@14 +M=D +@4111 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@238 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@511 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@240 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@4 +D=A +@13 +M=D +@22354 +D=A +@14 +M=D +@4150 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@22 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@2 +D=A +@13 +M=D +@19350 +D=A +@14 +M=D +@4177 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@8 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@25105 +D=A +@14 +M=D +@4200 +D=A +@95 +0;JMP +@83 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@25659 +D=A +@14 +M=D +@4218 +D=A +@95 +0;JMP +@99 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@25659 +D=A +@14 +M=D +@4236 +D=A +@95 +0;JMP +@111 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@25659 +D=A +@14 +M=D +@4254 +D=A +@95 +0;JMP +@114 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@25659 +D=A +@14 +M=D +@4272 +D=A +@95 +0;JMP +@101 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@25659 +D=A +@14 +M=D +@4290 +D=A +@95 +0;JMP +@58 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@25659 +D=A +@14 +M=D +@4308 +D=A +@95 +0;JMP +@32 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@25659 +D=A +@14 +M=D +@4326 +D=A +@95 +0;JMP +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@25659 +D=A +@14 +M=D +@4344 +D=A +@95 +0;JMP +@1 +D=A +@13 +M=D +@19850 +D=A +@14 +M=D +@4356 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +A=A+1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@3 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@2786 +D=A +@14 +M=D +@4450 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@346 +D=A +@14 +M=D +@4474 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@3 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@9357 +D=A +@14 +M=D +@4497 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@0 +D=A +@13 +M=D +@3930 +D=A +@14 +M=D +@4520 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@16 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@16 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@0 +AM=M+1 +A=A-1 +M=0 +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@3 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +A=M-1 +M=!M +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@4943 +D;JNE +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@4590 +D=A +@6 +0;JMP +@3 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +A=A-1 +M=D&M +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@4682 +D;JNE +@0 +D=A +@13 +M=D +@5924 +D=A +@14 +M=D +@4627 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@3211 +D=A +@14 +M=D +@4652 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@3 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@5191 +D=A +@14 +M=D +@4675 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@4575 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@130 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@4699 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@4706 +D;JNE +@4736 +0;JMP +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@2 +D=A +@13 +M=D +@3044 +D=A +@14 +M=D +@4729 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@4831 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@132 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@4753 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@4760 +D;JNE +@4792 +0;JMP +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@3044 +D=A +@14 +M=D +@4785 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@4831 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@140 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@4809 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@4816 +D;JNE +@4831 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +A=A+1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@4846 +D=A +@6 +0;JMP +@0 +A=M-1 +M=!M +@3 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +A=A-1 +M=D&M +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@4941 +D;JNE +@0 +D=A +@13 +M=D +@5924 +D=A +@14 +M=D +@4886 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@3211 +D=A +@14 +M=D +@4911 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@3 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@5191 +D=A +@14 +M=D +@4934 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@4831 +0;JMP +@4555 +0;JMP +@3 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4959 +D;JNE +@5185 +0;JMP +@10 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@19350 +D=A +@14 +M=D +@4983 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@9 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@25105 +D=A +@14 +M=D +@5006 +D=A +@95 +0;JMP +@71 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@25659 +D=A +@14 +M=D +@5024 +D=A +@95 +0;JMP +@97 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@25659 +D=A +@14 +M=D +@5042 +D=A +@95 +0;JMP +@109 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@25659 +D=A +@14 +M=D +@5060 +D=A +@95 +0;JMP +@101 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@25659 +D=A +@14 +M=D +@5078 +D=A +@95 +0;JMP +@32 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@25659 +D=A +@14 +M=D +@5096 +D=A +@95 +0;JMP +@79 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@25659 +D=A +@14 +M=D +@5114 +D=A +@95 +0;JMP +@118 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@25659 +D=A +@14 +M=D +@5132 +D=A +@95 +0;JMP +@101 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@25659 +D=A +@14 +M=D +@5150 +D=A +@95 +0;JMP +@114 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@25659 +D=A +@14 +M=D +@5168 +D=A +@95 +0;JMP +@1 +D=A +@13 +M=D +@19850 +D=A +@14 +M=D +@5180 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@5 +D=A +D=D-1 +@0 +AM=M+1 +A=A-1 +M=0 +@5193 +D;JGT +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@1126 +D=A +@14 +M=D +@5231 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@5254 +D=A +@22 +0;JMP +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=M +@5 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@5275 +D=A +@6 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +A=A-1 +M=D&M +@0 +AM=M-1 +D=M +@5290 +D;JNE +@5802 +0;JMP +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@3078 +D=A +@14 +M=D +@5337 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@3099 +D=A +@14 +M=D +@5362 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +M=D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@599 +D=A +@14 +M=D +@5388 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +M=D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@620 +D=A +@14 +M=D +@5415 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@4 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@5442 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@5449 +D;JNE +@5771 +0;JMP +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@5469 +D=A +@22 +0;JMP +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@5490 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +A=A+1 +M=D +@3 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@5522 +D;JNE +@5771 +0;JMP +@1 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@10 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@5553 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +@5560 +D;JNE +@5576 +0;JMP +@0 +M=M+1 +A=M-1 +M=1 +@0 +A=M-1 +D=!M +M=D+1 +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@5625 +0;JMP +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@10 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@5608 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +@5615 +D;JNE +@5625 +0;JMP +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@3 +D=M +@6 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=M +@6 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@3133 +D=A +@14 +M=D +@5684 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@3 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@22 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@7 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@19350 +D=A +@14 +M=D +@5740 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@3 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@19981 +D=A +@14 +M=D +@5766 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@1835 +D=A +@14 +M=D +@5797 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@5823 +D=A +@22 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@5833 +D;JNE +@5856 +0;JMP +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@27353 +D=A +@14 +M=D +@5851 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@8643 +D=A +@14 +M=D +@5875 +D=A +@95 +0;JMP +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@3 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@9357 +D=A +@14 +M=D +@5907 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@24576 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@8558 +D=A +@14 +M=D +@5942 +D=A +@95 +0;JMP +@54 +0;JMP +@0 +A=M +M=0 +AD=A+1 +M=0 +@0 +M=D+1 +@0 +M=M+1 +A=M-1 +M=0 +@1 +D=A +@13 +M=D +@19610 +D=A +@14 +M=D +@5967 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@5987 +D=A +@6 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@6002 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@6070 +D;JNE +@0 +D=A +@13 +M=D +@5924 +D=A +@14 +M=D +@6027 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@6048 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +@6055 +D;JNE +@6068 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@5972 +0;JMP +@0 +D=A +@13 +M=D +@27042 +D=A +@14 +M=D +@6082 +D=A +@95 +0;JMP +@1 +D=A +@13 +M=D +@19610 +D=A +@14 +M=D +@6094 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@19610 +D=A +@14 +M=D +@6118 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@5 +D=A +D=D-1 +@0 +AM=M+1 +A=A-1 +M=0 +@6134 +D;JGT +@80 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@25105 +D=A +@14 +M=D +@6159 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@19850 +D=A +@14 +M=D +@6186 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +D=A +@13 +M=D +@27034 +D=A +@14 +M=D +@6203 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@0 +D=A +@13 +M=D +@27042 +D=A +@14 +M=D +@6221 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +M=D +@1 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +A=M-1 +M=!M +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@6404 +D;JNE +@0 +D=A +@13 +M=D +@5944 +D=A +@14 +M=D +@6260 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@6284 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@1 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@6312 +D;JNE +@6402 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@6331 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@6338 +D;JNE +@6366 +0;JMP +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@25801 +D=A +@14 +M=D +@6359 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@6402 +0;JMP +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@25659 +D=A +@14 +M=D +@6394 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +M=D +@6228 +0;JMP +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@0 +A=M +M=0 +AD=A+1 +M=0 +@0 +M=D+1 +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@6132 +D=A +@14 +M=D +@6441 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@25889 +D=A +@14 +M=D +@6466 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@25252 +D=A +@14 +M=D +@6491 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@0 +AM=M+1 +A=A-1 +M=0 +@16 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@5808 +D=A +@14 +M=D +@6527 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@17 +M=D +@16 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@5808 +D=A +@14 +M=D +@6550 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@18 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@18 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@15 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6613 +D=A +@38 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@6768 +D;JNE +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@18 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@18 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@18 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@6596 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@6789 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +@6796 +D;JNE +@6813 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +A=M-1 +D=!M +M=D+1 +@0 +AM=M-1 +D=M +@2 +A=M +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@5 +D=A +D=D-1 +@0 +AM=M+1 +A=A-1 +M=0 +@6824 +D;JGT +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@6846 +D=A +@38 +0;JMP +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@6861 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D&M +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@6881 +D=A +@22 +0;JMP +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@6896 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D&M +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@6774 +D=A +@14 +M=D +@6934 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@2 +A=M +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@6774 +D=A +@14 +M=D +@6959 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@2 +A=M+1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@6983 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +@6990 +D;JNE +@7029 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@2 +A=M +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@2 +A=M+1 +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@7048 +D=A +@38 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@7245 +D;JNE +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@18 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D&M +@0 +M=M+1 +A=M-1 +M=0 +@7108 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +@7115 +D;JNE +@7192 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@18 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@2 +A=M +M=D +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +M=D +@7029 +0;JMP +@1 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@7261 +D;JNE +@7278 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +A=M-1 +D=!M +M=D+1 +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@4 +D=A +D=D-1 +@0 +AM=M+1 +A=A-1 +M=0 +@7289 +D;JGT +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@7311 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@7318 +D;JNE +@7341 +0;JMP +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@27353 +D=A +@14 +M=D +@7336 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@7356 +D=A +@38 +0;JMP +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@7371 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D&M +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@7391 +D=A +@22 +0;JMP +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@7406 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D&M +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@17 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@6774 +D=A +@14 +M=D +@7457 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@6774 +D=A +@14 +M=D +@7498 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@2 +A=M +M=D +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +A=M-1 +M=!M +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@7841 +D;JNE +@32767 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@17 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@17 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@7599 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +M=D +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@7626 +D;JNE +@7839 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@17 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@17 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@17 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@17 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@7790 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +M=D +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@7817 +D;JNE +@7839 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@7504 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +A=M-1 +D=!M +M=D+1 +@7860 +D=A +@22 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@8039 +D;JNE +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@17 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@7909 +D=A +@22 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@7919 +D;JNE +@8015 +0;JMP +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@18 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@17 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@2 +A=M +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@7841 +0;JMP +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@8054 +D;JNE +@8071 +0;JMP +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +A=M-1 +D=!M +M=D+1 +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@4 +D=A +D=D-1 +@0 +AM=M+1 +A=A-1 +M=0 +@8082 +D;JGT +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@8104 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +@8111 +D;JNE +@8134 +0;JMP +@4 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@27353 +D=A +@14 +M=D +@8129 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@7 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +A=M-1 +D=!M +M=D+1 +@8165 +D=A +@22 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@8348 +D;JNE +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@18 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@8249 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@8275 +D=A +@22 +0;JMP +@0 +A=M-1 +M=!M +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@8294 +D=A +@38 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +A=A-1 +M=D&M +@0 +AM=M-1 +D=M +@8309 +D;JNE +@8324 +0;JMP +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@8146 +0;JMP +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@8377 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +@8384 +D;JNE +@8397 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@2 +A=M+1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@8424 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +@8431 +D;JNE +@8444 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@2 +A=M+1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@0 +AM=M-1 +D=M +@19 +M=D +@2048 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@19 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@14334 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@2049 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@19 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@2050 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@19 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@19 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@0 +AM=M+1 +A=A-1 +M=0 +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@8662 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +@8669 +D;JNE +@8692 +0;JMP +@5 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@27353 +D=A +@14 +M=D +@8687 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@2048 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@0 +M=M+1 +A=M-1 +M=0 +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@8743 +D=A +@38 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@8787 +D;JNE +@0 +M=M+1 +A=M-1 +M=1 +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@8704 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@16379 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@8816 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +@8823 +D;JNE +@8846 +0;JMP +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@27353 +D=A +@14 +M=D +@8841 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@8896 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +@8903 +D;JNE +@9295 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +M=M+1 +A=M-1 +M=0 +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@0 +M=M+1 +A=M-1 +M=1 +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@9056 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@9063 +D;JNE +@9147 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@4 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@9227 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +M=M+1 +A=M-1 +M=1 +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@0 +M=M+1 +A=M-1 +M=1 +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@0 +M=M+1 +A=M-1 +M=0 +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +M=M+1 +A=M-1 +M=0 +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@54 +0;JMP +@0 +A=M +M=0 +AD=A+1 +M=0 +@0 +M=D+1 +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@0 +M=M+1 +A=M-1 +M=1 +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@9458 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@9465 +D;JNE +@9556 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +M=M+1 +A=M-1 +M=1 +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@9848 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +M=M+1 +A=M-1 +M=1 +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +M=M+1 +A=M-1 +M=0 +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@0 +M=M+1 +A=M-1 +M=1 +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@9717 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@9724 +D;JNE +@9782 +0;JMP +@0 +M=M+1 +A=M-1 +M=1 +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@9848 +0;JMP +@0 +M=M+1 +A=M-1 +M=1 +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +M=M+1 +A=M-1 +M=1 +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@16384 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@20 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@21 +M=D +@32 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@22 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +AM=M-1 +D=M +@23 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@25105 +D=A +@14 +M=D +@9915 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@24 +M=D +@0 +D=A +@13 +M=D +@9960 +D=A +@14 +M=D +@9932 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +D=A +@13 +M=D +@18456 +D=A +@14 +M=D +@9949 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@127 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@5808 +D=A +@14 +M=D +@9978 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@25 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@10061 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@32 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@10128 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@33 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@10211 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@34 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@54 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@54 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@20 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@10284 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@35 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@18 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@18 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@18 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@18 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@18 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@18 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@10367 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@36 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@10454 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@37 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@35 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@49 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@10535 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@38 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@54 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@54 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@10620 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@39 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@10693 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@40 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@10778 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@41 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@10863 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@42 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@10940 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@43 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@11017 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@44 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@11090 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@45 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@11159 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@46 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@11230 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@47 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@32 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@11309 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@11394 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@49 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@14 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@15 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@11479 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@50 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@11564 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@28 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@11649 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@52 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@16 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@28 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@26 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@25 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@60 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@11734 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@53 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@31 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@11819 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@54 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@28 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@31 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@11904 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@55 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@49 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@11989 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@56 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@12074 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@57 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@62 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@14 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@12159 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@58 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@12234 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@59 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@12311 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@60 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@12392 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@61 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@12463 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@62 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@12544 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@64 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@59 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@59 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@59 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@12629 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@12712 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@65 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@12797 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@66 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@31 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@31 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@31 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@12882 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@67 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@28 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@54 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@35 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@35 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@54 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@28 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@12967 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@68 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@15 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@15 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@13052 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@69 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@35 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@11 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@15 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@11 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@35 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@13137 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@70 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@35 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@11 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@15 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@11 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@13222 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@71 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@28 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@54 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@35 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@59 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@54 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@44 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@13307 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@72 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@13392 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@73 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@13477 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@74 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@60 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@14 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@13562 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@75 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@15 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@13647 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@76 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@35 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@13732 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@77 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@33 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@13817 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@78 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@55 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@55 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@59 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@59 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@13902 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@79 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@13987 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@80 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@31 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@31 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@14072 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@81 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@59 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@14159 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@82 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@31 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@31 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@14244 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@83 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@28 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@14329 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@84 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@45 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@14414 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@85 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@14499 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@86 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@14584 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@87 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@18 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@14669 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@88 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@14754 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@89 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@14839 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@90 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@49 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@35 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@14924 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@91 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@15009 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@92 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=1 +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@32 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@15088 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@93 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@15173 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@94 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@8 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@28 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@54 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@15246 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@95 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@15315 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@96 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@15388 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@97 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@14 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@54 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@15467 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@98 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@15 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@15552 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@99 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@15631 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@100 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@60 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@54 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@15716 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@101 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@15795 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@102 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@28 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@54 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@38 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@15 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@15 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@15880 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@103 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@62 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@15963 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@104 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@55 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@16048 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@105 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@14 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@16131 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@106 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@56 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@16216 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@107 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@15 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@15 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@16301 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@108 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@14 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@16386 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@109 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@29 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@43 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@43 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@43 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@43 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@16465 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@110 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@29 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@16544 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@111 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@16623 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@112 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@31 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@16704 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@113 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@62 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@16785 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@114 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@29 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@55 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@7 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@16864 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@115 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@16943 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@116 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@4 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@15 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@54 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@28 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@17028 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@117 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@54 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@17107 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@118 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@17186 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@119 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@18 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@17265 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@120 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@30 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@17344 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@121 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@62 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@15 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@17425 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@122 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@51 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@17504 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@123 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@56 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@7 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@56 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@17589 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@124 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@17674 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@125 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@7 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@56 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@7 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@17759 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@126 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@38 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@45 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@25 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@0 +M=M+1 +A=M-1 +M=0 +@12 +D=A +@13 +M=D +@17843 +D=A +@14 +M=D +@17832 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@0 +AM=M+1 +A=A-1 +M=0 +@11 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@5808 +D=A +@14 +M=D +@17865 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@25 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@0 +M=M+1 +A=M-1 +M=0 +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@0 +M=M+1 +A=M-1 +M=1 +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@2 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@2 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@4 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@2 +D=M +@5 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@5 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@2 +D=M +@6 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@2 +D=M +@7 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@7 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@2 +D=M +@8 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@8 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@2 +D=M +@9 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@9 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@2 +D=M +@10 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@10 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@2 +D=M +@11 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@4 +D=A +D=D-1 +@0 +AM=M+1 +A=A-1 +M=0 +@18458 +D;JGT +@127 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@5808 +D=A +@14 +M=D +@18483 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@26 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@127 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@18517 +D=A +@38 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@18859 +D;JNE +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@25 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@11 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@5808 +D=A +@14 +M=D +@18580 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@26 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +M=D +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@11 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@18665 +D=A +@38 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@18795 +D;JNE +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@256 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@18745 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +M=D +@18646 +0;JMP +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@18811 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@18818 +D;JNE +@18833 +0;JMP +@32 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +M=D +@18857 +0;JMP +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +M=D +@18499 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@0 +AM=M+1 +A=A-1 +M=0 +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@32 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@18886 +D=A +@38 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@126 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@18903 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@0 +AM=M-1 +D=M +@18915 +D;JNE +@18925 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@0 +AM=M-1 +D=M +@2 +A=M +M=D +@21 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@18938 +D;JNE +@18976 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@25 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@19012 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@26 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@4 +D=A +D=D-1 +@0 +AM=M+1 +A=A-1 +M=0 +@19023 +D;JGT +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@18865 +D=A +@14 +M=D +@19049 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +M=D +@22 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@11 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@19085 +D=A +@38 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@19344 +D;JNE +@21 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@19106 +D;JNE +@19161 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@20 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@256 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +A=M-1 +D=!M +M=D+1 +@0 +AM=M-1 +D=M +A=A-1 +M=D&M +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +M=D +@19210 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@20 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@255 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D&M +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@20 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@32 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@19068 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@19365 +D=A +@38 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@22 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@19382 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@19402 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@63 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@19424 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@0 +AM=M-1 +D=M +@19436 +D;JNE +@19459 +0;JMP +@20 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@27353 +D=A +@14 +M=D +@19454 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@7287 +D=A +@14 +M=D +@19484 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@23 +M=D +@32 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@352 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@19520 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@23 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@22 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@23 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@19572 +D=A +@95 +0;JMP +@19576 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@21 +M=D +@32 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@19021 +D=A +@14 +M=D +@19599 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +D=A +@13 +M=D +@27034 +D=A +@14 +M=D +@19629 +D=A +@95 +0;JMP +@19633 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@19640 +D;JNE +@19659 +0;JMP +@0 +D=A +@13 +M=D +@20040 +D=A +@14 +M=D +@19652 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@19844 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +D=A +@13 +M=D +@27042 +D=A +@14 +M=D +@19678 +D=A +@95 +0;JMP +@19682 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@19689 +D;JNE +@19708 +0;JMP +@0 +D=A +@13 +M=D +@20134 +D=A +@14 +M=D +@19701 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@19844 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@19021 +D=A +@14 +M=D +@19727 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@21 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@19748 +D;JNE +@19788 +0;JMP +@23 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@23 +M=D +@22 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@22 +M=D +@23 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@32 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@19804 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@19811 +D;JNE +@19830 +0;JMP +@0 +D=A +@13 +M=D +@20040 +D=A +@14 +M=D +@19823 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@19844 +0;JMP +@21 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@21 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@0 +A=M +M=0 +AD=A+1 +M=0 +@0 +M=D+1 +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@25339 +D=A +@14 +M=D +@19876 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@19900 +D=A +@38 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@19975 +D;JNE +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@25361 +D=A +@14 +M=D +@19934 +D=A +@95 +0;JMP +@1 +D=A +@13 +M=D +@19610 +D=A +@14 +M=D +@19946 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@19882 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@24 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@26291 +D=A +@14 +M=D +@20006 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@24 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@19850 +D=A +@14 +M=D +@20029 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@22 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@352 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@23 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@22 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +AM=M-1 +D=M +@23 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@21 +M=D +@22 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@8128 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@20110 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@20117 +D;JNE +@20128 +0;JMP +@32 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@22 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@21 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@20147 +D;JNE +@20288 +0;JMP +@23 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@20161 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +@20168 +D;JNE +@20210 +0;JMP +@23 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@23 +M=D +@22 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@22 +M=D +@20277 +0;JMP +@31 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@23 +M=D +@22 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@32 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@20237 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@20244 +D;JNE +@20255 +0;JMP +@8128 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@22 +M=D +@22 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@321 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@22 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +AM=M-1 +D=M +@21 +M=D +@20300 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@21 +M=D +@32 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@19021 +D=A +@14 +M=D +@20318 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@0 +AM=M+1 +A=A-1 +M=0 +@16384 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@27 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@28 +M=D +@17 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@5808 +D=A +@14 +M=D +@20374 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@29 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@29 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@16 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@20437 +D=A +@38 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@20592 +D;JNE +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@29 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@29 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@29 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@20420 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@0 +AM=M+1 +A=A-1 +M=0 +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@8192 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@20619 +D=A +@38 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@20695 +D;JNE +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +M=M+1 +A=M-1 +M=0 +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@20602 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@28 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@20714 +D;JNE +@20798 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@20883 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@27 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +A=A-1 +M=D&M +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@28 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@3 +D=A +D=D-1 +@0 +AM=M+1 +A=A-1 +M=0 +@20909 +D;JGT +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@20931 +D=A +@38 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@511 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@20948 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@20968 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@255 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@20990 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@0 +AM=M-1 +D=M +@21002 +D;JNE +@21025 +0;JMP +@7 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@27353 +D=A +@14 +M=D +@21020 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@16 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@7287 +D=A +@14 +M=D +@21050 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@16 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@21088 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@32 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@21124 +D=A +@95 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@29 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@20701 +D=A +@14 +M=D +@21193 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@21219 +D;JNE +@21252 +0;JMP +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@20907 +D=A +@14 +M=D +@21245 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@21283 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@20907 +D=A +@14 +M=D +@21278 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@11 +D=A +D=D-1 +@0 +AM=M+1 +A=A-1 +M=0 +@21291 +D;JGT +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@21313 +D=A +@38 +0;JMP +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@511 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@21331 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@21351 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@2 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@255 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@21375 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@0 +AM=M-1 +D=M +@21387 +D;JNE +@21410 +0;JMP +@8 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@27353 +D=A +@14 +M=D +@21405 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@1 +D=A +@13 +M=D +@6774 +D=A +@14 +M=D +@21442 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +M=D +@2 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@1 +D=A +@13 +M=D +@6774 +D=A +@14 +M=D +@21483 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +M=D +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@21511 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@1 +D=M +@6 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@21551 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D&M +@1 +D=M +@6 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +A=M-1 +M=!M +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@21587 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D&M +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@0 +AM=M-1 +D=M +@21604 +D;JNE +@21698 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@2 +A=M +M=D +@1 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@2 +A=M+1 +A=A+1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@2 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@2 +A=M+1 +M=D +@1 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@2 +A=M+1 +A=A+1 +A=A+1 +M=D +@1 +D=M +@6 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@21714 +D;JNE +@21844 +0;JMP +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +M=D +@1 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@2 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@8 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@21830 +D=A +@22 +0;JMP +@1 +D=M +@7 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@21922 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@8 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@21910 +D=A +@22 +0;JMP +@1 +D=M +@7 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@21948 +D=A +@95 +0;JMP +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@21998 +D=A +@95 +0;JMP +@1 +D=M +@9 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@22050 +D=A +@95 +0;JMP +@1 +D=M +@10 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@6 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@13 +M=D +@21204 +D=A +@14 +M=D +@22097 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@8 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@22122 +D=A +@38 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@22348 +D;JNE +@1 +D=M +@5 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@22147 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +@22154 +D;JNE +@22189 +0;JMP +@1 +D=M +@5 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@9 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@22284 +0;JMP +@1 +D=M +@5 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@10 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@1 +D=M +@7 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@22238 +D;JNE +@22262 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@22284 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@6 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +D=A +@13 +M=D +@21204 +D=A +@14 +M=D +@22341 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@22102 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@9 +D=A +D=D-1 +@0 +AM=M+1 +A=A-1 +M=0 +@22356 +D;JGT +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@22382 +D=A +@22 +0;JMP +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@22402 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@22422 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@511 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@22445 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@22465 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@2 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@255 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@22489 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@0 +AM=M-1 +D=M +@22501 +D;JNE +@22524 +0;JMP +@9 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@27353 +D=A +@14 +M=D +@22519 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@16 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@7287 +D=A +@14 +M=D +@22549 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@16 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@22591 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@1 +D=M +@7 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@16 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@7287 +D=A +@14 +M=D +@22634 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@16 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@22678 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@1 +D=M +@8 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@1 +D=M +@7 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@29 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@1 +D=M +@8 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@29 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@32 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@22835 +D=A +@95 +0;JMP +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@1 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@22905 +D=A +@22 +0;JMP +@0 +A=M-1 +M=!M +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@23245 +D;JNE +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@22958 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@22965 +D;JNE +@23014 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@5 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@6 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D&M +@2 +D=A +@13 +M=D +@20701 +D=A +@14 +M=D +@23007 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@23184 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@6 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@20701 +D=A +@14 +M=D +@23042 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@23087 +D=A +@38 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@23151 +D;JNE +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +A=M-1 +D=!M +M=D+1 +@2 +D=A +@13 +M=D +@20701 +D=A +@14 +M=D +@23122 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@23069 +0;JMP +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@5 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@20701 +D=A +@14 +M=D +@23179 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@2 +A=M+1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@32 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@22885 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@11 +D=A +D=D-1 +@0 +AM=M+1 +A=A-1 +M=0 +@23253 +D;JGT +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@8406 +D=A +@14 +M=D +@23287 +D=A +@95 +0;JMP +@1 +D=M +@7 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@8359 +D=A +@14 +M=D +@23326 +D=A +@95 +0;JMP +@1 +D=M +@8 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +A=M-1 +D=!M +M=D+1 +@23357 +D=A +@22 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@256 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@23374 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D&M +@1 +D=M +@7 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@512 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@23398 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D&M +@1 +D=M +@8 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +A=M-1 +D=!M +M=D+1 +@23424 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D&M +@0 +AM=M-1 +D=M +@23436 +D;JNE +@24145 +0;JMP +@1 +D=M +@7 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@2 +D=A +@13 +M=D +@8359 +D=A +@14 +M=D +@23461 +D=A +@95 +0;JMP +@1 +D=M +@7 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@1 +D=M +@8 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@511 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@8406 +D=A +@14 +M=D +@23500 +D=A +@95 +0;JMP +@1 +D=M +@8 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@1 +D=M +@7 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@16 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@7287 +D=A +@14 +M=D +@23539 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@1 +D=M +@7 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@16 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@23579 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@1 +D=M +@9 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@1 +D=M +@8 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@16 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@7287 +D=A +@14 +M=D +@23623 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +M=D +@1 +D=M +@8 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@16 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@23665 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@1 +D=M +@10 +D=D+A +@13 +M=D +@0 +AM=M-1 +D=M +@13 +A=M +M=D +@1 +D=M +@9 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@29 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@1 +D=M +@10 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@29 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@32 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@23820 +D=A +@95 +0;JMP +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@6 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +M=D +@1 +D=M +@6 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@23915 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@23922 +D;JNE +@23971 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@5 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D&M +@2 +D=A +@13 +M=D +@20701 +D=A +@14 +M=D +@23964 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@24145 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@5 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@20701 +D=A +@14 +M=D +@23999 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@24046 +D=A +@38 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@24110 +D;JNE +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +A=M-1 +D=!M +M=D+1 +@2 +D=A +@13 +M=D +@20701 +D=A +@14 +M=D +@24081 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@24026 +0;JMP +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@20701 +D=A +@14 +M=D +@24140 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@3 +D=A +@13 +M=D +@23251 +D=A +@14 +M=D +@24224 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@3 +D=A +@13 +M=D +@23251 +D=A +@14 +M=D +@24302 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@3 +D=A +@13 +M=D +@23251 +D=A +@14 +M=D +@24381 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@3 +D=A +@13 +M=D +@23251 +D=A +@14 +M=D +@24460 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@3 +D=A +D=D-1 +@0 +AM=M+1 +A=A-1 +M=0 +@24473 +D;JGT +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@24495 +D=A +@38 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@511 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24512 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@24532 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@255 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24554 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@0 +AM=M-1 +D=M +@24566 +D;JNE +@24589 +0;JMP +@12 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@27353 +D=A +@14 +M=D +@24584 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +M=M+1 +A=M-1 +M=0 +@24617 +D=A +@38 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@511 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24647 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +M=M+1 +A=M-1 +M=0 +@24680 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@255 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@24715 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@0 +AM=M-1 +D=M +@24727 +D;JNE +@24750 +0;JMP +@13 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@27353 +D=A +@14 +M=D +@24745 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@4 +D=A +@13 +M=D +@24151 +D=A +@14 +M=D +@24828 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@24851 +D=A +@22 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@25099 +D;JNE +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@24875 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +@24882 +D;JNE +@24940 +0;JMP +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@24915 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +M=D +@25030 +0;JMP +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@24985 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@5 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@4 +D=A +@13 +M=D +@24151 +D=A +@14 +M=D +@25092 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@24833 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@8643 +D=A +@14 +M=D +@25123 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@3 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@25143 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +@25150 +D;JNE +@25173 +0;JMP +@14 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@27353 +D=A +@14 +M=D +@25168 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@25188 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +@25195 +D;JNE +@25220 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@5808 +D=A +@14 +M=D +@25214 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@3 +A=M+1 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +A=M +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +M=D +@3 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@25279 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +@25286 +D;JNE +@25310 +0;JMP +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@5877 +D=A +@14 +M=D +@25305 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@3 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@9357 +D=A +@14 +M=D +@25328 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@25388 +D=A +@38 +0;JMP +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@25407 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@25431 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@0 +AM=M-1 +D=M +@25443 +D;JNE +@25466 +0;JMP +@15 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@27353 +D=A +@14 +M=D +@25461 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@25526 +D=A +@38 +0;JMP +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@25545 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@25569 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@0 +AM=M-1 +D=M +@25581 +D;JNE +@25604 +0;JMP +@16 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@27353 +D=A +@14 +M=D +@25599 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@2 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@25690 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@25697 +D;JNE +@25720 +0;JMP +@17 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@27353 +D=A +@14 +M=D +@25715 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +M=D +@3 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@25829 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@25836 +D;JNE +@25859 +0;JMP +@18 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@27353 +D=A +@14 +M=D +@25854 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@5 +D=A +D=D-1 +@0 +AM=M+1 +A=A-1 +M=0 +@25891 +D;JGT +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@25926 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@25933 +D;JNE +@25939 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@45 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@25992 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@25999 +D;JNE +@26025 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +A=A+1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@26044 +D=A +@38 +0;JMP +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D&M +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@26249 +D;JNE +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@26131 +D=A +@38 +0;JMP +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@9 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@26149 +D=A +@22 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=D|M +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +M=D +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@26181 +D;JNE +@26247 +0;JMP +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@10 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@26206 +D=A +@95 +0;JMP +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@26025 +0;JMP +@1 +D=M +@4 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@26265 +D;JNE +@26282 +0;JMP +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +A=M-1 +D=!M +M=D+1 +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@4 +D=A +D=D-1 +@0 +AM=M+1 +A=A-1 +M=0 +@26293 +D;JGT +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@3 +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@26327 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@26334 +D;JNE +@26357 +0;JMP +@19 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@27353 +D=A +@14 +M=D +@26352 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@6 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@5808 +D=A +@14 +M=D +@26375 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@26397 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +@26404 +D;JNE +@26436 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@1 +A=M+1 +A=A+1 +A=A+1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +A=M-1 +D=!M +M=D+1 +@0 +AM=M-1 +D=M +@2 +A=M+1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@26464 +D=A +@22 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@26630 +D;JNE +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@10 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@7287 +D=A +@14 +M=D +@26497 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@1 +A=M+1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@10 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@6822 +D=A +@14 +M=D +@26561 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@1 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@2 +A=M+1 +M=D +@26449 +0;JMP +@1 +D=M +@3 +A=D+A +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@26646 +D;JNE +@26716 +0;JMP +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@45 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@3 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@26734 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +@26741 +D;JNE +@26764 +0;JMP +@19 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@27353 +D=A +@14 +M=D +@26759 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@26779 +D=A +@6 +0;JMP +@0 +AM=M-1 +D=M +@26786 +D;JNE +@26843 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@48 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +M=D +@27003 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@26873 +D=A +@38 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@27003 +D;JNE +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@4 +M=D +@4 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@5 +M=D +@0 +AM=M-1 +D=M +@4 +M=D +@5 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@4 +A=M +M=D +@3 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=D+M +@0 +AM=M-1 +D=M +@3 +A=M+1 +A=A+1 +M=D +@26854 +0;JMP +@1 +A=M+1 +A=A+1 +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@5877 +D=A +@14 +M=D +@27023 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@128 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@129 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@34 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@54 +0;JMP +@0 +D=A +@13 +M=D +@8453 +D=A +@14 +M=D +@27070 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +D=A +@13 +M=D +@6505 +D=A +@14 +M=D +@27087 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +D=A +@13 +M=D +@20329 +D=A +@14 +M=D +@27104 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +D=A +@13 +M=D +@9854 +D=A +@14 +M=D +@27121 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +D=A +@13 +M=D +@5918 +D=A +@14 +M=D +@27138 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +D=A +@13 +M=D +@3837 +D=A +@14 +M=D +@27155 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +D=A +@13 +M=D +@27177 +D=A +@14 +M=D +@27172 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@0 +A=M-1 +M=!M +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@27194 +D;JNE +@27177 +0;JMP +@0 +AM=M+1 +A=A-1 +M=0 +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@27213 +D=A +@38 +0;JMP +@0 +AM=M-1 +D=M +@27220 +D;JNE +@27241 +0;JMP +@0 +M=M+1 +A=M-1 +M=1 +@1 +D=A +@13 +M=D +@27353 +D=A +@14 +M=D +@27236 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@27256 +D=A +@22 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@27347 +D;JNE +@50 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=0 +@27291 +D=A +@22 +0;JMP +@0 +A=M-1 +M=!M +@0 +AM=M-1 +D=M +@27323 +D;JNE +@1 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@1 +A=M +M=D +@27276 +0;JMP +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@0 +M=M+1 +A=M-1 +M=1 +@0 +AM=M-1 +D=M +A=A-1 +M=M-D +@0 +AM=M-1 +D=M +@2 +A=M +M=D +@27241 +0;JMP +@0 +M=M+1 +A=M-1 +M=0 +@54 +0;JMP +@3 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@25105 +D=A +@14 +M=D +@27371 +D=A +@95 +0;JMP +@69 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@25659 +D=A +@14 +M=D +@27389 +D=A +@95 +0;JMP +@82 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@25659 +D=A +@14 +M=D +@27407 +D=A +@95 +0;JMP +@82 +D=A +@0 +AM=M+1 +A=A-1 +M=D +@2 +D=A +@13 +M=D +@25659 +D=A +@14 +M=D +@27425 +D=A +@95 +0;JMP +@1 +D=A +@13 +M=D +@19850 +D=A +@14 +M=D +@27437 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@2 +A=M +D=M +@0 +AM=M+1 +A=A-1 +M=D +@1 +D=A +@13 +M=D +@19981 +D=A +@14 +M=D +@27461 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D +@0 +D=A +@13 +M=D +@27177 +D=A +@14 +M=D +@27478 +D=A +@95 +0;JMP +@0 +AM=M-1 +D=M +@5 +M=D diff --git a/projects/06/rect/Rect.asm b/projects/06/rect/Rect.asm new file mode 100644 index 0000000..6cbbaeb --- /dev/null +++ b/projects/06/rect/Rect.asm @@ -0,0 +1,35 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/06/rect/Rect.asm + +// Draws a rectangle at the top-left corner of the screen. +// The rectangle is 16 pixels wide and R0 pixels high. + + @0 + D=M + @INFINITE_LOOP + D;JLE + @counter + M=D + @SCREEN + D=A + @address + M=D +(LOOP) + @address + A=M + M=-1 + @address + D=M + @32 + D=D+A + @address + M=D + @counter + MD=M-1 + @LOOP + D;JGT +(INFINITE_LOOP) + @INFINITE_LOOP + 0;JMP diff --git a/projects/06/rect/RectL.asm b/projects/06/rect/RectL.asm new file mode 100644 index 0000000..e97c09b --- /dev/null +++ b/projects/06/rect/RectL.asm @@ -0,0 +1,32 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/06/rect/RectL.asm + +// Symbol-less version of the Rect.asm program. + +@0 +D=M +@23 +D;JLE +@16 +M=D +@16384 +D=A +@17 +M=D +@17 +A=M +M=-1 +@17 +D=M +@32 +D=D+A +@17 +M=D +@16 +MD=M-1 +@10 +D;JGT +@23 +0;JMP diff --git a/projects/06/rect/RectL.hack b/projects/06/rect/RectL.hack new file mode 100644 index 0000000..f33a9d1 --- /dev/null +++ b/projects/06/rect/RectL.hack @@ -0,0 +1,25 @@ +0000000000000000 +1111110000010000 +0000000000010111 +1110001100000110 +0000000000010000 +1110001100001000 +0100000000000000 +1110110000010000 +0000000000010001 +1110001100001000 +0000000000010001 +1111110000100000 +1110111010001000 +0000000000010001 +1111110000010000 +0000000000100000 +1110000010010000 +0000000000010001 +1110001100001000 +0000000000010000 +1111110010011000 +0000000000001010 +1110001100000001 +0000000000010111 +1110101010000111 diff --git a/projects/07/MemoryAccess/BasicTest/BasicTest.asm b/projects/07/MemoryAccess/BasicTest/BasicTest.asm new file mode 100644 index 0000000..cc0c344 --- /dev/null +++ b/projects/07/MemoryAccess/BasicTest/BasicTest.asm @@ -0,0 +1,364 @@ +// push constant 10 +@10 +D = A +@SP +A = M +M = D +@SP +M = M + 1 + +// pop local 0 +@0 +D = A +@LCL +A = M +D = D + A +@R13 +M = D +// ^ R13 = local + index +@SP +A = M +A = A - 1 +D = M +@SP +M = M - 1 +// ^ pop into D +@R13 +A = M +M = D +// ^ *R13 = D + +// push constant 21 +@21 +D = A +@SP +A = M +M = D +@SP +M = M + 1 + +// push constant 22 +@22 +D = A +@SP +A = M +M = D +@SP +M = M + 1 + +// pop argument 2 +@2 +D = A +@ARG +A = M +D = D + A +@R13 +M = D +// ^ R13 = argument + index +@SP +A = M +A = A - 1 +D = M +@SP +M = M - 1 +// ^ pop into D +@R13 +A = M +M = D +// ^ *R13 = D + +// pop argument 1 +@1 +D = A +@ARG +A = M +D = D + A +@R13 +M = D +// ^ R13 = argument + index +@SP +A = M +A = A - 1 +D = M +@SP +M = M - 1 +// ^ pop into D +@R13 +A = M +M = D +// ^ *R13 = D + +// push constant 36 +@36 +D = A +@SP +A = M +M = D +@SP +M = M + 1 + +// pop this 6 +@6 +D = A +@THIS +A = M +D = D + A +@R13 +M = D +// ^ R13 = this + index +@SP +A = M +A = A - 1 +D = M +@SP +M = M - 1 +// ^ pop into D +@R13 +A = M +M = D +// ^ *R13 = D + +// push constant 42 +@42 +D = A +@SP +A = M +M = D +@SP +M = M + 1 + +// push constant 45 +@45 +D = A +@SP +A = M +M = D +@SP +M = M + 1 + +// pop that 5 +@5 +D = A +@THAT +A = M +D = D + A +@R13 +M = D +// ^ R13 = that + index +@SP +A = M +A = A - 1 +D = M +@SP +M = M - 1 +// ^ pop into D +@R13 +A = M +M = D +// ^ *R13 = D + +// pop that 2 +@2 +D = A +@THAT +A = M +D = D + A +@R13 +M = D +// ^ R13 = that + index +@SP +A = M +A = A - 1 +D = M +@SP +M = M - 1 +// ^ pop into D +@R13 +A = M +M = D +// ^ *R13 = D + +// push constant 510 +@510 +D = A +@SP +A = M +M = D +@SP +M = M + 1 + +// pop temp 6 +@6 +D = A +@5 +A = D + A +D = A +@R13 +M = D +// ^ R13 = temp + index +@SP +A = M +A = A - 1 +D = M +@SP +M = M - 1 +// ^ pop into D +@R13 +A = M +M = D +// ^ *R13 = D + +// push local 0 +@0 +D = A +@LCL +A = M +A = D + A +D = M +// ^ D = *(LCL + index) +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push D + +// push that 5 +@5 +D = A +@THAT +A = M +A = D + A +D = M +// ^ D = *(LCL + index) +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push D + +// add +@SP +A = M +A = A - 1 +A = A - 1 +D = M +A = A + 1 +D = D + M +A = A - 1 +M = D +@SP +M = M - 1 + +// push argument 1 +@1 +D = A +@ARG +A = M +A = D + A +D = M +// ^ D = *(LCL + index) +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push D + +// sub +@SP +A = M +A = A - 1 +A = A - 1 +D = M +A = A + 1 +D = D - M +A = A - 1 +M = D +@SP +M = M - 1 + +// push this 6 +@6 +D = A +@THIS +A = M +A = D + A +D = M +// ^ D = *(LCL + index) +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push D + +// push this 6 +@6 +D = A +@THIS +A = M +A = D + A +D = M +// ^ D = *(LCL + index) +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push D + +// add +@SP +A = M +A = A - 1 +A = A - 1 +D = M +A = A + 1 +D = D + M +A = A - 1 +M = D +@SP +M = M - 1 + +// sub +@SP +A = M +A = A - 1 +A = A - 1 +D = M +A = A + 1 +D = D - M +A = A - 1 +M = D +@SP +M = M - 1 + +// push temp 6 +@6 + D = A + @5 + A = D + A + D = M + // ^ D = *(temp + index) +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push D + +// add +@SP +A = M +A = A - 1 +A = A - 1 +D = M +A = A + 1 +D = D + M +A = A - 1 +M = D +@SP +M = M - 1 + diff --git a/projects/07/MemoryAccess/BasicTest/BasicTest.cmp b/projects/07/MemoryAccess/BasicTest/BasicTest.cmp new file mode 100644 index 0000000..538454b --- /dev/null +++ b/projects/07/MemoryAccess/BasicTest/BasicTest.cmp @@ -0,0 +1,2 @@ +|RAM[256]|RAM[300]|RAM[401]|RAM[402]|RAM[3006|RAM[3012|RAM[3015|RAM[11] | +| 472 | 10 | 21 | 22 | 36 | 42 | 45 | 510 | diff --git a/projects/07/MemoryAccess/BasicTest/BasicTest.tst b/projects/07/MemoryAccess/BasicTest/BasicTest.tst new file mode 100644 index 0000000..fa6d9a6 --- /dev/null +++ b/projects/07/MemoryAccess/BasicTest/BasicTest.tst @@ -0,0 +1,25 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/07/MemoryAccess/BasicTest/BasicTest.tst + +load BasicTest.asm, +output-file BasicTest.out, +compare-to BasicTest.cmp, +output-list RAM[256]%D1.6.1 RAM[300]%D1.6.1 RAM[401]%D1.6.1 + RAM[402]%D1.6.1 RAM[3006]%D1.6.1 RAM[3012]%D1.6.1 + RAM[3015]%D1.6.1 RAM[11]%D1.6.1; + +set RAM[0] 256, // stack pointer +set RAM[1] 300, // base address of the local segment +set RAM[2] 400, // base address of the argument segment +set RAM[3] 3000, // base address of the this segment +set RAM[4] 3010, // base address of the that segment + +repeat 600 { // enough cycles to complete the execution + ticktock; +} + +// Outputs the stack base and some values +// from the tested memory segments +output; diff --git a/projects/07/MemoryAccess/BasicTest/BasicTest.vm b/projects/07/MemoryAccess/BasicTest/BasicTest.vm new file mode 100644 index 0000000..b2f9343 --- /dev/null +++ b/projects/07/MemoryAccess/BasicTest/BasicTest.vm @@ -0,0 +1,31 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/07/MemoryAccess/BasicTest/BasicTest.vm + +// Executes pop and push commands using the virtual memory segments. +push constant 10 +pop local 0 +push constant 21 +push constant 22 +pop argument 2 +pop argument 1 +push constant 36 +pop this 6 +push constant 42 +push constant 45 +pop that 5 +pop that 2 +push constant 510 +pop temp 6 +push local 0 +push that 5 +add +push argument 1 +sub +push this 6 +push this 6 +add +sub +push temp 6 +add diff --git a/projects/07/MemoryAccess/BasicTest/BasicTestVME.tst b/projects/07/MemoryAccess/BasicTest/BasicTestVME.tst new file mode 100644 index 0000000..24e9090 --- /dev/null +++ b/projects/07/MemoryAccess/BasicTest/BasicTestVME.tst @@ -0,0 +1,25 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/07/MemoryAccess/BasicTest/BasicTestVME.tst + +load BasicTest.vm, +output-file BasicTest.out, +compare-to BasicTest.cmp, +output-list RAM[256]%D1.6.1 RAM[300]%D1.6.1 RAM[401]%D1.6.1 + RAM[402]%D1.6.1 RAM[3006]%D1.6.1 RAM[3012]%D1.6.1 + RAM[3015]%D1.6.1 RAM[11]%D1.6.1; + +set sp 256, // stack pointer +set local 300, // base address of the local segment +set argument 400, // base address of the argument segment +set this 3000, // base address of the this segment +set that 3010, // base address of the that segment + +repeat 25 { // BasicTest.vm has 25 instructions + vmstep; +} + +// Outputs the stack base and some values +// from the tested memory segments +output; diff --git a/projects/07/MemoryAccess/PointerTest/PointerTest.asm b/projects/07/MemoryAccess/PointerTest/PointerTest.asm new file mode 100644 index 0000000..032aeb1 --- /dev/null +++ b/projects/07/MemoryAccess/PointerTest/PointerTest.asm @@ -0,0 +1,189 @@ +// push constant 3030 +@3030 +D = A +@SP +A = M +M = D +@SP +M = M + 1 + +// pop pointer THIS +@SP +A = M +A = A - 1 +D = M +@SP +M = M - 1 +@THIS +M = D +// ^ pop into THIS + +// push constant 3040 +@3040 +D = A +@SP +A = M +M = D +@SP +M = M + 1 + +// pop pointer THAT +@SP +A = M +A = A - 1 +D = M +@SP +M = M - 1 +@THAT +M = D +// ^ pop into THAT + +// push constant 32 +@32 +D = A +@SP +A = M +M = D +@SP +M = M + 1 + +// pop this 2 +@2 +D = A +@THIS +A = M +D = D + A +@R13 +M = D +// ^ R13 = this + index +@SP +A = M +A = A - 1 +D = M +@SP +M = M - 1 +// ^ pop into D +@R13 +A = M +M = D +// ^ *R13 = D + +// push constant 46 +@46 +D = A +@SP +A = M +M = D +@SP +M = M + 1 + +// pop that 6 +@6 +D = A +@THAT +A = M +D = D + A +@R13 +M = D +// ^ R13 = that + index +@SP +A = M +A = A - 1 +D = M +@SP +M = M - 1 +// ^ pop into D +@R13 +A = M +M = D +// ^ *R13 = D + +// push pointer THIS +@THIS +D = M +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push THIS + +// push pointer THAT +@THAT +D = M +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push THAT + +// add +@SP +A = M +A = A - 1 +A = A - 1 +D = M +A = A + 1 +D = D + M +A = A - 1 +M = D +@SP +M = M - 1 + +// push this 2 +@2 +D = A +@THIS +A = M +A = D + A +D = M +// ^ D = *(LCL + index) +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push D + +// sub +@SP +A = M +A = A - 1 +A = A - 1 +D = M +A = A + 1 +D = D - M +A = A - 1 +M = D +@SP +M = M - 1 + +// push that 6 +@6 +D = A +@THAT +A = M +A = D + A +D = M +// ^ D = *(LCL + index) +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push D + +// add +@SP +A = M +A = A - 1 +A = A - 1 +D = M +A = A + 1 +D = D + M +A = A - 1 +M = D +@SP +M = M - 1 + diff --git a/projects/07/MemoryAccess/PointerTest/PointerTest.cmp b/projects/07/MemoryAccess/PointerTest/PointerTest.cmp new file mode 100644 index 0000000..b59fa97 --- /dev/null +++ b/projects/07/MemoryAccess/PointerTest/PointerTest.cmp @@ -0,0 +1,2 @@ +|RAM[256]| RAM[3] | RAM[4] |RAM[3032|RAM[3046| +| 6084 | 3030 | 3040 | 32 | 46 | diff --git a/projects/07/MemoryAccess/PointerTest/PointerTest.tst b/projects/07/MemoryAccess/PointerTest/PointerTest.tst new file mode 100644 index 0000000..cd5515d --- /dev/null +++ b/projects/07/MemoryAccess/PointerTest/PointerTest.tst @@ -0,0 +1,20 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/07/MemoryAccess/PointerTest/PointerTest.tst + +load PointerTest.asm, +output-file PointerTest.out, +compare-to PointerTest.cmp, +output-list RAM[256]%D1.6.1 RAM[3]%D1.6.1 + RAM[4]%D1.6.1 RAM[3032]%D1.6.1 RAM[3046]%D1.6.1; + +set RAM[0] 256, // initializes the stack pointer + +repeat 450 { // enough cycles to complete the execution + ticktock; +} + +// outputs the stack base, this, that, and +// some values from the the this and that segments +output; diff --git a/projects/07/MemoryAccess/PointerTest/PointerTest.vm b/projects/07/MemoryAccess/PointerTest/PointerTest.vm new file mode 100644 index 0000000..5b0a109 --- /dev/null +++ b/projects/07/MemoryAccess/PointerTest/PointerTest.vm @@ -0,0 +1,22 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/07/MemoryAccess/PointerTest/PointerTest.vm + +// Executes pop and push commands using the +// pointer, this, and that segments. +push constant 3030 +pop pointer 0 +push constant 3040 +pop pointer 1 +push constant 32 +pop this 2 +push constant 46 +pop that 6 +push pointer 0 +push pointer 1 +add +push this 2 +sub +push that 6 +add diff --git a/projects/07/MemoryAccess/PointerTest/PointerTestVME.tst b/projects/07/MemoryAccess/PointerTest/PointerTestVME.tst new file mode 100644 index 0000000..1b395c2 --- /dev/null +++ b/projects/07/MemoryAccess/PointerTest/PointerTestVME.tst @@ -0,0 +1,20 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/07/MemoryAccess/PointerTest/PointerTestVME.tst + +load PointerTest.vm, +output-file PointerTest.out, +compare-to PointerTest.cmp, +output-list RAM[256]%D1.6.1 RAM[3]%D1.6.1 RAM[4]%D1.6.1 + RAM[3032]%D1.6.1 RAM[3046]%D1.6.1; + +set RAM[0] 256, // initializes the stack pointer + +repeat 15 { // PointerTest.vm has 15 instructions + vmstep; +} + +// outputs the stack base, this, that, and +// some values from the the this and that segments +output; diff --git a/projects/07/MemoryAccess/StaticTest/StaticTest.asm b/projects/07/MemoryAccess/StaticTest/StaticTest.asm new file mode 100644 index 0000000..fb43ab3 --- /dev/null +++ b/projects/07/MemoryAccess/StaticTest/StaticTest.asm @@ -0,0 +1,122 @@ +// push constant 111 +@111 +D = A +@SP +A = M +M = D +@SP +M = M + 1 + +// push constant 333 +@333 +D = A +@SP +A = M +M = D +@SP +M = M + 1 + +// push constant 888 +@888 +D = A +@SP +A = M +M = D +@SP +M = M + 1 + +// pop static StaticTest.8 +@SP +A = M +A = A - 1 +D = M +@SP +M = M - 1 +// ^ pop into D +@StaticTest.8 +M = D +// ^ StaticTest.8 = D + +// pop static StaticTest.3 +@SP +A = M +A = A - 1 +D = M +@SP +M = M - 1 +// ^ pop into D +@StaticTest.3 +M = D +// ^ StaticTest.3 = D + +// pop static StaticTest.1 +@SP +A = M +A = A - 1 +D = M +@SP +M = M - 1 +// ^ pop into D +@StaticTest.1 +M = D +// ^ StaticTest.1 = D + +// push static StaticTest.3 +@StaticTest.3 +D = M +// ^ D = StaticTest.3 +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push from D + +// push static StaticTest.1 +@StaticTest.1 +D = M +// ^ D = StaticTest.1 +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push from D + +// sub +@SP +A = M +A = A - 1 +A = A - 1 +D = M +A = A + 1 +D = D - M +A = A - 1 +M = D +@SP +M = M - 1 + +// push static StaticTest.8 +@StaticTest.8 +D = M +// ^ D = StaticTest.8 +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push from D + +// add +@SP +A = M +A = A - 1 +A = A - 1 +D = M +A = A + 1 +D = D + M +A = A - 1 +M = D +@SP +M = M - 1 + diff --git a/projects/07/MemoryAccess/StaticTest/StaticTest.cmp b/projects/07/MemoryAccess/StaticTest/StaticTest.cmp new file mode 100644 index 0000000..29f4bf0 --- /dev/null +++ b/projects/07/MemoryAccess/StaticTest/StaticTest.cmp @@ -0,0 +1,2 @@ +|RAM[256]| +| 1110 | diff --git a/projects/07/MemoryAccess/StaticTest/StaticTest.tst b/projects/07/MemoryAccess/StaticTest/StaticTest.tst new file mode 100644 index 0000000..1f23d66 --- /dev/null +++ b/projects/07/MemoryAccess/StaticTest/StaticTest.tst @@ -0,0 +1,17 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/07/MemoryAccess/StaticTest/StaticTest.tst + +load StaticTest.asm, +output-file StaticTest.out, +compare-to StaticTest.cmp, +output-list RAM[256]%D1.6.1; + +set RAM[0] 256, // initializes the stack pointer + +repeat 200 { // enough cycles to complete the execution + ticktock; +} + +output; // the stack base diff --git a/projects/07/MemoryAccess/StaticTest/StaticTest.vm b/projects/07/MemoryAccess/StaticTest/StaticTest.vm new file mode 100644 index 0000000..65b4f6f --- /dev/null +++ b/projects/07/MemoryAccess/StaticTest/StaticTest.vm @@ -0,0 +1,17 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/07/MemoryAccess/StaticTest/StaticTest.vm + +// Executes pop and push commands using the static segment. +push constant 111 +push constant 333 +push constant 888 +pop static 8 +pop static 3 +pop static 1 +push static 3 +push static 1 +sub +push static 8 +add diff --git a/projects/07/MemoryAccess/StaticTest/StaticTestVME.tst b/projects/07/MemoryAccess/StaticTest/StaticTestVME.tst new file mode 100644 index 0000000..52882a4 --- /dev/null +++ b/projects/07/MemoryAccess/StaticTest/StaticTestVME.tst @@ -0,0 +1,17 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/07/MemoryAccess/StaticTest/StaticTestVME.tst + +load StaticTest.vm, +output-file StaticTest.out, +compare-to StaticTest.cmp, +output-list RAM[256]%D1.6.1; + +set sp 256, // initializes the stack pointer + +repeat 11 { // StaticTest.vm has 11 instructions + vmstep; +} + +output; // the stack base diff --git a/projects/07/StackArithmetic/SimpleAdd/SimpleAdd.cmp b/projects/07/StackArithmetic/SimpleAdd/SimpleAdd.cmp new file mode 100644 index 0000000..7a3585b --- /dev/null +++ b/projects/07/StackArithmetic/SimpleAdd/SimpleAdd.cmp @@ -0,0 +1,2 @@ +| RAM[0] | RAM[256] | +| 257 | 15 | diff --git a/projects/07/StackArithmetic/SimpleAdd/SimpleAdd.tst b/projects/07/StackArithmetic/SimpleAdd/SimpleAdd.tst new file mode 100644 index 0000000..02dece3 --- /dev/null +++ b/projects/07/StackArithmetic/SimpleAdd/SimpleAdd.tst @@ -0,0 +1,17 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/07/StackArithmetic/SimpleAdd/SimpleAdd.tst + +load SimpleAdd.asm, +output-file SimpleAdd.out, +compare-to SimpleAdd.cmp, +output-list RAM[0]%D2.6.2 RAM[256]%D2.6.2; + +set RAM[0] 256, // initializes the stack pointer + +repeat 60 { // enough cycles to complete the execution + ticktock; +} + +output; // the stack pointer and the stack base diff --git a/projects/07/StackArithmetic/SimpleAdd/SimpleAdd.vm b/projects/07/StackArithmetic/SimpleAdd/SimpleAdd.vm new file mode 100644 index 0000000..cfd4ee9 --- /dev/null +++ b/projects/07/StackArithmetic/SimpleAdd/SimpleAdd.vm @@ -0,0 +1,9 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/07/StackArithmetic/SimpleAdd/SimpleAdd.vm + +// Pushes and adds two constants. +push constant 7 +push constant 8 +add diff --git a/projects/07/StackArithmetic/SimpleAdd/SimpleAddVME.tst b/projects/07/StackArithmetic/SimpleAdd/SimpleAddVME.tst new file mode 100644 index 0000000..5010f4f --- /dev/null +++ b/projects/07/StackArithmetic/SimpleAdd/SimpleAddVME.tst @@ -0,0 +1,17 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/07/StackArithmetic/SimpleAdd/SimpleAddVME.tst + +load SimpleAdd.vm, +output-file SimpleAdd.out, +compare-to SimpleAdd.cmp, +output-list RAM[0]%D2.6.2 RAM[256]%D2.6.2; + +set RAM[0] 256, // initializes the stack pointer + +repeat 3 { // SimpleAdd.vm has 3 instructions + vmstep; +} + +output; // the stack pointer and the stack base diff --git a/projects/07/StackArithmetic/StackTest/StackTest.cmp b/projects/07/StackArithmetic/StackTest/StackTest.cmp new file mode 100644 index 0000000..f90fa1b --- /dev/null +++ b/projects/07/StackArithmetic/StackTest/StackTest.cmp @@ -0,0 +1,4 @@ +| RAM[0] | RAM[256] | RAM[257] | RAM[258] | RAM[259] | RAM[260] | +| 266 | -1 | 0 | 0 | 0 | -1 | +| RAM[261] | RAM[262] | RAM[263] | RAM[264] | RAM[265] | +| 0 | -1 | 0 | 0 | -91 | diff --git a/projects/07/StackArithmetic/StackTest/StackTest.tst b/projects/07/StackArithmetic/StackTest/StackTest.tst new file mode 100644 index 0000000..f9c5396 --- /dev/null +++ b/projects/07/StackArithmetic/StackTest/StackTest.tst @@ -0,0 +1,22 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/07/StackArithmetic/StackTest/StackTest.tst + +load StackTest.asm, +output-file StackTest.out, +compare-to StackTest.cmp, +output-list RAM[0]%D2.6.2 + RAM[256]%D2.6.2 RAM[257]%D2.6.2 RAM[258]%D2.6.2 RAM[259]%D2.6.2 RAM[260]%D2.6.2; + +set RAM[0] 256, // initializes the stack pointer + +repeat 1000 { // enough cycles to complete the execution + ticktock; +} + +// outputs the stack pointer (RAM[0]) and +// the stack contents: RAM[256]-RAM[265] +output; +output-list RAM[261]%D2.6.2 RAM[262]%D2.6.2 RAM[263]%D2.6.2 RAM[264]%D2.6.2 RAM[265]%D2.6.2; +output; diff --git a/projects/07/StackArithmetic/StackTest/StackTest.vm b/projects/07/StackArithmetic/StackTest/StackTest.vm new file mode 100644 index 0000000..bfe78e0 --- /dev/null +++ b/projects/07/StackArithmetic/StackTest/StackTest.vm @@ -0,0 +1,45 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/07/StackArithmetic/StackTest/StackTest.vm + +// Executes a sequence of arithmetic and logical operations +// on the stack. +push constant 17 +push constant 17 +eq +push constant 17 +push constant 16 +eq +push constant 16 +push constant 17 +eq +push constant 892 +push constant 891 +lt +push constant 891 +push constant 892 +lt +push constant 891 +push constant 891 +lt +push constant 32767 +push constant 32766 +gt +push constant 32766 +push constant 32767 +gt +push constant 32766 +push constant 32766 +gt +push constant 57 +push constant 31 +push constant 53 +add +push constant 112 +sub +neg +and +push constant 82 +or +not diff --git a/projects/07/StackArithmetic/StackTest/StackTestVME.tst b/projects/07/StackArithmetic/StackTest/StackTestVME.tst new file mode 100644 index 0000000..b66bd05 --- /dev/null +++ b/projects/07/StackArithmetic/StackTest/StackTestVME.tst @@ -0,0 +1,22 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/07/StackArithmetic/StackTest/StackTestVME.tst + +load StackTest.vm, +output-file StackTest.out, +compare-to StackTest.cmp, +output-list RAM[0]%D2.6.2 + RAM[256]%D2.6.2 RAM[257]%D2.6.2 RAM[258]%D2.6.2 RAM[259]%D2.6.2 RAM[260]%D2.6.2; + +set RAM[0] 256, // initializes the stack pointer + +repeat 38 { // StackTest.vm consists of 38 instructions + vmstep; +} + +// outputs the stack pointer (RAM[0]) and +// the stack contents: RAM[256]-RAM[265] +output; +output-list RAM[261]%D2.6.2 RAM[262]%D2.6.2 RAM[263]%D2.6.2 RAM[264]%D2.6.2 RAM[265]%D2.6.2; +output; diff --git a/projects/08/FunctionCalls/FibonacciElement/FibonacciElement.asm b/projects/08/FunctionCalls/FibonacciElement/FibonacciElement.asm new file mode 100644 index 0000000..ce105c0 --- /dev/null +++ b/projects/08/FunctionCalls/FibonacciElement/FibonacciElement.asm @@ -0,0 +1,589 @@ +// Bootstrap code +@256 +D = A +@SP +M = D +// ^ SP = 256 + +// call Sys.init 0 +@Sys.init:return:0 +D = A +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push return-address +@LCL +D = M +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push lcl +@ARG +D = M +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push arg +@THIS +D = M +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push this +@THAT +D = M +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push that +@SP +D = M +@0 +D = D - A +@5 +D = D - A +@ARG +M = D +// ^ ARG = SP - 0 - 5 +@SP +D = M +@LCL +M = D +// ^ LCL = SP +@Sys.init +0;JMP +// ^ goto Sys.init +(Sys.init:return:0) + + +// Start /home/felixm/dev/nand2tetris/projects/08/FunctionCalls/FibonacciElement/Sys.vm + +// function Sys.init 0 +(Sys.init) +@0 +D = A +// ^ push 0 * 0 + +// push constant 4 +@4 +D = A +@SP +A = M +M = D +@SP +M = M + 1 + +// call Main.fibonacci 1 +@Main.fibonacci:return:1 +D = A +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push return-address +@LCL +D = M +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push lcl +@ARG +D = M +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push arg +@THIS +D = M +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push this +@THAT +D = M +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push that +@SP +D = M +@1 +D = D - A +@5 +D = D - A +@ARG +M = D +// ^ ARG = SP - 1 - 5 +@SP +D = M +@LCL +M = D +// ^ LCL = SP +@Main.fibonacci +0;JMP +// ^ goto Main.fibonacci +(Main.fibonacci:return:1) + + +// label Sys.init:WHILE +(Sys.init:WHILE) + +// goto Sys.init:WHILE +@Sys.init:WHILE +0;JMP + +// Start /home/felixm/dev/nand2tetris/projects/08/FunctionCalls/FibonacciElement/Main.vm + +// function Main.fibonacci 0 +(Main.fibonacci) +@0 +D = A +// ^ push 0 * 0 + +// push argument 0 +@0 +D = A +@ARG +A = M +A = D + A +D = M +// ^ D = *(ARG + index) +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push D + +// push constant 2 +@2 +D = A +@SP +A = M +M = D +@SP +M = M + 1 + +// lt +@SP +A = M +A = A - 1 +A = A - 1 +D = M +A = A + 1 +D = D - M +@IF_JLT_1 +D;JLT +@ELSE_JLT_1 +0;JMP +(IF_JLT_1) +D = -1 +@END_JLT_1 +0;JMP +(ELSE_JLT_1) +D = 0 +(END_JLT_1) +@SP +A = M +A = A - 1 +A = A - 1 +M = D +@SP +M = M - 1 + +// if-goto Main.fibonacci:IF_TRUE +@SP +A = M +A = A - 1 +D = M +@SP +M = M - 1 +@Main.fibonacci:IF_TRUE +D;JNE +// goto Main.fibonacci:IF_FALSE +@Main.fibonacci:IF_FALSE +0;JMP + +// label Main.fibonacci:IF_TRUE +(Main.fibonacci:IF_TRUE) + +// push argument 0 +@0 +D = A +@ARG +A = M +A = D + A +D = M +// ^ D = *(ARG + index) +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push D + +// return +@LCL +D = M +@R13 +M = D +// ^ R13 = FRAME = LCL +@5 +D = A +@R13 +A = M - D +D = M +@R14 +M = D +// ^ R14 = RET = *(FRAME - 5) +@SP +A = M +A = A - 1 +D = M +@SP +M = M - 1 +@ARG +A = M +M = D +// ^ POP into *ARG +@ARG +D = M + 1 +@SP +M = D +// ^ SP = ARG + 1 +@1 +D = A +@R13 +A = M - D +D = M +@THAT +M = D +// ^ THAT = *(FRAME - 1) +@2 +D = A +@R13 +A = M - D +D = M +@THIS +M = D +// ^ THIS = *(FRAME - 2) +@3 +D = A +@R13 +A = M - D +D = M +@ARG +M = D +// ^ ARG = *(FRAME - 3) +@4 +D = A +@R13 +A = M - D +D = M +@LCL +M = D +// ^ LCL = *(FRAME - 4) +@R14 +A = M +0;JMP +// ^ goto RET + + +// label Main.fibonacci:IF_FALSE +(Main.fibonacci:IF_FALSE) + +// push argument 0 +@0 +D = A +@ARG +A = M +A = D + A +D = M +// ^ D = *(ARG + index) +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push D + +// push constant 2 +@2 +D = A +@SP +A = M +M = D +@SP +M = M + 1 + +// sub +@SP +A = M +A = A - 1 +A = A - 1 +D = M +A = A + 1 +D = D - M +A = A - 1 +M = D +@SP +M = M - 1 + +// call Main.fibonacci 1 +@Main.fibonacci:return:2 +D = A +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push return-address +@LCL +D = M +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push lcl +@ARG +D = M +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push arg +@THIS +D = M +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push this +@THAT +D = M +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push that +@SP +D = M +@1 +D = D - A +@5 +D = D - A +@ARG +M = D +// ^ ARG = SP - 1 - 5 +@SP +D = M +@LCL +M = D +// ^ LCL = SP +@Main.fibonacci +0;JMP +// ^ goto Main.fibonacci +(Main.fibonacci:return:2) + + +// push argument 0 +@0 +D = A +@ARG +A = M +A = D + A +D = M +// ^ D = *(ARG + index) +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push D + +// push constant 1 +@1 +D = A +@SP +A = M +M = D +@SP +M = M + 1 + +// sub +@SP +A = M +A = A - 1 +A = A - 1 +D = M +A = A + 1 +D = D - M +A = A - 1 +M = D +@SP +M = M - 1 + +// call Main.fibonacci 1 +@Main.fibonacci:return:3 +D = A +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push return-address +@LCL +D = M +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push lcl +@ARG +D = M +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push arg +@THIS +D = M +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push this +@THAT +D = M +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push that +@SP +D = M +@1 +D = D - A +@5 +D = D - A +@ARG +M = D +// ^ ARG = SP - 1 - 5 +@SP +D = M +@LCL +M = D +// ^ LCL = SP +@Main.fibonacci +0;JMP +// ^ goto Main.fibonacci +(Main.fibonacci:return:3) + + +// add +@SP +A = M +A = A - 1 +A = A - 1 +D = M +A = A + 1 +D = D + M +A = A - 1 +M = D +@SP +M = M - 1 + +// return +@LCL +D = M +@R13 +M = D +// ^ R13 = FRAME = LCL +@5 +D = A +@R13 +A = M - D +D = M +@R14 +M = D +// ^ R14 = RET = *(FRAME - 5) +@SP +A = M +A = A - 1 +D = M +@SP +M = M - 1 +@ARG +A = M +M = D +// ^ POP into *ARG +@ARG +D = M + 1 +@SP +M = D +// ^ SP = ARG + 1 +@1 +D = A +@R13 +A = M - D +D = M +@THAT +M = D +// ^ THAT = *(FRAME - 1) +@2 +D = A +@R13 +A = M - D +D = M +@THIS +M = D +// ^ THIS = *(FRAME - 2) +@3 +D = A +@R13 +A = M - D +D = M +@ARG +M = D +// ^ ARG = *(FRAME - 3) +@4 +D = A +@R13 +A = M - D +D = M +@LCL +M = D +// ^ LCL = *(FRAME - 4) +@R14 +A = M +0;JMP +// ^ goto RET + + diff --git a/projects/08/FunctionCalls/FibonacciElement/FibonacciElement.cmp b/projects/08/FunctionCalls/FibonacciElement/FibonacciElement.cmp new file mode 100644 index 0000000..d667834 --- /dev/null +++ b/projects/08/FunctionCalls/FibonacciElement/FibonacciElement.cmp @@ -0,0 +1,2 @@ +| RAM[0] |RAM[261]| +| 262 | 3 | diff --git a/projects/08/FunctionCalls/FibonacciElement/FibonacciElement.tst b/projects/08/FunctionCalls/FibonacciElement/FibonacciElement.tst new file mode 100644 index 0000000..1f907b1 --- /dev/null +++ b/projects/08/FunctionCalls/FibonacciElement/FibonacciElement.tst @@ -0,0 +1,18 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/08/FunctionCalls/FibonacciElement/FibonacciElement.tst + +// FibonacciElement.asm results from translating both Main.vm and Sys.vm into +// a single assembly program, stored in the file FibonacciElement.asm. + +load FibonacciElement.asm, +output-file FibonacciElement.out, +compare-to FibonacciElement.cmp, +output-list RAM[0]%D1.6.1 RAM[261]%D1.6.1; + +repeat 6000 { + ticktock; +} + +output; diff --git a/projects/08/FunctionCalls/FibonacciElement/FibonacciElementVME.tst b/projects/08/FunctionCalls/FibonacciElement/FibonacciElementVME.tst new file mode 100644 index 0000000..87c0920 --- /dev/null +++ b/projects/08/FunctionCalls/FibonacciElement/FibonacciElementVME.tst @@ -0,0 +1,17 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/08/FunctionCalls/FibonacciElement/FibonacciElementVME.tst + +load, // Load all the VM files from the current directory +output-file FibonacciElement.out, +compare-to FibonacciElement.cmp, +output-list RAM[0]%D1.6.1 RAM[261]%D1.6.1; + +set sp 261, + +repeat 110 { + vmstep; +} + +output; diff --git a/projects/08/FunctionCalls/FibonacciElement/Main.vm b/projects/08/FunctionCalls/FibonacciElement/Main.vm new file mode 100644 index 0000000..55e5ad2 --- /dev/null +++ b/projects/08/FunctionCalls/FibonacciElement/Main.vm @@ -0,0 +1,30 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/08/FunctionCalls/FibonacciElement/Main.vm + +// Computes the n'th element of the Fibonacci series, recursively. +// n is given in argument[0]. Called by the Sys.init function +// (part of the Sys.vm file), which also pushes the argument[0] +// parameter before this code starts running. + +function Main.fibonacci 0 +push argument 0 +push constant 2 +lt // checks if n<2 +if-goto IF_TRUE +goto IF_FALSE +label IF_TRUE // if n<2, return n +push argument 0 +return +label IF_FALSE // if n>=2, returns fib(n-2)+fib(n-1) +push argument 0 +push constant 2 +sub +call Main.fibonacci 1 // computes fib(n-2) +push argument 0 +push constant 1 +sub +call Main.fibonacci 1 // computes fib(n-1) +add // returns fib(n-1) + fib(n-2) +return diff --git a/projects/08/FunctionCalls/FibonacciElement/Sys.vm b/projects/08/FunctionCalls/FibonacciElement/Sys.vm new file mode 100644 index 0000000..f3965c9 --- /dev/null +++ b/projects/08/FunctionCalls/FibonacciElement/Sys.vm @@ -0,0 +1,15 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/08/FunctionCalls/FibonacciElement/Sys.vm + +// Pushes a constant, say n, onto the stack, and calls the Main.fibonacii +// function, which computes the n'th element of the Fibonacci series. +// Note that by convention, the Sys.init function is called "automatically" +// by the bootstrap code. + +function Sys.init 0 +push constant 4 +call Main.fibonacci 1 // computes the 4'th fibonacci element +label WHILE +goto WHILE // loops infinitely diff --git a/projects/08/FunctionCalls/NestedCall/NestedCall.asm b/projects/08/FunctionCalls/NestedCall/NestedCall.asm new file mode 100644 index 0000000..5455d5d --- /dev/null +++ b/projects/08/FunctionCalls/NestedCall/NestedCall.asm @@ -0,0 +1,806 @@ +// Bootstrap code +@256 +D = A +@SP +M = D +// ^ SP = 256 + +// call Sys.init 0 +@Sys.init:return:0 +D = A +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push return-address +@LCL +D = M +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push lcl +@ARG +D = M +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push arg +@THIS +D = M +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push this +@THAT +D = M +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push that +@SP +D = M +@0 +D = D - A +@5 +D = D - A +@ARG +M = D +// ^ ARG = SP - 0 - 5 +@SP +D = M +@LCL +M = D +// ^ LCL = SP +@Sys.init +0;JMP +// ^ goto Sys.init +(Sys.init:return:0) + + +// Start /home/felixm/dev/nand2tetris/projects/08/FunctionCalls/NestedCall/Sys.vm + +// function Sys.init 0 +(Sys.init) +@0 +D = A +// ^ push 0 * 0 + +// push constant 4000 +@4000 +D = A +@SP +A = M +M = D +@SP +M = M + 1 + +// pop pointer THIS +@SP +A = M +A = A - 1 +D = M +@SP +M = M - 1 +@THIS +M = D +// ^ pop into THIS + +// push constant 5000 +@5000 +D = A +@SP +A = M +M = D +@SP +M = M + 1 + +// pop pointer THAT +@SP +A = M +A = A - 1 +D = M +@SP +M = M - 1 +@THAT +M = D +// ^ pop into THAT + +// call Sys.main 0 +@Sys.main:return:1 +D = A +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push return-address +@LCL +D = M +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push lcl +@ARG +D = M +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push arg +@THIS +D = M +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push this +@THAT +D = M +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push that +@SP +D = M +@0 +D = D - A +@5 +D = D - A +@ARG +M = D +// ^ ARG = SP - 0 - 5 +@SP +D = M +@LCL +M = D +// ^ LCL = SP +@Sys.main +0;JMP +// ^ goto Sys.main +(Sys.main:return:1) + + +// pop temp 1 +@1 +D = A +@5 +A = D + A +D = A +@R13 +M = D +// ^ R13 = temp + index +@SP +A = M +A = A - 1 +D = M +@SP +M = M - 1 +// ^ pop into D +@R13 +A = M +M = D +// ^ *R13 = D + +// label Sys.init:LOOP +(Sys.init:LOOP) + +// goto Sys.init:LOOP +@Sys.init:LOOP +0;JMP + +// function Sys.main 5 +(Sys.main) +@0 +D = A +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push 0 +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push 0 +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push 0 +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push 0 +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push 0 +// ^ push 0 * 5 + +// push constant 4001 +@4001 +D = A +@SP +A = M +M = D +@SP +M = M + 1 + +// pop pointer THIS +@SP +A = M +A = A - 1 +D = M +@SP +M = M - 1 +@THIS +M = D +// ^ pop into THIS + +// push constant 5001 +@5001 +D = A +@SP +A = M +M = D +@SP +M = M + 1 + +// pop pointer THAT +@SP +A = M +A = A - 1 +D = M +@SP +M = M - 1 +@THAT +M = D +// ^ pop into THAT + +// push constant 200 +@200 +D = A +@SP +A = M +M = D +@SP +M = M + 1 + +// pop local 1 +@1 +D = A +@LCL +A = M +D = D + A +@R13 +M = D +// ^ R13 = local + index +@SP +A = M +A = A - 1 +D = M +@SP +M = M - 1 +// ^ pop into D +@R13 +A = M +M = D +// ^ *R13 = D + +// push constant 40 +@40 +D = A +@SP +A = M +M = D +@SP +M = M + 1 + +// pop local 2 +@2 +D = A +@LCL +A = M +D = D + A +@R13 +M = D +// ^ R13 = local + index +@SP +A = M +A = A - 1 +D = M +@SP +M = M - 1 +// ^ pop into D +@R13 +A = M +M = D +// ^ *R13 = D + +// push constant 6 +@6 +D = A +@SP +A = M +M = D +@SP +M = M + 1 + +// pop local 3 +@3 +D = A +@LCL +A = M +D = D + A +@R13 +M = D +// ^ R13 = local + index +@SP +A = M +A = A - 1 +D = M +@SP +M = M - 1 +// ^ pop into D +@R13 +A = M +M = D +// ^ *R13 = D + +// push constant 123 +@123 +D = A +@SP +A = M +M = D +@SP +M = M + 1 + +// call Sys.add12 1 +@Sys.add12:return:2 +D = A +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push return-address +@LCL +D = M +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push lcl +@ARG +D = M +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push arg +@THIS +D = M +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push this +@THAT +D = M +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push that +@SP +D = M +@1 +D = D - A +@5 +D = D - A +@ARG +M = D +// ^ ARG = SP - 1 - 5 +@SP +D = M +@LCL +M = D +// ^ LCL = SP +@Sys.add12 +0;JMP +// ^ goto Sys.add12 +(Sys.add12:return:2) + + +// pop temp 0 +@0 +D = A +@5 +A = D + A +D = A +@R13 +M = D +// ^ R13 = temp + index +@SP +A = M +A = A - 1 +D = M +@SP +M = M - 1 +// ^ pop into D +@R13 +A = M +M = D +// ^ *R13 = D + +// push local 0 +@0 +D = A +@LCL +A = M +A = D + A +D = M +// ^ D = *(LCL + index) +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push D + +// push local 1 +@1 +D = A +@LCL +A = M +A = D + A +D = M +// ^ D = *(LCL + index) +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push D + +// push local 2 +@2 +D = A +@LCL +A = M +A = D + A +D = M +// ^ D = *(LCL + index) +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push D + +// push local 3 +@3 +D = A +@LCL +A = M +A = D + A +D = M +// ^ D = *(LCL + index) +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push D + +// push local 4 +@4 +D = A +@LCL +A = M +A = D + A +D = M +// ^ D = *(LCL + index) +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push D + +// add +@SP +A = M +A = A - 1 +A = A - 1 +D = M +A = A + 1 +D = D + M +A = A - 1 +M = D +@SP +M = M - 1 + +// add +@SP +A = M +A = A - 1 +A = A - 1 +D = M +A = A + 1 +D = D + M +A = A - 1 +M = D +@SP +M = M - 1 + +// add +@SP +A = M +A = A - 1 +A = A - 1 +D = M +A = A + 1 +D = D + M +A = A - 1 +M = D +@SP +M = M - 1 + +// add +@SP +A = M +A = A - 1 +A = A - 1 +D = M +A = A + 1 +D = D + M +A = A - 1 +M = D +@SP +M = M - 1 + +// return +@LCL +D = M +@R13 +M = D +// ^ R13 = FRAME = LCL +@5 +D = A +@R13 +A = M - D +D = M +@R14 +M = D +// ^ R14 = RET = *(FRAME - 5) +@SP +A = M +A = A - 1 +D = M +@SP +M = M - 1 +@ARG +A = M +M = D +// ^ POP into *ARG +@ARG +D = M + 1 +@SP +M = D +// ^ SP = ARG + 1 +@1 +D = A +@R13 +A = M - D +D = M +@THAT +M = D +// ^ THAT = *(FRAME - 1) +@2 +D = A +@R13 +A = M - D +D = M +@THIS +M = D +// ^ THIS = *(FRAME - 2) +@3 +D = A +@R13 +A = M - D +D = M +@ARG +M = D +// ^ ARG = *(FRAME - 3) +@4 +D = A +@R13 +A = M - D +D = M +@LCL +M = D +// ^ LCL = *(FRAME - 4) +@R14 +A = M +0;JMP +// ^ goto RET + + +// function Sys.add12 0 +(Sys.add12) +@0 +D = A +// ^ push 0 * 0 + +// push constant 4002 +@4002 +D = A +@SP +A = M +M = D +@SP +M = M + 1 + +// pop pointer THIS +@SP +A = M +A = A - 1 +D = M +@SP +M = M - 1 +@THIS +M = D +// ^ pop into THIS + +// push constant 5002 +@5002 +D = A +@SP +A = M +M = D +@SP +M = M + 1 + +// pop pointer THAT +@SP +A = M +A = A - 1 +D = M +@SP +M = M - 1 +@THAT +M = D +// ^ pop into THAT + +// push argument 0 +@0 +D = A +@ARG +A = M +A = D + A +D = M +// ^ D = *(ARG + index) +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push D + +// push constant 12 +@12 +D = A +@SP +A = M +M = D +@SP +M = M + 1 + +// add +@SP +A = M +A = A - 1 +A = A - 1 +D = M +A = A + 1 +D = D + M +A = A - 1 +M = D +@SP +M = M - 1 + +// return +@LCL +D = M +@R13 +M = D +// ^ R13 = FRAME = LCL +@5 +D = A +@R13 +A = M - D +D = M +@R14 +M = D +// ^ R14 = RET = *(FRAME - 5) +@SP +A = M +A = A - 1 +D = M +@SP +M = M - 1 +@ARG +A = M +M = D +// ^ POP into *ARG +@ARG +D = M + 1 +@SP +M = D +// ^ SP = ARG + 1 +@1 +D = A +@R13 +A = M - D +D = M +@THAT +M = D +// ^ THAT = *(FRAME - 1) +@2 +D = A +@R13 +A = M - D +D = M +@THIS +M = D +// ^ THIS = *(FRAME - 2) +@3 +D = A +@R13 +A = M - D +D = M +@ARG +M = D +// ^ ARG = *(FRAME - 3) +@4 +D = A +@R13 +A = M - D +D = M +@LCL +M = D +// ^ LCL = *(FRAME - 4) +@R14 +A = M +0;JMP +// ^ goto RET + + diff --git a/projects/08/FunctionCalls/NestedCall/NestedCall.cmp b/projects/08/FunctionCalls/NestedCall/NestedCall.cmp new file mode 100644 index 0000000..9200202 --- /dev/null +++ b/projects/08/FunctionCalls/NestedCall/NestedCall.cmp @@ -0,0 +1,2 @@ +| RAM[0] | RAM[1] | RAM[2] | RAM[3] | RAM[4] | RAM[5] | RAM[6] | +| 261 | 261 | 256 | 4000 | 5000 | 135 | 246 | diff --git a/projects/08/FunctionCalls/NestedCall/NestedCall.html b/projects/08/FunctionCalls/NestedCall/NestedCall.html new file mode 100644 index 0000000..0821f9c --- /dev/null +++ b/projects/08/FunctionCalls/NestedCall/NestedCall.html @@ -0,0 +1,196 @@ + + + + + NestedCall.tst — Nand2Tetris Calling Convention Test + + + + +

Synopsis

+NestedCall.tst is an intermediate test (in terms of complexity) intended to be used between the SimpleFunction and +FibonacciElement tests. It may be useful when SimpleFunction passes but FibonacciElement fails or crashes. NestedCall also +tests several requirements of the Function Calling Protocol that are not verified by the other +supplied tests. NestedCall can be used with or without the VM bootstrap code. +

+NestedCallVME.tst runs the same test on the VM Emulator. +

+The NestedCall tests and supporting documentation were written by Mark Armbrust. + + +

Test Structure

+

Startup

+NestedCall is implemented entirely within the Sys.vm file. The first function in Sys.vm is +Sys.init(). This allows it to be used before the bootstrap code has been added to the VM Translator +since there will be no file processing order issues. +

+NestedCall loads Sys.asm, sets up the stack to simulate the bootstrap's call to Sys.init(), then +begins execution at the beginning of Sys.asm. If the bootstrap is not present, the program begins +running with Sys.init() since it is the first function in Sys.vm. +

+If Sys.asm includes the bootstrap, the bootstrap will (re)initialize the stack and call Sys.init(), +so the test should see the same environment either way it gets to Sys.init(). +

+The test setup also initializes the + +

Sys.init()

+ +THIS and THAT are set to known values so that context save and restore can be tested. +

+Sys.init() calls Sys.main() and stores the return value in temp 1. This tests call to and +return from a function with no arguments. + +

Sys.main()

+Sys.init() allocates 5 local variables. It sets local 1, local 2 and +local 3. local 0 and local 4 are intentionally not set. +

+THIS and THAT are changed so that context save and restore can be tested. +

+Sys.main() calls Sys.add12(123) and stores the return value in temp 0. This tests call to and +return from a function with arguments. +

+After Sys.add12() returns, Sys.main() sums local 0 through local 4 and returns the +result. This tests that the local segment was properly allocated on the stack and that the local +variables were not overwritten by the call to Sys.main(). It also tests that local 0 and +local 4 were properly initialized to 0. + +

Sys.add12()

+ +THIS and THAT are set to known values so that context save and restore can be tested. +

+Returns argument 0 plus 12. + + +

Test Coverage

+ +

+Functions with no arguments return to correct RIP (Return Instruction Point) with correct return value on stack.
+This can fail if the RIP is not correctly pushed on the stack by the calling code, or if the returning +code does not store the RIP in a temporary register before overwriting it with the return value. + +

+Functions with arguments return to correct RIP with correct return value on stack.
+This can fail if it is assumed that ARG points to the RIP. + +

+Functions with local variables allocate space on the stack for the local variables.
+This can fail if the function prologue is not written or if the SP is not updated after zeroing +the local variables. + +

+All local variables are initialized to 0.
+Common errors are to forget this completely, or for the zeroing loop to be off by one. + +

+THIS and THAT are correctly retained across function calls. Looking ahead, in Project 9 you will be asked to write a simple computer game in the high-level Jack language. You can run your game (following compilation) on the supplied VM Emulator. But, if you choose to translate the VM code that the compiler generates using your VM Translator, then code like +"push THIS, push THAT ... pop THIS, pop THAT" can cause some interesting failures! + + +

Debugging

+These comments assume that your VM translator has passed the SimpleFunction test. +

+If RAM[0] is incorrect, you have a stack skew. More data was pushed onto the stack by +call than was popped by return, or vice versa. See debugging with +breakpoints later in this section. +

+If one or more of RAM[1] through RAM[4] is incorrect, the LCL, +ARG, THIS and THAT pointers are not being correctly saved or restored. +Most likely problem is when they are being saved; the SimpleFunction test verified that +return restored them correctly. +

+If RAM[5] is incorrect there may be a problem with setting up the ARG pointer. +

+If RAM[4] is incorrect and RAM[5] is correct, there may be a problem with +allocation or initialization of local variables. + +

Debugging with breakpoints

+ +To find tough bugs you can use the "breakpoint" facility in the CPU Emulator (red flag button). +You can use breakpoints to have you program stop when it gets to a particular RAM address. For +example:
+ • load the NestedCall.tst file,
+ • set a PC breakpoint at the ROM address for (Sys.main),
+ • hit the run button.
+When the CPU Emulator stops at the breakpoint you can inspect the RAM to check the stack and pointers values. +(If the breakpoint isn't hit, you will need to to single-step debug through +your calling code to see why it didn't get there.) +

+Other useful places to set breakpoints are the entry points to the other functions and at the +first and final instructions generated for return commands. +

+NestedCallStack.html shows the expected stack values at various points +during the test. + +

Finding ROM address in your ASM code

+It is not easy to find the ROM locations where you want to set breakpoints, because there is no +one-to-one correspondence between the ASM file line numbers and the ROM addresses. This is made even more +difficult because the supplied CPU Emulator does not display the (LABELS) in its ROM panel. +

+There are two things that you can do to make this easier. +

+

Modify your assembler to generate a listing file.
+A listing file shows all the ASM source lines, including comments, as well as the ROM addresses and +the values of the labels and the instructions. For example, here is a snippet of a listing file generated by an assembler written by Mark Armbrust: +
+   20    16      @i      // i -= 1
+   21  FC88      M=M-1
+             
+   22  FC10      D=M     // if i > 0
+   23     6      @LOOP
+   24  E301      D;JGT   //      goto LOOP
+             
+   25        (STOP)
+   25    25      @STOP
+   26  EA87      0;JMP
+
+Data Symbols
+
+   16 D  i
+
+Code Symbols
+
+    6 C  LOOP
+   17 C  SKIP
+   25 C  STOP
+
+For the Nand2Tetris environment, it is most useful to list the ROM addresses and A-instruction +values in decimal. In the above snippet, the C-instruction values are +listed in hexadecimal. +

+The list file is generated during pass 2 of the Assembler, parallel to generating the .hack file. To +make it easier to handle blank and comment only lines, Mark has Parser.commandType() return +NO_COMMAND for source lines with no command. Mark also added Parser.sourceLine() that returns the +unmodified source line. +

+

Have your VM Translator write the VM source lines as comments in the ASM output.
+For example: +
+    // label LOOP
+(Sys.init$LOOP)
+    // goto LOOP
+@Sys.init$LOOP
+0;JMP
+    //
+    // // Sys.main()
+    // 
+    // // Sets locals 1, 2 and 3, leaving locals 0 and 4 unchanged to test
+    // // default local initialization to 0.  (RAM set to -1 by test setup.)
+    // // Calls Sys.add12(123) and stores return value (135) in temp 0.
+    // // Returns local 0 + local 1 + local 2 + local 3 + local 4 (456) to confirm
+    // // that locals were not mangled by function call.
+    // 
+    // function Sys.main 5
+(Sys.main)
+@5
+D=-A
+($3)
+@SP
+
+Note that comments in the VM source become double comments. Looking ahead, in Project 11 you will be asked to write a compiler for the Jack language. If your compiler will write the Jack source lines as comments in the +generated VM files, this convention will be quite useful. + + + \ No newline at end of file diff --git a/projects/08/FunctionCalls/NestedCall/NestedCall.tst b/projects/08/FunctionCalls/NestedCall/NestedCall.tst new file mode 100644 index 0000000..70e5523 --- /dev/null +++ b/projects/08/FunctionCalls/NestedCall/NestedCall.tst @@ -0,0 +1,65 @@ +// Test file for NestedCall test. + +load NestedCall.asm, +output-file NestedCall.out, +compare-to NestedCall.cmp, +output-list RAM[0]%D1.6.1 RAM[1]%D1.6.1 RAM[2]%D1.6.1 RAM[3]%D1.6.1 RAM[4]%D1.6.1 RAM[5]%D1.6.1 RAM[6]%D1.6.1; + +set RAM[0] 261, +set RAM[1] 261, +set RAM[2] 256, +set RAM[3] -3, +set RAM[4] -4, +set RAM[5] -1, // test results +set RAM[6] -1, +set RAM[256] 1234, // fake stack frame from call Sys.init +set RAM[257] -1, +set RAM[258] -2, +set RAM[259] -3, +set RAM[260] -4, + +set RAM[261] -1, // Initialize stack to check for local segment +set RAM[262] -1, // being cleared to zero. +set RAM[263] -1, +set RAM[264] -1, +set RAM[265] -1, +set RAM[266] -1, +set RAM[267] -1, +set RAM[268] -1, +set RAM[269] -1, +set RAM[270] -1, +set RAM[271] -1, +set RAM[272] -1, +set RAM[273] -1, +set RAM[274] -1, +set RAM[275] -1, +set RAM[276] -1, +set RAM[277] -1, +set RAM[278] -1, +set RAM[279] -1, +set RAM[280] -1, +set RAM[281] -1, +set RAM[282] -1, +set RAM[283] -1, +set RAM[284] -1, +set RAM[285] -1, +set RAM[286] -1, +set RAM[287] -1, +set RAM[288] -1, +set RAM[289] -1, +set RAM[290] -1, +set RAM[291] -1, +set RAM[292] -1, +set RAM[293] -1, +set RAM[294] -1, +set RAM[295] -1, +set RAM[296] -1, +set RAM[297] -1, +set RAM[298] -1, +set RAM[299] -1, + +repeat 4000 { + ticktock; +} + +output; diff --git a/projects/08/FunctionCalls/NestedCall/NestedCallStack.html b/projects/08/FunctionCalls/NestedCall/NestedCallStack.html new file mode 100644 index 0000000..70582b6 --- /dev/null +++ b/projects/08/FunctionCalls/NestedCall/NestedCallStack.html @@ -0,0 +1,306 @@ + + + + + NestedCall.tst — Stack Frames + + + + + + + +
+ + + + + + + + + + + +
Bootstrap init
Pointers
0256SP
1-1LCL
2-2ARG
3-3THIS
4-4THAT
Stack
256???←SP

+ This is how my boot­strap code initial­izes the pointers before calling Sys.init(). +

+ Setting the LCL, ARG, THIS and THAT point­ers to known illegal values helps identify + when a pointer is used before it is initial­ized. +

+ (If you are running the NestedCall test with­out boot­strap code, you will not see this state.)

+
+ + + + + + + + + + + + + + + + +
Entry to Sys.init()
Pointers
0261SP
1261LCL
2256ARG
3-3THIS
4-4THAT
Stack
256*Return IP←ARG
257-1Saved LCL
258-2Saved ARGSys.init
259-3Saved THIS frame
260-4Saved THAT
261???←LCL, SP

+ This is how NestedCall.tst initial­izes the pointers and stack. This is what RAM looks + like after my boot­strap calls Sys.init(). +

+ (If your VM trans­lation includes the boot­strap, the -1 through -4 values may be + different if your boot­strap initial­izes them.)

+
+ + + + + + + + + + + + + + + + + + + + +
Entry to Sys.main()
Pointers
0266SP
1266LCL
2261ARG
34000THIS
45000THAT
Stack
256*Return IP
257-1Saved LCL
258-2Saved ARGSys.init
259-3Saved THIS frame
260-4Saved THAT
261*Return IP←ARG
262261Saved LCL
263256Saved ARGSys.main
2644000Saved THIS frame
2655000Saved THAT
266???←LCL, SP
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
After Sys.main() prologue
Pointers
0271SP
1266LCL
2261ARG
34000THIS
45000THAT
Stack
256*Return IP
257-1Saved LCL
258-2Saved ARGSys.init
259-3Saved THIS frame
260-4Saved THAT
261*Return IP←ARG
262261Saved LCL
263256Saved ARGSys.main
2644000Saved THIS frame
2655000Saved THAT
2660local 0←LCL
2670local 1
2680local 2
2690local 3
2700local 4
271???←SP

+ The function prologue is the assembly language code generated for the + "function" VM command. +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Entry to Sys.add12(123)
Pointers
0277SP
1277LCL
2271ARG
34001THIS
45001THAT
Stack
256*Return IP
257-1Saved LCL
258-2Saved ARGSys.init
259-3Saved THIS frame
260-4Saved THAT
261*Return IP
262261Saved LCL
263256Saved ARGSys.main
2644000Saved THIS frame
2655000Saved THAT
2660local 0
267200local 1
26840local 2
2696local 3
2700local 4
271123argument 0←ARG
272*Return IP
273266Saved LCLSys.add12
274261Saved ARG frame
2754001Saved THIS
2765001Saved THAT
277???←LCL, SP
+
+ +

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Before Sys.add12() return
Pointers
0278SP
1277LCL
2271ARG
34002THIS
45002THAT
Stack
256*Return IP
257-1Saved LCL
258-2Saved ARGSys.init
259-3Saved THIS frame
260-4Saved THAT
261*Return IP
262261Saved LCL
263256Saved ARGSys.main
2644000Saved THIS frame
2655000Saved THAT
2660local 0
267200local 1
26840local 2
2696local 3
2700local 4
271123argument 0←ARG
272*Return IP
273266Saved LCLSys.add12
274261Saved ARG frame
2754001Saved THIS
2765001Saved THAT
277135Return value←LCL
278???←SP
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
After Sys.add12() return
Pointers
0272SP
1266LCL
2261ARG
34001THIS
45001THAT
Stack
256*Return IP
257-1Saved LCL
258-2Saved ARGSys.init
259-3Saved THIS frame
260-4Saved THAT
261*Return IP←ARG
262261Saved LCL
263256Saved ARGSys.main
2644000Saved THIS frame
2655000Saved THAT
2660local 0←LCL
267200local 1
26840local 2
2696local 3
2700local 4
271135Return value
272???←SP
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Before Sys.main() return
Pointers
0272SP
1266LCL
2261ARG
34001THIS
45001THAT
Stack
256*Return IP
257-1Saved LCL
258-2Saved ARGSys.init
259-3Saved THIS frame
260-4Saved THAT
261*Return IP←ARG
262261Saved LCL
263256Saved ARGSys.main
2644000Saved THIS frame
2655000Saved THAT
2660local 0←LCL
267200local 1
26840local 2
2696local 3
2700local 4
271246Return value
272???←SP
+
+ + + + + + + + + + + + + + + + +
After Sys.main() return
Pointers
0262SP
1261LCL
2256ARG
34000THIS
45000THAT
Stack
256*Return IP←ARG
257-1Saved LCL
258-2Saved ARGSys.init
259-3Saved THIS frame
260-4Saved THAT
261246Return value←LCL
262???←SP
+
+ + + + + + + + + + + + + + + +
In Sys.init() halt loop
Pointers
0261SP
1261LCL
2256ARG
34000THIS
45000THAT
Stack
256*Return IP←ARG
257-1Saved LCL
258-2Saved ARGSys.init
259-3Saved THIS frame
260-4Saved THAT
261???←LCL, SP
+
+ + + \ No newline at end of file diff --git a/projects/08/FunctionCalls/NestedCall/NestedCallVME.tst b/projects/08/FunctionCalls/NestedCall/NestedCallVME.tst new file mode 100644 index 0000000..2c689b8 --- /dev/null +++ b/projects/08/FunctionCalls/NestedCall/NestedCallVME.tst @@ -0,0 +1,70 @@ +// Test file for NestedCall test. + +load Sys.vm, +output-file NestedCall.out, +compare-to NestedCall.cmp, +output-list RAM[0]%D1.6.1 RAM[1]%D1.6.1 RAM[2]%D1.6.1 RAM[3]%D1.6.1 RAM[4]%D1.6.1 RAM[5]%D1.6.1 RAM[6]%D1.6.1; + +set RAM[0] 261, +set RAM[1] 261, +set RAM[2] 256, +set RAM[3] -3, +set RAM[4] -4, +set RAM[5] -1, // test results +set RAM[6] -1, +set RAM[256] 1234, // fake stack frame from call Sys.init +set RAM[257] -1, +set RAM[258] -2, +set RAM[259] -3, +set RAM[260] -4, + +set RAM[261] -1, // Initialize stack to check for local segment +set RAM[262] -1, // being cleared to zero. +set RAM[263] -1, +set RAM[264] -1, +set RAM[265] -1, +set RAM[266] -1, +set RAM[267] -1, +set RAM[268] -1, +set RAM[269] -1, +set RAM[270] -1, +set RAM[271] -1, +set RAM[272] -1, +set RAM[273] -1, +set RAM[274] -1, +set RAM[275] -1, +set RAM[276] -1, +set RAM[277] -1, +set RAM[278] -1, +set RAM[279] -1, +set RAM[280] -1, +set RAM[281] -1, +set RAM[282] -1, +set RAM[283] -1, +set RAM[284] -1, +set RAM[285] -1, +set RAM[286] -1, +set RAM[287] -1, +set RAM[288] -1, +set RAM[289] -1, +set RAM[290] -1, +set RAM[291] -1, +set RAM[292] -1, +set RAM[293] -1, +set RAM[294] -1, +set RAM[295] -1, +set RAM[296] -1, +set RAM[297] -1, +set RAM[298] -1, +set RAM[299] -1, + +set sp 261, +set local 261, +set argument 256, +set this 3000, +set that 4000; + +repeat 50 { + vmstep; +} +output; diff --git a/projects/08/FunctionCalls/NestedCall/Sys.vm b/projects/08/FunctionCalls/NestedCall/Sys.vm new file mode 100644 index 0000000..8b0b003 --- /dev/null +++ b/projects/08/FunctionCalls/NestedCall/Sys.vm @@ -0,0 +1,63 @@ +// Sys.vm for NestedCall test. + +// Sys.init() +// +// Calls Sys.main() and stores return value in temp 1. +// Does not return. (Enters infinite loop.) + +function Sys.init 0 +push constant 4000 // test THIS and THAT context save +pop pointer 0 +push constant 5000 +pop pointer 1 +call Sys.main 0 +pop temp 1 +label LOOP +goto LOOP + +// Sys.main() +// +// Sets locals 1, 2 and 3, leaving locals 0 and 4 unchanged to test +// default local initialization to 0. (RAM set to -1 by test setup.) +// Calls Sys.add12(123) and stores return value (135) in temp 0. +// Returns local 0 + local 1 + local 2 + local 3 + local 4 (456) to confirm +// that locals were not mangled by function call. + +function Sys.main 5 +push constant 4001 +pop pointer 0 +push constant 5001 +pop pointer 1 +push constant 200 +pop local 1 +push constant 40 +pop local 2 +push constant 6 +pop local 3 +push constant 123 +call Sys.add12 1 +pop temp 0 +push local 0 +push local 1 +push local 2 +push local 3 +push local 4 +add +add +add +add +return + +// Sys.add12(int n) +// +// Returns n+12. + +function Sys.add12 0 +push constant 4002 +pop pointer 0 +push constant 5002 +pop pointer 1 +push argument 0 +push constant 12 +add +return diff --git a/projects/08/FunctionCalls/SimpleFunction/SimpleFunction.asm b/projects/08/FunctionCalls/SimpleFunction/SimpleFunction.asm new file mode 100644 index 0000000..9332357 --- /dev/null +++ b/projects/08/FunctionCalls/SimpleFunction/SimpleFunction.asm @@ -0,0 +1,190 @@ +// function SimpleFunction.test 2 +(SimpleFunction.test) +@0 +D = A +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push 0 +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push 0 +// ^ push 0 * 2 + +// push local 0 +@0 +D = A +@LCL +A = M +A = D + A +D = M +// ^ D = *(LCL + index) +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push D + +// push local 1 +@1 +D = A +@LCL +A = M +A = D + A +D = M +// ^ D = *(LCL + index) +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push D + +// add +@SP +A = M +A = A - 1 +A = A - 1 +D = M +A = A + 1 +D = D + M +A = A - 1 +M = D +@SP +M = M - 1 + +// not +@SP +A = M +A = A - 1 +M = !M + +// push argument 0 +@0 +D = A +@ARG +A = M +A = D + A +D = M +// ^ D = *(LCL + index) +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push D + +// add +@SP +A = M +A = A - 1 +A = A - 1 +D = M +A = A + 1 +D = D + M +A = A - 1 +M = D +@SP +M = M - 1 + +// push argument 1 +@1 +D = A +@ARG +A = M +A = D + A +D = M +// ^ D = *(LCL + index) +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push D + +// sub +@SP +A = M +A = A - 1 +A = A - 1 +D = M +A = A + 1 +D = D - M +A = A - 1 +M = D +@SP +M = M - 1 + +// return +@LCL +D = M +@R13 +M = D +// ^ R13 = FRAME = LCL +@5 +D = A +@R13 +D = M - D +@R14 +M = D +// ^ R14 = RET = *(FRAME - 5) +@SP +A = M + A = A - 1 +D = M +@SP +M = M - 1 +@ARG +A = M +M = D +// ^ POP into *ARG +@ARG +D = M + 1 +@SP +M = D +// ^ SP = ARG + 1 +@1 +D = A +@R13 +A = M - D +D = M +@THAT +M = D +// ^ THAT = *(FRAME - 1) +@2 +D = A +@R13 +A = M - D +D = M +@THIS +M = D +// ^ THIS = *(FRAME - 2) +@3 +D = A +@R13 +A = M - D +D = M +@ARG +M = D +// ^ ARG = *(FRAME - 3) +@4 +D = A +@R13 +A = M - D +D = M +@LCL +M = D +// ^ LCL = *(FRAME - 4) +@R14 +A = M +A = M +0;JMP +// ^ goto RET + + diff --git a/projects/08/FunctionCalls/SimpleFunction/SimpleFunction.cmp b/projects/08/FunctionCalls/SimpleFunction/SimpleFunction.cmp new file mode 100644 index 0000000..c3ea911 --- /dev/null +++ b/projects/08/FunctionCalls/SimpleFunction/SimpleFunction.cmp @@ -0,0 +1,2 @@ +| RAM[0] | RAM[1] | RAM[2] | RAM[3] | RAM[4] |RAM[310]| +| 311 | 305 | 300 | 3010 | 4010 | 1196 | diff --git a/projects/08/FunctionCalls/SimpleFunction/SimpleFunction.tst b/projects/08/FunctionCalls/SimpleFunction/SimpleFunction.tst new file mode 100644 index 0000000..c7b5905 --- /dev/null +++ b/projects/08/FunctionCalls/SimpleFunction/SimpleFunction.tst @@ -0,0 +1,29 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/08/FunctionCalls/SimpleFunction/SimpleFunction.tst + +load SimpleFunction.asm, +output-file SimpleFunction.out, +compare-to SimpleFunction.cmp, +output-list RAM[0]%D1.6.1 RAM[1]%D1.6.1 RAM[2]%D1.6.1 + RAM[3]%D1.6.1 RAM[4]%D1.6.1 RAM[310]%D1.6.1; + +set RAM[0] 317, +set RAM[1] 317, +set RAM[2] 310, +set RAM[3] 3000, +set RAM[4] 4000, +set RAM[310] 1234, +set RAM[311] 37, +set RAM[312] 1000, +set RAM[313] 305, +set RAM[314] 300, +set RAM[315] 3010, +set RAM[316] 4010, + +repeat 300 { + ticktock; +} + +output; diff --git a/projects/08/FunctionCalls/SimpleFunction/SimpleFunction.vm b/projects/08/FunctionCalls/SimpleFunction/SimpleFunction.vm new file mode 100644 index 0000000..d64a34f --- /dev/null +++ b/projects/08/FunctionCalls/SimpleFunction/SimpleFunction.vm @@ -0,0 +1,16 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/08/FunctionCalls/SimpleFunction/SimpleFunction.vm + +// Performs a simple calculation and returns the result. +function SimpleFunction.test 2 +push local 0 +push local 1 +add +not +push argument 0 +add +push argument 1 +sub +return diff --git a/projects/08/FunctionCalls/SimpleFunction/SimpleFunctionVME.tst b/projects/08/FunctionCalls/SimpleFunction/SimpleFunctionVME.tst new file mode 100644 index 0000000..c9267ee --- /dev/null +++ b/projects/08/FunctionCalls/SimpleFunction/SimpleFunctionVME.tst @@ -0,0 +1,29 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/08/FunctionCalls/SimpleFunction/SimpleFunctionVME.tst + +load SimpleFunction.vm, +output-file SimpleFunction.out, +compare-to SimpleFunction.cmp, +output-list RAM[0]%D1.6.1 RAM[1]%D1.6.1 RAM[2]%D1.6.1 + RAM[3]%D1.6.1 RAM[4]%D1.6.1 RAM[310]%D1.6.1; + +set sp 317, +set local 317, +set argument 310, +set this 3000, +set that 4000, +set argument[0] 1234, +set argument[1] 37, +set argument[2] 9, +set argument[3] 305, +set argument[4] 300, +set argument[5] 3010, +set argument[6] 4010, + +repeat 10 { + vmstep; +} + +output; diff --git a/projects/08/FunctionCalls/StaticsTest/Class1.asm b/projects/08/FunctionCalls/StaticsTest/Class1.asm new file mode 100644 index 0000000..fcabb30 --- /dev/null +++ b/projects/08/FunctionCalls/StaticsTest/Class1.asm @@ -0,0 +1,106 @@ +// Unsupported Function + +// push argument 0 +@0 +D = A +@ARG +A = M +A = D + A +D = M +// ^ D = *(LCL + index) +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push D + +// pop static Class1.0 +@SP +A = M +A = A - 1 +D = M +@SP +M = M - 1 +// ^ pop into D +@Class1.0 +M = D +// ^ Class1.0 = D + +// push argument 1 +@1 +D = A +@ARG +A = M +A = D + A +D = M +// ^ D = *(LCL + index) +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push D + +// pop static Class1.1 +@SP +A = M +A = A - 1 +D = M +@SP +M = M - 1 +// ^ pop into D +@Class1.1 +M = D +// ^ Class1.1 = D + +// push constant 0 +@0 +D = A +@SP +A = M +M = D +@SP +M = M + 1 + +// Unsupported Return + +// Unsupported Function + +// push static Class1.0 +@Class1.0 +D = M +// ^ D = Class1.0 +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push from D + +// push static Class1.1 +@Class1.1 +D = M +// ^ D = Class1.1 +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push from D + +// sub +@SP +A = M +A = A - 1 +A = A - 1 +D = M +A = A + 1 +D = D - M +A = A - 1 +M = D +@SP +M = M - 1 + +// Unsupported Return + diff --git a/projects/08/FunctionCalls/StaticsTest/Class1.vm b/projects/08/FunctionCalls/StaticsTest/Class1.vm new file mode 100644 index 0000000..c463537 --- /dev/null +++ b/projects/08/FunctionCalls/StaticsTest/Class1.vm @@ -0,0 +1,20 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/08/FunctionCalls/StaticsTest/Class1.vm + +// Stores two supplied arguments in static[0] and static[1]. +function Class1.set 0 +push argument 0 +pop static 0 +push argument 1 +pop static 1 +push constant 0 +return + +// Returns static[0] - static[1]. +function Class1.get 0 +push static 0 +push static 1 +sub +return diff --git a/projects/08/FunctionCalls/StaticsTest/Class2.asm b/projects/08/FunctionCalls/StaticsTest/Class2.asm new file mode 100644 index 0000000..131b559 --- /dev/null +++ b/projects/08/FunctionCalls/StaticsTest/Class2.asm @@ -0,0 +1,106 @@ +// Unsupported Function + +// push argument 0 +@0 +D = A +@ARG +A = M +A = D + A +D = M +// ^ D = *(LCL + index) +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push D + +// pop static Class2.0 +@SP +A = M +A = A - 1 +D = M +@SP +M = M - 1 +// ^ pop into D +@Class2.0 +M = D +// ^ Class2.0 = D + +// push argument 1 +@1 +D = A +@ARG +A = M +A = D + A +D = M +// ^ D = *(LCL + index) +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push D + +// pop static Class2.1 +@SP +A = M +A = A - 1 +D = M +@SP +M = M - 1 +// ^ pop into D +@Class2.1 +M = D +// ^ Class2.1 = D + +// push constant 0 +@0 +D = A +@SP +A = M +M = D +@SP +M = M + 1 + +// Unsupported Return + +// Unsupported Function + +// push static Class2.0 +@Class2.0 +D = M +// ^ D = Class2.0 +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push from D + +// push static Class2.1 +@Class2.1 +D = M +// ^ D = Class2.1 +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push from D + +// sub +@SP +A = M +A = A - 1 +A = A - 1 +D = M +A = A + 1 +D = D - M +A = A - 1 +M = D +@SP +M = M - 1 + +// Unsupported Return + diff --git a/projects/08/FunctionCalls/StaticsTest/Class2.vm b/projects/08/FunctionCalls/StaticsTest/Class2.vm new file mode 100644 index 0000000..94f2946 --- /dev/null +++ b/projects/08/FunctionCalls/StaticsTest/Class2.vm @@ -0,0 +1,20 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/08/FunctionCalls/StaticsTest/Class2.vm + +// Stores two supplied arguments in static[0] and static[1]. +function Class2.set 0 +push argument 0 +pop static 0 +push argument 1 +pop static 1 +push constant 0 +return + +// Returns static[0] - static[1]. +function Class2.get 0 +push static 0 +push static 1 +sub +return diff --git a/projects/08/FunctionCalls/StaticsTest/StaticsTest.asm b/projects/08/FunctionCalls/StaticsTest/StaticsTest.asm new file mode 100644 index 0000000..73d7861 --- /dev/null +++ b/projects/08/FunctionCalls/StaticsTest/StaticsTest.asm @@ -0,0 +1,897 @@ +// Bootstrap code +@256 +D = A +@SP +M = D +// ^ SP = 256 + +// call Sys.init 0 +@Sys.init:return:0 +D = A +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push return-address +@LCL +D = M +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push lcl +@ARG +D = M +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push arg +@THIS +D = M +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push this +@THAT +D = M +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push that +@SP +D = M +@0 +D = D - A +@5 +D = D - A +@ARG +M = D +// ^ ARG = SP - 0 - 5 +@SP +D = M +@LCL +M = D +// ^ LCL = SP +@Sys.init +0;JMP +// ^ goto Sys.init +(Sys.init:return:0) + + +// Start /home/felixm/dev/nand2tetris/projects/08/FunctionCalls/StaticsTest/Sys.vm + +// function Sys.init 0 +(Sys.init) +@0 +D = A +// ^ push 0 * 0 + +// push constant 6 +@6 +D = A +@SP +A = M +M = D +@SP +M = M + 1 + +// push constant 8 +@8 +D = A +@SP +A = M +M = D +@SP +M = M + 1 + +// call Class1.set 2 +@Class1.set:return:1 +D = A +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push return-address +@LCL +D = M +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push lcl +@ARG +D = M +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push arg +@THIS +D = M +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push this +@THAT +D = M +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push that +@SP +D = M +@2 +D = D - A +@5 +D = D - A +@ARG +M = D +// ^ ARG = SP - 2 - 5 +@SP +D = M +@LCL +M = D +// ^ LCL = SP +@Class1.set +0;JMP +// ^ goto Class1.set +(Class1.set:return:1) + + +// pop temp 0 +@0 +D = A +@5 +A = D + A +D = A +@R13 +M = D +// ^ R13 = temp + index +@SP +A = M +A = A - 1 +D = M +@SP +M = M - 1 +// ^ pop into D +@R13 +A = M +M = D +// ^ *R13 = D + +// push constant 23 +@23 +D = A +@SP +A = M +M = D +@SP +M = M + 1 + +// push constant 15 +@15 +D = A +@SP +A = M +M = D +@SP +M = M + 1 + +// call Class2.set 2 +@Class2.set:return:2 +D = A +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push return-address +@LCL +D = M +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push lcl +@ARG +D = M +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push arg +@THIS +D = M +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push this +@THAT +D = M +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push that +@SP +D = M +@2 +D = D - A +@5 +D = D - A +@ARG +M = D +// ^ ARG = SP - 2 - 5 +@SP +D = M +@LCL +M = D +// ^ LCL = SP +@Class2.set +0;JMP +// ^ goto Class2.set +(Class2.set:return:2) + + +// pop temp 0 +@0 +D = A +@5 +A = D + A +D = A +@R13 +M = D +// ^ R13 = temp + index +@SP +A = M +A = A - 1 +D = M +@SP +M = M - 1 +// ^ pop into D +@R13 +A = M +M = D +// ^ *R13 = D + +// call Class1.get 0 +@Class1.get:return:3 +D = A +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push return-address +@LCL +D = M +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push lcl +@ARG +D = M +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push arg +@THIS +D = M +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push this +@THAT +D = M +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push that +@SP +D = M +@0 +D = D - A +@5 +D = D - A +@ARG +M = D +// ^ ARG = SP - 0 - 5 +@SP +D = M +@LCL +M = D +// ^ LCL = SP +@Class1.get +0;JMP +// ^ goto Class1.get +(Class1.get:return:3) + + +// call Class2.get 0 +@Class2.get:return:4 +D = A +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push return-address +@LCL +D = M +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push lcl +@ARG +D = M +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push arg +@THIS +D = M +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push this +@THAT +D = M +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push that +@SP +D = M +@0 +D = D - A +@5 +D = D - A +@ARG +M = D +// ^ ARG = SP - 0 - 5 +@SP +D = M +@LCL +M = D +// ^ LCL = SP +@Class2.get +0;JMP +// ^ goto Class2.get +(Class2.get:return:4) + + +// label Sys.init:WHILE +(Sys.init:WHILE) + +// goto Sys.init:WHILE +@Sys.init:WHILE +0;JMP + +// Start /home/felixm/dev/nand2tetris/projects/08/FunctionCalls/StaticsTest/Class1.vm + +// function Class1.set 0 +(Class1.set) +@0 +D = A +// ^ push 0 * 0 + +// push argument 0 +@0 +D = A +@ARG +A = M +A = D + A +D = M +// ^ D = *(ARG + index) +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push D + +// pop static Class1.0 +@SP +A = M +A = A - 1 +D = M +@SP +M = M - 1 +// ^ pop into D +@Class1.0 +M = D +// ^ Class1.0 = D + +// push argument 1 +@1 +D = A +@ARG +A = M +A = D + A +D = M +// ^ D = *(ARG + index) +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push D + +// pop static Class1.1 +@SP +A = M +A = A - 1 +D = M +@SP +M = M - 1 +// ^ pop into D +@Class1.1 +M = D +// ^ Class1.1 = D + +// push constant 0 +@0 +D = A +@SP +A = M +M = D +@SP +M = M + 1 + +// return +@LCL +D = M +@R13 +M = D +// ^ R13 = FRAME = LCL +@5 +D = A +@R13 +A = M - D +D = M +@R14 +M = D +// ^ R14 = RET = *(FRAME - 5) +@SP +A = M +A = A - 1 +D = M +@SP +M = M - 1 +@ARG +A = M +M = D +// ^ POP into *ARG +@ARG +D = M + 1 +@SP +M = D +// ^ SP = ARG + 1 +@1 +D = A +@R13 +A = M - D +D = M +@THAT +M = D +// ^ THAT = *(FRAME - 1) +@2 +D = A +@R13 +A = M - D +D = M +@THIS +M = D +// ^ THIS = *(FRAME - 2) +@3 +D = A +@R13 +A = M - D +D = M +@ARG +M = D +// ^ ARG = *(FRAME - 3) +@4 +D = A +@R13 +A = M - D +D = M +@LCL +M = D +// ^ LCL = *(FRAME - 4) +@R14 +A = M +0;JMP +// ^ goto RET + + +// function Class1.get 0 +(Class1.get) +@0 +D = A +// ^ push 0 * 0 + +// push static Class1.0 +@Class1.0 +D = M +// ^ D = Class1.0 +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push from D + +// push static Class1.1 +@Class1.1 +D = M +// ^ D = Class1.1 +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push from D + +// sub +@SP +A = M +A = A - 1 +A = A - 1 +D = M +A = A + 1 +D = D - M +A = A - 1 +M = D +@SP +M = M - 1 + +// return +@LCL +D = M +@R13 +M = D +// ^ R13 = FRAME = LCL +@5 +D = A +@R13 +A = M - D +D = M +@R14 +M = D +// ^ R14 = RET = *(FRAME - 5) +@SP +A = M +A = A - 1 +D = M +@SP +M = M - 1 +@ARG +A = M +M = D +// ^ POP into *ARG +@ARG +D = M + 1 +@SP +M = D +// ^ SP = ARG + 1 +@1 +D = A +@R13 +A = M - D +D = M +@THAT +M = D +// ^ THAT = *(FRAME - 1) +@2 +D = A +@R13 +A = M - D +D = M +@THIS +M = D +// ^ THIS = *(FRAME - 2) +@3 +D = A +@R13 +A = M - D +D = M +@ARG +M = D +// ^ ARG = *(FRAME - 3) +@4 +D = A +@R13 +A = M - D +D = M +@LCL +M = D +// ^ LCL = *(FRAME - 4) +@R14 +A = M +0;JMP +// ^ goto RET + + +// Start /home/felixm/dev/nand2tetris/projects/08/FunctionCalls/StaticsTest/Class2.vm + +// function Class2.set 0 +(Class2.set) +@0 +D = A +// ^ push 0 * 0 + +// push argument 0 +@0 +D = A +@ARG +A = M +A = D + A +D = M +// ^ D = *(ARG + index) +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push D + +// pop static Class2.0 +@SP +A = M +A = A - 1 +D = M +@SP +M = M - 1 +// ^ pop into D +@Class2.0 +M = D +// ^ Class2.0 = D + +// push argument 1 +@1 +D = A +@ARG +A = M +A = D + A +D = M +// ^ D = *(ARG + index) +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push D + +// pop static Class2.1 +@SP +A = M +A = A - 1 +D = M +@SP +M = M - 1 +// ^ pop into D +@Class2.1 +M = D +// ^ Class2.1 = D + +// push constant 0 +@0 +D = A +@SP +A = M +M = D +@SP +M = M + 1 + +// return +@LCL +D = M +@R13 +M = D +// ^ R13 = FRAME = LCL +@5 +D = A +@R13 +A = M - D +D = M +@R14 +M = D +// ^ R14 = RET = *(FRAME - 5) +@SP +A = M +A = A - 1 +D = M +@SP +M = M - 1 +@ARG +A = M +M = D +// ^ POP into *ARG +@ARG +D = M + 1 +@SP +M = D +// ^ SP = ARG + 1 +@1 +D = A +@R13 +A = M - D +D = M +@THAT +M = D +// ^ THAT = *(FRAME - 1) +@2 +D = A +@R13 +A = M - D +D = M +@THIS +M = D +// ^ THIS = *(FRAME - 2) +@3 +D = A +@R13 +A = M - D +D = M +@ARG +M = D +// ^ ARG = *(FRAME - 3) +@4 +D = A +@R13 +A = M - D +D = M +@LCL +M = D +// ^ LCL = *(FRAME - 4) +@R14 +A = M +0;JMP +// ^ goto RET + + +// function Class2.get 0 +(Class2.get) +@0 +D = A +// ^ push 0 * 0 + +// push static Class2.0 +@Class2.0 +D = M +// ^ D = Class2.0 +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push from D + +// push static Class2.1 +@Class2.1 +D = M +// ^ D = Class2.1 +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push from D + +// sub +@SP +A = M +A = A - 1 +A = A - 1 +D = M +A = A + 1 +D = D - M +A = A - 1 +M = D +@SP +M = M - 1 + +// return +@LCL +D = M +@R13 +M = D +// ^ R13 = FRAME = LCL +@5 +D = A +@R13 +A = M - D +D = M +@R14 +M = D +// ^ R14 = RET = *(FRAME - 5) +@SP +A = M +A = A - 1 +D = M +@SP +M = M - 1 +@ARG +A = M +M = D +// ^ POP into *ARG +@ARG +D = M + 1 +@SP +M = D +// ^ SP = ARG + 1 +@1 +D = A +@R13 +A = M - D +D = M +@THAT +M = D +// ^ THAT = *(FRAME - 1) +@2 +D = A +@R13 +A = M - D +D = M +@THIS +M = D +// ^ THIS = *(FRAME - 2) +@3 +D = A +@R13 +A = M - D +D = M +@ARG +M = D +// ^ ARG = *(FRAME - 3) +@4 +D = A +@R13 +A = M - D +D = M +@LCL +M = D +// ^ LCL = *(FRAME - 4) +@R14 +A = M +0;JMP +// ^ goto RET + + diff --git a/projects/08/FunctionCalls/StaticsTest/StaticsTest.cmp b/projects/08/FunctionCalls/StaticsTest/StaticsTest.cmp new file mode 100644 index 0000000..5589f1e --- /dev/null +++ b/projects/08/FunctionCalls/StaticsTest/StaticsTest.cmp @@ -0,0 +1,2 @@ +| RAM[0] |RAM[261]|RAM[262]| +| 263 | -2 | 8 | diff --git a/projects/08/FunctionCalls/StaticsTest/StaticsTest.tst b/projects/08/FunctionCalls/StaticsTest/StaticsTest.tst new file mode 100644 index 0000000..1b9194e --- /dev/null +++ b/projects/08/FunctionCalls/StaticsTest/StaticsTest.tst @@ -0,0 +1,17 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/08/FunctionCalls/StaticsTest/StaticsTest.tst + +load StaticsTest.asm, +output-file StaticsTest.out, +compare-to StaticsTest.cmp, +output-list RAM[0]%D1.6.1 RAM[261]%D1.6.1 RAM[262]%D1.6.1; + +set RAM[0] 256, + +repeat 2500 { + ticktock; +} + +output; diff --git a/projects/08/FunctionCalls/StaticsTest/StaticsTestVME.tst b/projects/08/FunctionCalls/StaticsTest/StaticsTestVME.tst new file mode 100644 index 0000000..130ba66 --- /dev/null +++ b/projects/08/FunctionCalls/StaticsTest/StaticsTestVME.tst @@ -0,0 +1,17 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/08/FunctionCalls/StaticsTest/StaticsTestVME.tst + +load, // loads all the VM files from the current directory. +output-file StaticsTest.out, +compare-to StaticsTest.cmp, +output-list RAM[0]%D1.6.1 RAM[261]%D1.6.1 RAM[262]%D1.6.1; + +set sp 261, + +repeat 36 { + vmstep; +} + +output; diff --git a/projects/08/FunctionCalls/StaticsTest/Sys.asm b/projects/08/FunctionCalls/StaticsTest/Sys.asm new file mode 100644 index 0000000..151bf35 --- /dev/null +++ b/projects/08/FunctionCalls/StaticsTest/Sys.asm @@ -0,0 +1,95 @@ +// Unsupported Function + +// push constant 6 +@6 +D = A +@SP +A = M +M = D +@SP +M = M + 1 + +// push constant 8 +@8 +D = A +@SP +A = M +M = D +@SP +M = M + 1 + +// Unsupported Call + +// pop temp 0 +@0 +D = A +@5 +A = D + A +D = A +@R13 +M = D +// ^ R13 = temp + index +@SP +A = M +A = A - 1 +D = M +@SP +M = M - 1 +// ^ pop into D +@R13 +A = M +M = D +// ^ *R13 = D + +// push constant 23 +@23 +D = A +@SP +A = M +M = D +@SP +M = M + 1 + +// push constant 15 +@15 +D = A +@SP +A = M +M = D +@SP +M = M + 1 + +// Unsupported Call + +// pop temp 0 +@0 +D = A +@5 +A = D + A +D = A +@R13 +M = D +// ^ R13 = temp + index +@SP +A = M +A = A - 1 +D = M +@SP +M = M - 1 +// ^ pop into D +@R13 +A = M +M = D +// ^ *R13 = D + +// Unsupported Call + +// Unsupported Call + +// label WHILE +(WHILE) + +// goto WHILE +@WHILE +0;JMP + diff --git a/projects/08/FunctionCalls/StaticsTest/Sys.vm b/projects/08/FunctionCalls/StaticsTest/Sys.vm new file mode 100644 index 0000000..3708322 --- /dev/null +++ b/projects/08/FunctionCalls/StaticsTest/Sys.vm @@ -0,0 +1,20 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/08/FunctionCalls/StaticsTest/Sys.vm + +// Tests that different functions, stored in two different +// class files, manipulate the static segment correctly. +function Sys.init 0 +push constant 6 +push constant 8 +call Class1.set 2 +pop temp 0 // Dumps the return value +push constant 23 +push constant 15 +call Class2.set 2 +pop temp 0 // Dumps the return value +call Class1.get 0 +call Class2.get 0 +label WHILE +goto WHILE diff --git a/projects/08/ProgramFlow/BasicLoop/BasicLoop.asm b/projects/08/ProgramFlow/BasicLoop/BasicLoop.asm new file mode 100644 index 0000000..6778463 --- /dev/null +++ b/projects/08/ProgramFlow/BasicLoop/BasicLoop.asm @@ -0,0 +1,194 @@ +// push constant 0 +@0 +D = A +@SP +A = M +M = D +@SP +M = M + 1 + +// pop local 0 +@0 +D = A +@LCL +A = M +D = D + A +@R13 +M = D +// ^ R13 = local + index +@SP +A = M +A = A - 1 +D = M +@SP +M = M - 1 +// ^ pop into D +@R13 +A = M +M = D +// ^ *R13 = D + +// label LOOP_START +(LOOP_START) + +// push argument 0 +@0 +D = A +@ARG +A = M +A = D + A +D = M +// ^ D = *(LCL + index) +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push D + +// push local 0 +@0 +D = A +@LCL +A = M +A = D + A +D = M +// ^ D = *(LCL + index) +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push D + +// add +@SP +A = M +A = A - 1 +A = A - 1 +D = M +A = A + 1 +D = D + M +A = A - 1 +M = D +@SP +M = M - 1 + +// pop local 0 +@0 +D = A +@LCL +A = M +D = D + A +@R13 +M = D +// ^ R13 = local + index +@SP +A = M +A = A - 1 +D = M +@SP +M = M - 1 +// ^ pop into D +@R13 +A = M +M = D +// ^ *R13 = D + +// push argument 0 +@0 +D = A +@ARG +A = M +A = D + A +D = M +// ^ D = *(LCL + index) +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push D + +// push constant 1 +@1 +D = A +@SP +A = M +M = D +@SP +M = M + 1 + +// sub +@SP +A = M +A = A - 1 +A = A - 1 +D = M +A = A + 1 +D = D - M +A = A - 1 +M = D +@SP +M = M - 1 + +// pop argument 0 +@0 +D = A +@ARG +A = M +D = D + A +@R13 +M = D +// ^ R13 = argument + index +@SP +A = M +A = A - 1 +D = M +@SP +M = M - 1 +// ^ pop into D +@R13 +A = M +M = D +// ^ *R13 = D + +// push argument 0 +@0 +D = A +@ARG +A = M +A = D + A +D = M +// ^ D = *(LCL + index) +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push D + +// if-goto LOOP_START +@SP +A = M +A = A - 1 +D = M +@SP +M = M - 1 +@LOOP_START +D;JNE +// push local 0 +@0 +D = A +@LCL +A = M +A = D + A +D = M +// ^ D = *(LCL + index) +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push D + diff --git a/projects/08/ProgramFlow/BasicLoop/BasicLoop.cmp b/projects/08/ProgramFlow/BasicLoop/BasicLoop.cmp new file mode 100644 index 0000000..00d35d2 --- /dev/null +++ b/projects/08/ProgramFlow/BasicLoop/BasicLoop.cmp @@ -0,0 +1,2 @@ +| RAM[0] |RAM[256]| +| 257 | 6 | diff --git a/projects/08/ProgramFlow/BasicLoop/BasicLoop.tst b/projects/08/ProgramFlow/BasicLoop/BasicLoop.tst new file mode 100644 index 0000000..50ca118 --- /dev/null +++ b/projects/08/ProgramFlow/BasicLoop/BasicLoop.tst @@ -0,0 +1,20 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/08/ProgramFlow/BasicLoop/BasicLoop.tst + +load BasicLoop.asm, +output-file BasicLoop.out, +compare-to BasicLoop.cmp, +output-list RAM[0]%D1.6.1 RAM[256]%D1.6.1; + +set RAM[0] 256, +set RAM[1] 300, +set RAM[2] 400, +set RAM[400] 3, + +repeat 600 { + ticktock; +} + +output; diff --git a/projects/08/ProgramFlow/BasicLoop/BasicLoop.vm b/projects/08/ProgramFlow/BasicLoop/BasicLoop.vm new file mode 100644 index 0000000..2d63f13 --- /dev/null +++ b/projects/08/ProgramFlow/BasicLoop/BasicLoop.vm @@ -0,0 +1,22 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/08/ProgramFlow/BasicLoop/BasicLoop.vm + +// Computes the sum 1 + 2 + ... + argument[0] and pushes the +// result onto the stack. Argument[0] is initialized by the test +// script before this code starts running. +push constant 0 +pop local 0 // initializes sum = 0 +label LOOP_START +push argument 0 +push local 0 +add +pop local 0 // sum = sum + counter +push argument 0 +push constant 1 +sub +pop argument 0 // counter-- +push argument 0 +if-goto LOOP_START // If counter > 0, goto LOOP_START +push local 0 diff --git a/projects/08/ProgramFlow/BasicLoop/BasicLoopVME.tst b/projects/08/ProgramFlow/BasicLoop/BasicLoopVME.tst new file mode 100644 index 0000000..237fdff --- /dev/null +++ b/projects/08/ProgramFlow/BasicLoop/BasicLoopVME.tst @@ -0,0 +1,20 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/08/ProgramFlow/BasicLoop/BasicLoopVME.tst + +load BasicLoop.vm, +output-file BasicLoop.out, +compare-to BasicLoop.cmp, +output-list RAM[0]%D1.6.1 RAM[256]%D1.6.1; + +set sp 256, +set local 300, +set argument 400, +set argument[0] 3, + +repeat 33 { + vmstep; +} + +output; diff --git a/projects/08/ProgramFlow/FibonacciSeries/FibonacciSeries.asm b/projects/08/ProgramFlow/FibonacciSeries/FibonacciSeries.asm new file mode 100644 index 0000000..f413fc9 --- /dev/null +++ b/projects/08/ProgramFlow/FibonacciSeries/FibonacciSeries.asm @@ -0,0 +1,350 @@ +// push argument 1 +@1 +D = A +@ARG +A = M +A = D + A +D = M +// ^ D = *(LCL + index) +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push D + +// pop pointer THAT +@SP +A = M +A = A - 1 +D = M +@SP +M = M - 1 +@THAT +M = D +// ^ pop into THAT + +// push constant 0 +@0 +D = A +@SP +A = M +M = D +@SP +M = M + 1 + +// pop that 0 +@0 +D = A +@THAT +A = M +D = D + A +@R13 +M = D +// ^ R13 = that + index +@SP +A = M +A = A - 1 +D = M +@SP +M = M - 1 +// ^ pop into D +@R13 +A = M +M = D +// ^ *R13 = D + +// push constant 1 +@1 +D = A +@SP +A = M +M = D +@SP +M = M + 1 + +// pop that 1 +@1 +D = A +@THAT +A = M +D = D + A +@R13 +M = D +// ^ R13 = that + index +@SP +A = M +A = A - 1 +D = M +@SP +M = M - 1 +// ^ pop into D +@R13 +A = M +M = D +// ^ *R13 = D + +// push argument 0 +@0 +D = A +@ARG +A = M +A = D + A +D = M +// ^ D = *(LCL + index) +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push D + +// push constant 2 +@2 +D = A +@SP +A = M +M = D +@SP +M = M + 1 + +// sub +@SP +A = M +A = A - 1 +A = A - 1 +D = M +A = A + 1 +D = D - M +A = A - 1 +M = D +@SP +M = M - 1 + +// pop argument 0 +@0 +D = A +@ARG +A = M +D = D + A +@R13 +M = D +// ^ R13 = argument + index +@SP +A = M +A = A - 1 +D = M +@SP +M = M - 1 +// ^ pop into D +@R13 +A = M +M = D +// ^ *R13 = D + +// label MAIN_LOOP_START +(MAIN_LOOP_START) + +// push argument 0 +@0 +D = A +@ARG +A = M +A = D + A +D = M +// ^ D = *(LCL + index) +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push D + +// if-goto COMPUTE_ELEMENT +@SP +A = M +A = A - 1 +D = M +@SP +M = M - 1 +@COMPUTE_ELEMENT +D;JNE +// goto END_PROGRAM +@END_PROGRAM +0;JMP + +// label COMPUTE_ELEMENT +(COMPUTE_ELEMENT) + +// push that 0 +@0 +D = A +@THAT +A = M +A = D + A +D = M +// ^ D = *(LCL + index) +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push D + +// push that 1 +@1 +D = A +@THAT +A = M +A = D + A +D = M +// ^ D = *(LCL + index) +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push D + +// add +@SP +A = M +A = A - 1 +A = A - 1 +D = M +A = A + 1 +D = D + M +A = A - 1 +M = D +@SP +M = M - 1 + +// pop that 2 +@2 +D = A +@THAT +A = M +D = D + A +@R13 +M = D +// ^ R13 = that + index +@SP +A = M +A = A - 1 +D = M +@SP +M = M - 1 +// ^ pop into D +@R13 +A = M +M = D +// ^ *R13 = D + +// push pointer THAT +@THAT +D = M +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push THAT + +// push constant 1 +@1 +D = A +@SP +A = M +M = D +@SP +M = M + 1 + +// add +@SP +A = M +A = A - 1 +A = A - 1 +D = M +A = A + 1 +D = D + M +A = A - 1 +M = D +@SP +M = M - 1 + +// pop pointer THAT +@SP +A = M +A = A - 1 +D = M +@SP +M = M - 1 +@THAT +M = D +// ^ pop into THAT + +// push argument 0 +@0 +D = A +@ARG +A = M +A = D + A +D = M +// ^ D = *(LCL + index) +@SP +A = M +M = D +@SP +M = M + 1 +// ^ push D + +// push constant 1 +@1 +D = A +@SP +A = M +M = D +@SP +M = M + 1 + +// sub +@SP +A = M +A = A - 1 +A = A - 1 +D = M +A = A + 1 +D = D - M +A = A - 1 +M = D +@SP +M = M - 1 + +// pop argument 0 +@0 +D = A +@ARG +A = M +D = D + A +@R13 +M = D +// ^ R13 = argument + index +@SP +A = M +A = A - 1 +D = M +@SP +M = M - 1 +// ^ pop into D +@R13 +A = M +M = D +// ^ *R13 = D + +// goto MAIN_LOOP_START +@MAIN_LOOP_START +0;JMP + +// label END_PROGRAM +(END_PROGRAM) + diff --git a/projects/08/ProgramFlow/FibonacciSeries/FibonacciSeries.cmp b/projects/08/ProgramFlow/FibonacciSeries/FibonacciSeries.cmp new file mode 100644 index 0000000..c262a4b --- /dev/null +++ b/projects/08/ProgramFlow/FibonacciSeries/FibonacciSeries.cmp @@ -0,0 +1,2 @@ +|RAM[3000]|RAM[3001]|RAM[3002]|RAM[3003]|RAM[3004]|RAM[3005]| +| 0 | 1 | 1 | 2 | 3 | 5 | diff --git a/projects/08/ProgramFlow/FibonacciSeries/FibonacciSeries.tst b/projects/08/ProgramFlow/FibonacciSeries/FibonacciSeries.tst new file mode 100644 index 0000000..07df2b9 --- /dev/null +++ b/projects/08/ProgramFlow/FibonacciSeries/FibonacciSeries.tst @@ -0,0 +1,22 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/08/ProgramFlow/FibonacciSeries/FibonacciSeries.tst + +load FibonacciSeries.asm, +output-file FibonacciSeries.out, +compare-to FibonacciSeries.cmp, +output-list RAM[3000]%D1.6.2 RAM[3001]%D1.6.2 RAM[3002]%D1.6.2 + RAM[3003]%D1.6.2 RAM[3004]%D1.6.2 RAM[3005]%D1.6.2; + +set RAM[0] 256, +set RAM[1] 300, +set RAM[2] 400, +set RAM[400] 6, +set RAM[401] 3000, + +repeat 1100 { + ticktock; +} + +output; diff --git a/projects/08/ProgramFlow/FibonacciSeries/FibonacciSeries.vm b/projects/08/ProgramFlow/FibonacciSeries/FibonacciSeries.vm new file mode 100644 index 0000000..6a643b6 --- /dev/null +++ b/projects/08/ProgramFlow/FibonacciSeries/FibonacciSeries.vm @@ -0,0 +1,49 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/08/ProgramFlow/FibonacciSeries/FibonacciSeries.vm + +// Puts the first argument[0] elements of the Fibonacci series +// in the memory, starting in the address given in argument[1]. +// Argument[0] and argument[1] are initialized by the test script +// before this code starts running. + +push argument 1 +pop pointer 1 // that = argument[1] + +push constant 0 +pop that 0 // first element in the series = 0 +push constant 1 +pop that 1 // second element in the series = 1 + +push argument 0 +push constant 2 +sub +pop argument 0 // num_of_elements -= 2 (first 2 elements are set) + +label MAIN_LOOP_START + +push argument 0 +if-goto COMPUTE_ELEMENT // if num_of_elements > 0, goto COMPUTE_ELEMENT +goto END_PROGRAM // otherwise, goto END_PROGRAM + +label COMPUTE_ELEMENT + +push that 0 +push that 1 +add +pop that 2 // that[2] = that[0] + that[1] + +push pointer 1 +push constant 1 +add +pop pointer 1 // that += 1 + +push argument 0 +push constant 1 +sub +pop argument 0 // num_of_elements-- + +goto MAIN_LOOP_START + +label END_PROGRAM diff --git a/projects/08/ProgramFlow/FibonacciSeries/FibonacciSeriesVME.tst b/projects/08/ProgramFlow/FibonacciSeries/FibonacciSeriesVME.tst new file mode 100644 index 0000000..243f31b --- /dev/null +++ b/projects/08/ProgramFlow/FibonacciSeries/FibonacciSeriesVME.tst @@ -0,0 +1,22 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/08/ProgramFlow/FibonacciSeries/FibonacciSeriesVME.tst + +load FibonacciSeries.vm, +output-file FibonacciSeries.out, +compare-to FibonacciSeries.cmp, +output-list RAM[3000]%D1.6.2 RAM[3001]%D1.6.2 RAM[3002]%D1.6.2 + RAM[3003]%D1.6.2 RAM[3004]%D1.6.2 RAM[3005]%D1.6.2; + +set sp 256, +set local 300, +set argument 400, +set argument[0] 6, +set argument[1] 3000, + +repeat 73 { + vmstep; +} + +output; diff --git a/projects/09/Average/Main.jack b/projects/09/Average/Main.jack new file mode 100644 index 0000000..a359602 --- /dev/null +++ b/projects/09/Average/Main.jack @@ -0,0 +1,27 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/09/Average/Main.jack + +// Inputs some numbers and computes their average +class Main { + function void main() { + var Array a; + var int length; + var int i, sum; + + let length = Keyboard.readInt("How many numbers? "); + let a = Array.new(length); // constructs the array + + let i = 0; + while (i < length) { + let a[i] = Keyboard.readInt("Enter a number: "); + let sum = sum + a[i]; + let i = i + 1; + } + + do Output.printString("The average is "); + do Output.printInt(sum / length); + return; + } +} diff --git a/projects/09/BitmapEditor/BitmapEditor.html b/projects/09/BitmapEditor/BitmapEditor.html new file mode 100644 index 0000000..fdb9e0b --- /dev/null +++ b/projects/09/BitmapEditor/BitmapEditor.html @@ -0,0 +1,200 @@ + + + + Sokoban Bitmap Editor + + + +

IDC Herzliya / Efi Arazi School of Computer Science / Digital Systems Construction, Spring 2011 / Project 09 / Golan Parashi

+

Sokoban Bitmap Editor

+

This javascript applicaiton is used to generate highly optimized jack code for drawing a 16x16 bitmap to the screen.

+

Using the mouse, click the desired cell to mark/unmark it. You may use 90 degrees rotation and vertical mirroring by
+ clicking the appropriate buttons.

+

When you are finished drawing, you may select function type and enter function's name.

+

+ + + + + + + + + + + + + + +
BitmapGenerated Jack Code
+
+ + + + + + + +
Function Type:
+ +
Function Name:
+
+
+ + + + +
+ + + + \ No newline at end of file diff --git a/projects/09/BitmapEditor/BitmapEditor.iml b/projects/09/BitmapEditor/BitmapEditor.iml new file mode 100644 index 0000000..ef582b1 --- /dev/null +++ b/projects/09/BitmapEditor/BitmapEditor.iml @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/projects/09/CellAutomaton1D/CellularAutomaton.jack b/projects/09/CellAutomaton1D/CellularAutomaton.jack new file mode 100644 index 0000000..b1c41ce --- /dev/null +++ b/projects/09/CellAutomaton1D/CellularAutomaton.jack @@ -0,0 +1,205 @@ +/** Represents a 1D cellular automaton that can be printed to the screen. */ +class CellularAutomaton { + + field Array currentConfig; // an array where each field represents one cell + field int currentRule; // the current rule used by nextState + field int currentRow; // the row on the screen where the last state was printed + field int size; // cells per row + field boolean debug; // print debugging help to screen if true + + /** Create a new automaton where size is the number of cells per row. */ + constructor CellularAutomaton new() { + var int i; + let currentRule = 0; + let currentRow = 0; + let size = 512; + let debug = false; + + let currentConfig = Array.new(size); + let i = 0; + while (i < size) { + let currentConfig[i] = 0; + let i = i + 1; + } + + return this; + } + + /** Returns a reference to the current config. Be careful, step creates a + * new configuration so using the reference after calling step points to + * invalid memory. + */ + method Array getCurrentConfig() { + return currentConfig; + } + + method void dispose() { + do currentConfig.dispose(); + do Memory.deAlloc(this); + return; + } + + method void setRule(int rule) { + let currentRule = rule; + return; + } + + /** Draws the current configuration to the currentRow on the screen. */ + method void draw() { + if (currentRow > 255) { + // This works, but is slow and I don't know how to make it faster. + // So we simply start from the top instead again. + // do drawLastRow(); + let currentRow = 0; + do Screen.clearScreen(); + do drawNewRow(); + } else { + do drawNewRow(); + } + + if (debug) { + do Screen.setColor(true); + do Output.moveCursor(0, 0); + do Output.printInt(currentRow); + } + return; + } + + /** If we are not yet in the last row we can simply + * print the new config to the next row. */ + method void drawNewRow() { + var int i; + let i = 0; + while (i < size) { + if (currentConfig[i]) { + do Screen.setColor(true); + } else { + do Screen.setColor(false); + } + do Screen.drawPixel(i, currentRow); + let i = i + 1; + } + return; + } + + method void copy(int sourceAddress, int targetAddress) { + var int value; + let value = Memory.peek(sourceAddress); + do Memory.poke(targetAddress, value); + return; + } + + /** If we are in the last row we first have to move all existing rows one + * row up. We can then draw the last row. XXX: This works, but we are + * currently not using it because it is too slow. */ + method void drawLastRow() { + var int i; + var int sourceAddress; + + // Screen Base + Words = 16384 + 8160 = 24544 + let i = 16383; + while (i < 24544) { + let sourceAddress = i + 32; + do copy(sourceAddress, i); + let i = i + 1; + } + + let i = 0; + while (i < size) { + if (currentConfig[i]) { + do Screen.setColor(true); + } else { + do Screen.setColor(false); + } + do Screen.drawPixel(i, currentRow); + let i = i + 1; + } + return; + } + + method int rule_57(int left, int middle, int right) { + if (left = 1) { if (middle = 1) { if (right = 1) { return 0; } } } + if (left = 1) { if (middle = 1) { if (right = 0) { return 0; } } } + if (left = 0) { if (middle = 1) { if (right = 0) { return 0; } } } + if (left = 0) { if (middle = 0) { if (right = 1) { return 0; } } } + return 1; + } + + method int rule_90(int left, int middle, int right) { + let middle = left + right; + if (middle = 1) { + return 1; + } + return 0; + } + + method int rule_101(int left, int middle, int right) { + if (left = 1) { if (middle = 1) { if (right = 1) { return 0; } } } + if (left = 1) { if (middle = 0) { if (right = 0) { return 0; } } } + if (left = 0) { if (middle = 1) { if (right = 1) { return 0; } } } + if (left = 0) { if (middle = 0) { if (right = 1) { return 0; } } } + return 1; + } + + method int rule_110(int left, int middle, int right) { + if (left = 1) { if (middle = 1) { if (right = 1) { return 0; } } } + if (left = 1) { if (middle = 0) { if (right = 0) { return 0; } } } + if (left = 0) { if (middle = 0) { if (right = 0) { return 0; } } } + return 1; + } + + /** Calculates the next configuration based on currentConfig and + * currentRule */ + method void step() { + var int i, limit; + var Array newConfig; + let newConfig = Array.new(size); + let currentRow = currentRow + 1; + + if (currentRule = 57) { + // Calculate new state of first cell + let newConfig[0] = rule_57(0, currentConfig[0], currentConfig[1]); + // Calculate new state of last cell + let newConfig[511] = rule_57(currentConfig[510], currentConfig[511], 0); + // All the other cells + let i = 1; // Skip first cell and last cell + while (i < 511) { + let newConfig[i] = rule_57(currentConfig[i - 1], currentConfig[i], currentConfig[i + 1]); + let i = i + 1; + } + } + + if (currentRule = 90) { + let newConfig[0] = rule_90(0, currentConfig[0], currentConfig[1]); + let newConfig[511] = rule_90(currentConfig[510], currentConfig[511], 0); + let i = 1; + while (i < 511) { + let newConfig[i] = rule_90(currentConfig[i - 1], currentConfig[i], currentConfig[i + 1]); + let i = i + 1; + } + } + + if (currentRule = 101) { + let newConfig[0] = rule_101(0, currentConfig[0], currentConfig[1]); + let newConfig[511] = rule_101(currentConfig[510], currentConfig[511], 0); + let i = 1; + while (i < 511) { + let newConfig[i] = rule_101(currentConfig[i - 1], currentConfig[i], currentConfig[i + 1]); + let i = i + 1; + } + } + + if (currentRule = 110) { + let newConfig[0] = rule_110(0, currentConfig[0], currentConfig[1]); + let newConfig[511] = rule_110(currentConfig[510], currentConfig[511], 0); + let i = 1; + while (i < 511) { + let newConfig[i] = rule_110(currentConfig[i - 1], currentConfig[i], currentConfig[i + 1]); + let i = i + 1; + } + } + do currentConfig.dispose(); + let currentConfig = newConfig; + return; + } +} diff --git a/projects/09/CellAutomaton1D/CellularAutomatonController.jack b/projects/09/CellAutomaton1D/CellularAutomatonController.jack new file mode 100644 index 0000000..ac71548 --- /dev/null +++ b/projects/09/CellAutomaton1D/CellularAutomatonController.jack @@ -0,0 +1,370 @@ + + +/** Manages the cellular automaton and interacts with the user. */ +class CellularAutomatonController { + field CellularAutomaton automaton; + field Array config; + field Array rules; + field int numRules; + + constructor CellularAutomatonController new() { + // Turned out it is easiest to manage the Automaton itself from here. + let automaton = CellularAutomaton.new(); + // We need the cell state array to write the initial configuration + // by the user into it. + let config = automaton.getCurrentConfig(); + + // Array to switch between rules. + let numRules = 4; + let rules = Array.new(numRules); + let rules[0] = 57; + let rules[1] = 90; + let rules[2] = 101; + let rules[3] = 110; + + return this; + } + + method void dispose() { + // config gets deAllocated by CellularAutomaton! + do automaton.dispose(); + do rules.dispose(); + do Memory.deAlloc(this); + return; + } + + /** Greets the user and guides through the initial configuration. */ + method void initialConfiguration() { + do Screen.clearScreen(); + do Screen.setColor(true); + do sayHello(); + do printHelpInitialConfiguration(); + do createInitialConfiguration(); + do selectRule(); + do finishConfiguration(); + return; + } + + /** Prints some dots on the screen to simulate loading, because why not? */ + method void makeWaitDots() { + do Sys.wait(30); + do Output.printString("."); + do Sys.wait(30); + do Output.printString("."); + do Sys.wait(30); + do Output.printString("."); + do Sys.wait(30); + do Output.printString(" "); + return; + } + + method void waitForEnter() { + var int key; + var boolean exit; + + let key = 0; + let exit = false; + + do Output.printString(" to continue. "); + + while (~exit) { + while (key = 0) { + let key = Keyboard.keyPressed(); + } + if (key = 128) { let exit = true; } // enter key + while (~(key = 0)) { + let key = Keyboard.keyPressed(); + } + } + return; + } + + method void sayHello() { + do Output.moveCursor(0, 0); + do Output.printString("> Welcome to cellular automaton 1D! "); + do makeWaitDots(); + do Output.moveCursor(1, 0); + do Output.printString("> Let's configure the automaton"); + do makeWaitDots(); + return; + } + + method void printHelpInitialConfiguration() { + do Output.moveCursor(3, 0); + do Output.printString("> Toggle the cells that should be alive with "); + do makeWaitDots(); + do Output.moveCursor(4, 0); + do Output.printString("> Move with / and use / to change the step size"); + do makeWaitDots(); + do Output.moveCursor(6, 0); + do Output.printString("> stepSize = 1 - position = - activeCells = "); + + return; + } + + method void printStepSize(int n) { + do Output.moveCursor(6, 15); + do Output.printString(" "); + do Output.moveCursor(6, 15); + do Output.printInt(n); + return; + } + + method void printCursorPosition(int n) { + do Output.moveCursor(6, 32); + do Output.printString(" "); + do Output.moveCursor(6, 32); + do Output.printInt(n); + return; + } + + method void printActiveCellsj(int n) { + do Output.moveCursor(6, 52); + do Output.printString(" "); + do Output.moveCursor(6, 52); + do Output.printInt(n); + return; + } + + method void createInitialConfiguration() { + var int key; + var boolean exit; + var int cursorPosition; + var int stepSize; + var int activeCells; + + // Variables for printing the cell selction UI. + var int cursorY1, cursorY2, cellY1, cellY2; + + let key = 0; + + let cursorY1 = 90; + let cursorY2 = 95; + let cellY1 = 85; + let cellY2 = 88; + + let stepSize = 1; + let cursorPosition = 0; + let activeCells = 0; + + do printStepSize(stepSize); + do printCursorPosition(cursorPosition); + do printActiveCellsj(activeCells); + do Screen.drawLine(cursorPosition, cursorY1, cursorPosition, cursorY2); + + let exit = false; + while (~exit) { + while (key = 0) { + let key = Keyboard.keyPressed(); + } + if (key = 128) { // enter key + if (activeCells > 0) { + let exit = true; + } else { + do Output.moveCursor(9, 0); + do Output.printString("> Toggle at least one cell!"); + } + } // enter key + if (key = 72) { // h key + do Screen.setColor(false); + do Screen.drawLine(cursorPosition, cursorY1, cursorPosition, cursorY2); + if ((cursorPosition - stepSize) > 0) { + let cursorPosition = cursorPosition - stepSize; + } else { + let cursorPosition = 0; + } + do Screen.setColor(true); + do Screen.drawLine(cursorPosition, cursorY1, cursorPosition, cursorY2); + do printCursorPosition(cursorPosition); + } + if (key = 76) { // l key + do Screen.setColor(false); + do Screen.drawLine(cursorPosition, cursorY1, cursorPosition, cursorY2); + if ((cursorPosition + stepSize) < 511) { + let cursorPosition = cursorPosition + stepSize; + } else { + let cursorPosition = 511; + } + do Screen.setColor(true); + do Screen.drawLine(cursorPosition, cursorY1, cursorPosition, cursorY2); + do printCursorPosition(cursorPosition); + } + if (key = 73) { // i key + if (stepSize < 512) { + let stepSize = stepSize * 2; + do printStepSize(stepSize); + } + } + if (key = 85) { // u key + if (stepSize > 1) { + let stepSize = stepSize / 2; + do printStepSize(stepSize); + } + } + if (key = 32) { // space key + if (config[cursorPosition]) { // cell is alive -> make dead + do Screen.setColor(false); + do Screen.drawLine(cursorPosition, cellY1, cursorPosition, cellY2); + let config[cursorPosition] = 0; + let activeCells = activeCells - 1; + } else { // cell is dead -> make alive + do Screen.setColor(true); + do Screen.drawLine(cursorPosition, cellY1, cursorPosition, cellY2); + let config[cursorPosition] = 1; + let activeCells = activeCells + 1; + } + do Screen.setColor(true); + do printActiveCellsj(activeCells); + } + + while (~(key = 0)) { + let key = Keyboard.keyPressed(); + } + } + + return; + } + + method void printRule(int n) { + do Output.moveCursor(12, 8); + do Output.printString(" "); + do Output.moveCursor(12, 8); + do Output.printInt(n); + return; + } + + method void selectRule() { + var int i; + var int rule; + var int key; + var boolean exit; + + let i = 1; + let rule = rules[i]; + let exit = false; + + do Output.moveCursor(10, 0); + do Output.printString("> Good. Let's select which rule you want to simulate"); + do makeWaitDots(); + do Output.moveCursor(11, 0); + do Output.printString("> Use / to switch between rules"); + do makeWaitDots(); + + do Output.moveCursor(12, 0); + do Output.printString("> Rule selected. Confirm with ."); + do printRule(rule); + + while (~exit) { + while (key = 0) { + let key = Keyboard.keyPressed(); + } + if (key = 128) { // enter key + let exit = true; + } + + if (key = 72) { // h key -> prev rule + if (i > 0) { + let i = i - 1; + } + } + if (key = 76) { + if (i < (numRules - 1)) { + let i = i + 1; + } + } + + let rule = rules[i]; + do printRule(rule); + do automaton.setRule(rule); + + while (~(key = 0)) { + let key = Keyboard.keyPressed(); + } + } + return; + } + + method void finishConfiguration() { + do Output.moveCursor(15, 0); + do Output.printString("> Okay, nice. We are ready to go"); + do makeWaitDots(); + do Output.moveCursor(16, 0); + do Output.printString("> Once you press enter you will no longer see the menu"); + do makeWaitDots(); + do Output.moveCursor(17, 0); + do Output.printString("> So remember the following keys (or at least for quit)"); + do makeWaitDots(); + do Output.moveCursor(19, 0); + do Output.printString("> Controls: "); + do makeWaitDots(); + do Output.moveCursor(20, 0); + do Output.printString(">

ause, ontinue, tep, restart, quit! "); + + do Output.moveCursor(22, 0); + do Output.printString(" "); + do waitForEnter(); + do Screen.clearScreen(); + return; + } + + method void run() { + var int key; + var boolean quit; + var boolean running; + var boolean restart; + var boolean step; + + let quit = false; + let restart = false; + let running = true; + let step = false; + + while (~quit) { + if (restart) { + do automaton.dispose(); + let automaton = CellularAutomaton.new(); + do initialConfiguration(); + let quit = false; + let restart = false; + let running = true; + let step = false; + } + + if (running) { + do automaton.draw(); + do automaton.step(); + } + + if (step) { + do automaton.draw(); + do automaton.step(); + let step = false; + } + + let key = Keyboard.keyPressed(); + if (key = 82) { // r key + let restart = true; + } + if (key = 80) { // p key + let running = false; + } + if (key = 67) { // c key + let running = true; + } + if (key = 83) { // s key + if (~running) { + let step = true; + } + } + if (key = 81) { // q key + let quit = true; + } + + while (~(key = 0)) { + let key = Keyboard.keyPressed(); + } + } + + return; + } +} diff --git a/projects/09/CellAutomaton1D/Main.jack b/projects/09/CellAutomaton1D/Main.jack new file mode 100644 index 0000000..57e167e --- /dev/null +++ b/projects/09/CellAutomaton1D/Main.jack @@ -0,0 +1,32 @@ +/** Implements a cellular automaton. + * + * In the first state the user can define the initial configuration (the cells + * that are alive in the beginning. If the user is not sure about which cells + * to enable choosing the one in the middle (255/256) is ususually a good + * start. + * + * Next, the user selects the rule they want to simulate. A list of all rules + * is available on Wikipedia. If the user is not sure which rule they want Rule + * 90 is a good start to get the idea. + * + * https://en.wikipedia.org/wiki/Elementary_cellular_automaton + * + * In the second stage the user can select the initial configuration of the + * automaton. The keys 'h' and 'l' move the cursor one pixel to the left or + * right respectively. By pressing the space bar the user can toggle the + * current pixel. By pressing the 'r' key the simulation is started. Pressing + * 'q' ends the simulator. + */ + +/** Initializes a new Cellular Automaton Game and runs it. */ +class Main { + function void main() { + var CellularAutomatonController controller; + + let controller = CellularAutomatonController.new(); + do controller.initialConfiguration(); + do controller.run(); + do controller.dispose(); + return; + } +} diff --git a/projects/09/CellAutomaton1D/readme.md b/projects/09/CellAutomaton1D/readme.md new file mode 100644 index 0000000..ff6fb34 --- /dev/null +++ b/projects/09/CellAutomaton1D/readme.md @@ -0,0 +1,20 @@ +Cellular Automaton 1D +--------------------- + +This project implements a one dimensional cellular automaton. It is like the +famous *Game of Life*, but in 1D. If you are not familiar with the concept you +can read more on +[mathworld.wolfram.com](https://mathworld.wolfram.com/CellularAutomaton.html) +so I recommend simply try the application. It should be self explanatory and +you will be surprised. + +The program runs in two stages. In the first stage the user configures the +initial population of the one automaton as well as the rule that is used for +creating the following populations. If you are not familiar with the rules +*Rule 90* with an initial cell in the middle is good enough. + +In the second stage the program computes and visualizes the automaton. The +program can be paused with `p`, continued with `c`, single stepped with `s`, +reset with `r`, and terminated with `q`. + +Have fun! diff --git a/projects/09/Fraction/Fraction.jack b/projects/09/Fraction/Fraction.jack new file mode 100644 index 0000000..c86f0a5 --- /dev/null +++ b/projects/09/Fraction/Fraction.jack @@ -0,0 +1,65 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/09/Fraction/Fraction.jack + +/** Represents the Fraction type and related operations. */ +class Fraction { + field int numerator, denominator; // field = property = member variable. + + /** Constructs a (reduced) fraction from the given numerator and denominator. */ + constructor Fraction new(int x, int y) { + let numerator = x; + let denominator = y; + do reduce(); // reduces the fraction + return this; // a constructor is expected to return a reference to the new object + } + + // Reduces this fraction. + method void reduce() { + var int g; + let g = Fraction.gcd(numerator, denominator); + if (g > 1) { + let numerator = numerator / g; + let denominator = denominator / g; + } + return; + } + + /** Accessors. */ + method int getNumerator() { return numerator; } + method int getDenominator() { return denominator; } + + /** Returns the sum of this fraction and the other one. */ + method Fraction plus(Fraction other) { + var int sum; + let sum = (numerator * other.getDenominator()) + (other.getNumerator() * denominator); + return Fraction.new(sum, denominator * other.getDenominator()); + } + + // More fraction-related methods (minus, times, div, etc.) can be added here. + + /** Disposes this fraction. */ + method void dispose() { + do Memory.deAlloc(this); // uses an OS routine to recycle the memory held by the object + return; + } + + /** Prints this fraction in the format x/y. */ + method void print() { + do Output.printInt(numerator); + do Output.printString("/"); + do Output.printInt(denominator); + return; + } + + // Computes the greatest common divisor of the given integers. + function int gcd(int a, int b) { + var int r; + while (~(b = 0)) { // applies Euclid's algorithm + let r = a - (b * (a / b)); // r = remainder of the integer division a/b + let a = b; let b = r; + } + return a; + } +} diff --git a/projects/09/Fraction/Main.jack b/projects/09/Fraction/Main.jack new file mode 100644 index 0000000..43ddece --- /dev/null +++ b/projects/09/Fraction/Main.jack @@ -0,0 +1,16 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/09/Fraction/Main.jack + +// Computes the sum of 2/3 and 1/5. +class Main { + function void main() { + var Fraction a, b, c; + let a = Fraction.new(2,3); + let b = Fraction.new(1,5); + let c = a.plus(b); // Computes c = a + b + do c.print(); // Prints "13/15" + return; + } +} diff --git a/projects/09/HelloWorld/Main.jack b/projects/09/HelloWorld/Main.jack new file mode 100644 index 0000000..446b21b --- /dev/null +++ b/projects/09/HelloWorld/Main.jack @@ -0,0 +1,14 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/09/HelloWorld/Main.jack + +/** Hello World program. */ +class Main { + function void main() { + /* Prints some text using the standard library. */ + do Output.printString("Hello world!"); + do Output.println(); // New line + return; + } +} diff --git a/projects/09/Jack OS API.pdf b/projects/09/Jack OS API.pdf new file mode 100644 index 0000000000000000000000000000000000000000..e653e8609ec1daace1dfde510364cb49669efb9e GIT binary patch literal 108857 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 z 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%0AAFfX8jJ^phAKRdKso0g+Yq)dQ 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 literal 0 HcmV?d00001 diff --git a/projects/09/List/List.jack b/projects/09/List/List.jack new file mode 100644 index 0000000..c62fe28 --- /dev/null +++ b/projects/09/List/List.jack @@ -0,0 +1,46 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/09/List/List.jack + +/** Represents a linked list of integers. */ +class List { + field int data; // a list consists of a data field, + field List next; // followed by a list + + /* Creates a List. */ + constructor List new(int car, List cdr) { + let data = car; // the identifiers car and cdr are used in + let next = cdr; // memory of the Lisp programming language + return this; + } + + /** Accessors. */ + method int getData() { return data; } + method int getNext() { return next; } + + /** Prints this list. */ + method void print() { + var List current; // initializes current to the first item + let current = this; // of this list + while (~(current = null)) { + do Output.printInt(current.getData()); + do Output.printChar(32); // prints a space + let current = current.getNext(); + } + return; + } + + /** Disposes this List by recursively disposing its tail. */ + method void dispose() { + if (~(next = null)) { + do next.dispose(); + } + // Uses an OS routine to recycle this object. + do Memory.deAlloc(this); + return; + } + + // More list processing methods can come here. + +} diff --git a/projects/09/List/Main.jack b/projects/09/List/Main.jack new file mode 100644 index 0000000..824eb6f --- /dev/null +++ b/projects/09/List/Main.jack @@ -0,0 +1,17 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/09/List/Main.jack + +/** Demonstrates the use of the List abstraction. */ +class Main { + function void main() { + // Creates and uses the list (2,3,5). + var List v; + let v = List.new(5,null); + let v = List.new(2,List.new(3,v)); + do v.print(); // prints 2 3 5 + do v.dispose(); // disposes the list + return; + } +} diff --git a/projects/09/Square/Main.jack b/projects/09/Square/Main.jack new file mode 100644 index 0000000..8311cc2 --- /dev/null +++ b/projects/09/Square/Main.jack @@ -0,0 +1,15 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/09/Square/Main.jack + +/** Initializes a new Square Dance game and starts running it. */ +class Main { + function void main() { + var SquareGame game; + let game = SquareGame.new(); + do game.run(); + do game.dispose(); + return; + } +} diff --git a/projects/09/Square/Square.jack b/projects/09/Square/Square.jack new file mode 100644 index 0000000..38066e5 --- /dev/null +++ b/projects/09/Square/Square.jack @@ -0,0 +1,108 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/09/Square/Square.jack + +/** Implements a graphical square. */ +class Square { + + field int x, y; // screen location of the square's top-left corner + field int size; // length of this square, in pixels + + /** Constructs a new square with a given location and size. */ + constructor Square new(int Ax, int Ay, int Asize) { + let x = Ax; + let y = Ay; + let size = Asize; + do draw(); + return this; + } + + /** Disposes this square. */ + method void dispose() { + do Memory.deAlloc(this); + return; + } + + /** Draws the square on the screen. */ + method void draw() { + do Screen.setColor(true); + do Screen.drawRectangle(x, y, x + size, y + size); + return; + } + + /** Erases the square from the screen. */ + method void erase() { + do Screen.setColor(false); + do Screen.drawRectangle(x, y, x + size, y + size); + return; + } + + /** Increments the square size by 2 pixels. */ + method void incSize() { + if (((y + size) < 254) & ((x + size) < 510)) { + do erase(); + let size = size + 2; + do draw(); + } + return; + } + + /** Decrements the square size by 2 pixels. */ + method void decSize() { + if (size > 2) { + do erase(); + let size = size - 2; + do draw(); + } + return; + } + + /** Moves the square up by 2 pixels. */ + method void moveUp() { + if (y > 1) { + do Screen.setColor(false); + do Screen.drawRectangle(x, (y + size) - 1, x + size, y + size); + let y = y - 2; + do Screen.setColor(true); + do Screen.drawRectangle(x, y, x + size, y + 1); + } + return; + } + + /** Moves the square down by 2 pixels. */ + method void moveDown() { + if ((y + size) < 254) { + do Screen.setColor(false); + do Screen.drawRectangle(x, y, x + size, y + 1); + let y = y + 2; + do Screen.setColor(true); + do Screen.drawRectangle(x, (y + size) - 1, x + size, y + size); + } + return; + } + + /** Moves the square left by 2 pixels. */ + method void moveLeft() { + if (x > 1) { + do Screen.setColor(false); + do Screen.drawRectangle((x + size) - 1, y, x + size, y + size); + let x = x - 2; + do Screen.setColor(true); + do Screen.drawRectangle(x, y, x + 1, y + size); + } + return; + } + + /** Moves the square right by 2 pixels. */ + method void moveRight() { + if ((x + size) < 510) { + do Screen.setColor(false); + do Screen.drawRectangle(x, y, x + 1, y + size); + let x = x + 2; + do Screen.setColor(true); + do Screen.drawRectangle((x + size) - 1, y, x + size, y + size); + } + return; + } +} diff --git a/projects/09/Square/SquareGame.jack b/projects/09/Square/SquareGame.jack new file mode 100644 index 0000000..02393e2 --- /dev/null +++ b/projects/09/Square/SquareGame.jack @@ -0,0 +1,79 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/09/Square/SquareGame.jack + +/** + * Implements the Square Dance game. + * This simple game allows the user to move a black square around + * the screen, and change the square's size during the movement. + * When the game starts, a square of 30 by 30 pixels is shown at the + * top-left corner of the screen. The user controls the square as follows. + * The 4 arrow keys are used to move the square up, down, left, and right. + * The 'z' and 'x' keys are used, respectively, to decrement and increment + * the square's size. The 'q' key is used to quit the game. + */ + +class SquareGame { + field Square square; // the square of this game + field int direction; // the square's current direction: + // 0=none, 1=up, 2=down, 3=left, 4=right + + /** Constructs a new Square Game. */ + constructor SquareGame new() { + // Creates a 30 by 30 pixels square and positions it at the top-left + // of the screen. + let square = Square.new(0, 0, 30); + let direction = 0; // initial state is no movement + return this; + } + + /** Disposes this game. */ + method void dispose() { + do square.dispose(); + do Memory.deAlloc(this); + return; + } + + /** Moves the square in the current direction. */ + method void moveSquare() { + if (direction = 1) { do square.moveUp(); } + if (direction = 2) { do square.moveDown(); } + if (direction = 3) { do square.moveLeft(); } + if (direction = 4) { do square.moveRight(); } + do Sys.wait(5); // delays the next movement + return; + } + + /** Runs the game: handles the user's inputs and moves the square accordingly */ + method void run() { + var char key; // the key currently pressed by the user + var boolean exit; + let exit = false; + + while (~exit) { + // waits for a key to be pressed + while (key = 0) { + let key = Keyboard.keyPressed(); + do moveSquare(); + } + if (key = 81) { let exit = true; } // q key + if (key = 90) { do square.decSize(); } // z key + if (key = 88) { do square.incSize(); } // x key + if (key = 131) { let direction = 1; } // up arrow + if (key = 133) { let direction = 2; } // down arrow + if (key = 130) { let direction = 3; } // left arrow + if (key = 132) { let direction = 4; } // right arrow + + // waits for the key to be released + while (~(key = 0)) { + let key = Keyboard.keyPressed(); + do moveSquare(); + } + } // while + return; + } +} + + + diff --git a/projects/10/ArrayTest/Main.jack b/projects/10/ArrayTest/Main.jack new file mode 100644 index 0000000..aa237b1 --- /dev/null +++ b/projects/10/ArrayTest/Main.jack @@ -0,0 +1,38 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/10/ArrayTest/Main.jack + +// (identical to projects/09/Average/Main.jack) + +/** Computes the average of a sequence of integers. */ +class Main { + function void main() { + var Array a; + var int length; + var int i, sum; + + let length = Keyboard.readInt("HOW MANY NUMBERS? "); + let a = Array.new(length); + let i = 0; + + while (i < length) { + let a[i] = Keyboard.readInt("ENTER THE NEXT NUMBER: "); + let i = i + 1; + } + + let i = 0; + let sum = 0; + + while (i < length) { + let sum = sum + a[i]; + let i = i + 1; + } + + do Output.printString("THE AVERAGE IS: "); + do Output.printInt(sum / length); + do Output.println(); + + return; + } +} diff --git a/projects/10/ArrayTest/Main.xml b/projects/10/ArrayTest/Main.xml new file mode 100644 index 0000000..0ea96df --- /dev/null +++ b/projects/10/ArrayTest/Main.xml @@ -0,0 +1,286 @@ + + class + Main + { + + function + void + main + ( + + + ) + + { + + var + Array + a + ; + + + var + int + length + ; + + + var + int + i + , + sum + ; + + + + let + length + = + + + Keyboard + . + readInt + ( + + + + HOW MANY NUMBERS? + + + + ) + + + ; + + + let + a + = + + + Array + . + new + ( + + + + length + + + + ) + + + ; + + + let + i + = + + + 0 + + + ; + + + while + ( + + + i + + < + + length + + + ) + { + + + let + a + [ + + + i + + + ] + = + + + Keyboard + . + readInt + ( + + + + ENTER THE NEXT NUMBER: + + + + ) + + + ; + + + let + i + = + + + i + + + + + 1 + + + ; + + + } + + + let + i + = + + + 0 + + + ; + + + let + sum + = + + + 0 + + + ; + + + while + ( + + + i + + < + + length + + + ) + { + + + let + sum + = + + + sum + + + + + a + [ + + + i + + + ] + + + ; + + + let + i + = + + + i + + + + + 1 + + + ; + + + } + + + do + Output + . + printString + ( + + + + THE AVERAGE IS: + + + + ) + ; + + + do + Output + . + printInt + ( + + + + sum + + / + + length + + + + ) + ; + + + do + Output + . + println + ( + + + ) + ; + + + return + ; + + + } + + + } + diff --git a/projects/10/ArrayTest/MainT.xml b/projects/10/ArrayTest/MainT.xml new file mode 100644 index 0000000..68721ec --- /dev/null +++ b/projects/10/ArrayTest/MainT.xml @@ -0,0 +1,142 @@ + + class + Main + { + function + void + main + ( + ) + { + var + Array + a + ; + var + int + length + ; + var + int + i + , + sum + ; + let + length + = + Keyboard + . + readInt + ( + HOW MANY NUMBERS? + ) + ; + let + a + = + Array + . + new + ( + length + ) + ; + let + i + = + 0 + ; + while + ( + i + < + length + ) + { + let + a + [ + i + ] + = + Keyboard + . + readInt + ( + ENTER THE NEXT NUMBER: + ) + ; + let + i + = + i + + + 1 + ; + } + let + i + = + 0 + ; + let + sum + = + 0 + ; + while + ( + i + < + length + ) + { + let + sum + = + sum + + + a + [ + i + ] + ; + let + i + = + i + + + 1 + ; + } + do + Output + . + printString + ( + THE AVERAGE IS: + ) + ; + do + Output + . + printInt + ( + sum + / + length + ) + ; + do + Output + . + println + ( + ) + ; + return + ; + } + } + diff --git a/projects/10/ExpressionLessSquare/Main.jack b/projects/10/ExpressionLessSquare/Main.jack new file mode 100644 index 0000000..d2c5561 --- /dev/null +++ b/projects/10/ExpressionLessSquare/Main.jack @@ -0,0 +1,36 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/10/ExpressionLessSquare/Main.jack + +/** Expressionless version of projects/10/Square/Main.jack. */ + +class Main { + static boolean test; // Added for testing -- there is no static keyword + // in the Square files. + + function void main() { + var SquareGame game; + let game = game; + do game.run(); + do game.dispose(); + return; + } + + function void test() { // Added to test Jack syntax that is not use in + var int i, j; // the Square files. + var String s; + var Array a; + if (i) { + let s = i; + let s = j; + let a[i] = j; + } + else { // There is no else keyword in the Square files. + let i = i; + let j = j; + let i = i | j; + } + return; + } +} diff --git a/projects/10/ExpressionLessSquare/Main.xml b/projects/10/ExpressionLessSquare/Main.xml new file mode 100644 index 0000000..6beb694 --- /dev/null +++ b/projects/10/ExpressionLessSquare/Main.xml @@ -0,0 +1,205 @@ + + class + Main + { + + static + boolean + test + ; + + + function + void + main + ( + + + ) + + { + + var + SquareGame + game + ; + + + + let + game + = + + + game + + + ; + + + do + game + . + run + ( + + + ) + ; + + + do + game + . + dispose + ( + + + ) + ; + + + return + ; + + + } + + + + function + void + test + ( + + + ) + + { + + var + int + i + , + j + ; + + + var + String + s + ; + + + var + Array + a + ; + + + + if + ( + + + i + + + ) + { + + + let + s + = + + + i + + + ; + + + let + s + = + + + j + + + ; + + + let + a + [ + + + i + + + ] + = + + + j + + + ; + + + } + else + { + + + let + i + = + + + i + + + ; + + + let + j + = + + + j + + + ; + + + let + i + = + + + i + + | + + j + + + ; + + + } + + + return + ; + + + } + + + } + diff --git a/projects/10/ExpressionLessSquare/MainT.xml b/projects/10/ExpressionLessSquare/MainT.xml new file mode 100644 index 0000000..f074ba4 --- /dev/null +++ b/projects/10/ExpressionLessSquare/MainT.xml @@ -0,0 +1,109 @@ + + class + Main + { + static + boolean + test + ; + function + void + main + ( + ) + { + var + SquareGame + game + ; + let + game + = + game + ; + do + game + . + run + ( + ) + ; + do + game + . + dispose + ( + ) + ; + return + ; + } + function + void + test + ( + ) + { + var + int + i + , + j + ; + var + String + s + ; + var + Array + a + ; + if + ( + i + ) + { + let + s + = + i + ; + let + s + = + j + ; + let + a + [ + i + ] + = + j + ; + } + else + { + let + i + = + i + ; + let + j + = + j + ; + let + i + = + i + | + j + ; + } + return + ; + } + } + diff --git a/projects/10/ExpressionLessSquare/Square.jack b/projects/10/ExpressionLessSquare/Square.jack new file mode 100644 index 0000000..33a54ad --- /dev/null +++ b/projects/10/ExpressionLessSquare/Square.jack @@ -0,0 +1,99 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +/// File name: projects/10/ExpressionLessSquare/Square.jack + +/** Expressionless version of projects/10/Square/Square.jack. */ + +class Square { + + field int x, y; + field int size; + + constructor Square new(int Ax, int Ay, int Asize) { + let x = Ax; + let y = Ay; + let size = Asize; + do draw(); + return x; + } + + method void dispose() { + do Memory.deAlloc(this); + return; + } + + method void draw() { + do Screen.setColor(x); + do Screen.drawRectangle(x, y, x, y); + return; + } + + method void erase() { + do Screen.setColor(x); + do Screen.drawRectangle(x, y, x, y); + return; + } + + method void incSize() { + if (x) { + do erase(); + let size = size; + do draw(); + } + return; + } + + method void decSize() { + if (size) { + do erase(); + let size = size; + do draw(); + } + return; + } + + method void moveUp() { + if (y) { + do Screen.setColor(x); + do Screen.drawRectangle(x, y, x, y); + let y = y; + do Screen.setColor(x); + do Screen.drawRectangle(x, y, x, y); + } + return; + } + + method void moveDown() { + if (y) { + do Screen.setColor(x); + do Screen.drawRectangle(x, y, x, y); + let y = y; + do Screen.setColor(x); + do Screen.drawRectangle(x, y, x, y); + } + return; + } + + method void moveLeft() { + if (x) { + do Screen.setColor(x); + do Screen.drawRectangle(x, y, x, y); + let x = x; + do Screen.setColor(x); + do Screen.drawRectangle(x, y, x, y); + } + return; + } + + method void moveRight() { + if (x) { + do Screen.setColor(x); + do Screen.drawRectangle(x, y, x, y); + let x = x; + do Screen.setColor(x); + do Screen.drawRectangle(x, y, x, y); + } + return; + } +} diff --git a/projects/10/ExpressionLessSquare/Square.xml b/projects/10/ExpressionLessSquare/Square.xml new file mode 100644 index 0000000..ed0e6ec --- /dev/null +++ b/projects/10/ExpressionLessSquare/Square.xml @@ -0,0 +1,967 @@ + + class + Square + { + + field + int + x + , + y + ; + + + field + int + size + ; + + + constructor + Square + new + ( + + int + Ax + , + int + Ay + , + int + Asize + + ) + + { + + + let + x + = + + + Ax + + + ; + + + let + y + = + + + Ay + + + ; + + + let + size + = + + + Asize + + + ; + + + do + draw + ( + + + ) + ; + + + return + + + x + + + ; + + + } + + + + method + void + dispose + ( + + + ) + + { + + + do + Memory + . + deAlloc + ( + + + + this + + + + ) + ; + + + return + ; + + + } + + + + method + void + draw + ( + + + ) + + { + + + do + Screen + . + setColor + ( + + + + x + + + + ) + ; + + + do + Screen + . + drawRectangle + ( + + + + x + + + , + + + y + + + , + + + x + + + , + + + y + + + + ) + ; + + + return + ; + + + } + + + + method + void + erase + ( + + + ) + + { + + + do + Screen + . + setColor + ( + + + + x + + + + ) + ; + + + do + Screen + . + drawRectangle + ( + + + + x + + + , + + + y + + + , + + + x + + + , + + + y + + + + ) + ; + + + return + ; + + + } + + + + method + void + incSize + ( + + + ) + + { + + + if + ( + + + x + + + ) + { + + + do + erase + ( + + + ) + ; + + + let + size + = + + + size + + + ; + + + do + draw + ( + + + ) + ; + + + } + + + return + ; + + + } + + + + method + void + decSize + ( + + + ) + + { + + + if + ( + + + size + + + ) + { + + + do + erase + ( + + + ) + ; + + + let + size + = + + + size + + + ; + + + do + draw + ( + + + ) + ; + + + } + + + return + ; + + + } + + + + method + void + moveUp + ( + + + ) + + { + + + if + ( + + + y + + + ) + { + + + do + Screen + . + setColor + ( + + + + x + + + + ) + ; + + + do + Screen + . + drawRectangle + ( + + + + x + + + , + + + y + + + , + + + x + + + , + + + y + + + + ) + ; + + + let + y + = + + + y + + + ; + + + do + Screen + . + setColor + ( + + + + x + + + + ) + ; + + + do + Screen + . + drawRectangle + ( + + + + x + + + , + + + y + + + , + + + x + + + , + + + y + + + + ) + ; + + + } + + + return + ; + + + } + + + + method + void + moveDown + ( + + + ) + + { + + + if + ( + + + y + + + ) + { + + + do + Screen + . + setColor + ( + + + + x + + + + ) + ; + + + do + Screen + . + drawRectangle + ( + + + + x + + + , + + + y + + + , + + + x + + + , + + + y + + + + ) + ; + + + let + y + = + + + y + + + ; + + + do + Screen + . + setColor + ( + + + + x + + + + ) + ; + + + do + Screen + . + drawRectangle + ( + + + + x + + + , + + + y + + + , + + + x + + + , + + + y + + + + ) + ; + + + } + + + return + ; + + + } + + + + method + void + moveLeft + ( + + + ) + + { + + + if + ( + + + x + + + ) + { + + + do + Screen + . + setColor + ( + + + + x + + + + ) + ; + + + do + Screen + . + drawRectangle + ( + + + + x + + + , + + + y + + + , + + + x + + + , + + + y + + + + ) + ; + + + let + x + = + + + x + + + ; + + + do + Screen + . + setColor + ( + + + + x + + + + ) + ; + + + do + Screen + . + drawRectangle + ( + + + + x + + + , + + + y + + + , + + + x + + + , + + + y + + + + ) + ; + + + } + + + return + ; + + + } + + + + method + void + moveRight + ( + + + ) + + { + + + if + ( + + + x + + + ) + { + + + do + Screen + . + setColor + ( + + + + x + + + + ) + ; + + + do + Screen + . + drawRectangle + ( + + + + x + + + , + + + y + + + , + + + x + + + , + + + y + + + + ) + ; + + + let + x + = + + + x + + + ; + + + do + Screen + . + setColor + ( + + + + x + + + + ) + ; + + + do + Screen + . + drawRectangle + ( + + + + x + + + , + + + y + + + , + + + x + + + , + + + y + + + + ) + ; + + + } + + + return + ; + + + } + + + } + diff --git a/projects/10/ExpressionLessSquare/SquareGame.jack b/projects/10/ExpressionLessSquare/SquareGame.jack new file mode 100644 index 0000000..2866f0d --- /dev/null +++ b/projects/10/ExpressionLessSquare/SquareGame.jack @@ -0,0 +1,60 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/10/ExpressionLessSquare/SquareGame.jack + +/** Expressionless version of projects/10/Square/SquareGame.jack. */ + +class SquareGame { + field Square square; + field int direction; + + constructor SquareGame new() { + let square = square; + let direction = direction; + return square; + } + + method void dispose() { + do square.dispose(); + do Memory.deAlloc(square); + return; + } + + method void moveSquare() { + if (direction) { do square.moveUp(); } + if (direction) { do square.moveDown(); } + if (direction) { do square.moveLeft(); } + if (direction) { do square.moveRight(); } + do Sys.wait(direction); + return; + } + + method void run() { + var char key; + var boolean exit; + + let exit = key; + while (exit) { + while (key) { + let key = key; + do moveSquare(); + } + + if (key) { let exit = exit; } + if (key) { do square.decSize(); } + if (key) { do square.incSize(); } + if (key) { let direction = exit; } + if (key) { let direction = key; } + if (key) { let direction = square; } + if (key) { let direction = direction; } + + while (key) { + let key = key; + do moveSquare(); + } + } + return; + } +} + diff --git a/projects/10/ExpressionLessSquare/SquareGame.xml b/projects/10/ExpressionLessSquare/SquareGame.xml new file mode 100644 index 0000000..288c6cd --- /dev/null +++ b/projects/10/ExpressionLessSquare/SquareGame.xml @@ -0,0 +1,544 @@ + + class + SquareGame + { + + field + Square + square + ; + + + field + int + direction + ; + + + constructor + SquareGame + new + ( + + + ) + + { + + + let + square + = + + + square + + + ; + + + let + direction + = + + + direction + + + ; + + + return + + + square + + + ; + + + } + + + + method + void + dispose + ( + + + ) + + { + + + do + square + . + dispose + ( + + + ) + ; + + + do + Memory + . + deAlloc + ( + + + + square + + + + ) + ; + + + return + ; + + + } + + + + method + void + moveSquare + ( + + + ) + + { + + + if + ( + + + direction + + + ) + { + + + do + square + . + moveUp + ( + + + ) + ; + + + } + + + if + ( + + + direction + + + ) + { + + + do + square + . + moveDown + ( + + + ) + ; + + + } + + + if + ( + + + direction + + + ) + { + + + do + square + . + moveLeft + ( + + + ) + ; + + + } + + + if + ( + + + direction + + + ) + { + + + do + square + . + moveRight + ( + + + ) + ; + + + } + + + do + Sys + . + wait + ( + + + + direction + + + + ) + ; + + + return + ; + + + } + + + + method + void + run + ( + + + ) + + { + + var + char + key + ; + + + var + boolean + exit + ; + + + + let + exit + = + + + key + + + ; + + + while + ( + + + exit + + + ) + { + + + while + ( + + + key + + + ) + { + + + let + key + = + + + key + + + ; + + + do + moveSquare + ( + + + ) + ; + + + } + + + if + ( + + + key + + + ) + { + + + let + exit + = + + + exit + + + ; + + + } + + + if + ( + + + key + + + ) + { + + + do + square + . + decSize + ( + + + ) + ; + + + } + + + if + ( + + + key + + + ) + { + + + do + square + . + incSize + ( + + + ) + ; + + + } + + + if + ( + + + key + + + ) + { + + + let + direction + = + + + exit + + + ; + + + } + + + if + ( + + + key + + + ) + { + + + let + direction + = + + + key + + + ; + + + } + + + if + ( + + + key + + + ) + { + + + let + direction + = + + + square + + + ; + + + } + + + if + ( + + + key + + + ) + { + + + let + direction + = + + + direction + + + ; + + + } + + + while + ( + + + key + + + ) + { + + + let + key + = + + + key + + + ; + + + do + moveSquare + ( + + + ) + ; + + + } + + + } + + + return + ; + + + } + + + } + diff --git a/projects/10/ExpressionLessSquare/SquareGameT.xml b/projects/10/ExpressionLessSquare/SquareGameT.xml new file mode 100644 index 0000000..278a8a9 --- /dev/null +++ b/projects/10/ExpressionLessSquare/SquareGameT.xml @@ -0,0 +1,268 @@ + + class + SquareGame + { + field + Square + square + ; + field + int + direction + ; + constructor + SquareGame + new + ( + ) + { + let + square + = + square + ; + let + direction + = + direction + ; + return + square + ; + } + method + void + dispose + ( + ) + { + do + square + . + dispose + ( + ) + ; + do + Memory + . + deAlloc + ( + square + ) + ; + return + ; + } + method + void + moveSquare + ( + ) + { + if + ( + direction + ) + { + do + square + . + moveUp + ( + ) + ; + } + if + ( + direction + ) + { + do + square + . + moveDown + ( + ) + ; + } + if + ( + direction + ) + { + do + square + . + moveLeft + ( + ) + ; + } + if + ( + direction + ) + { + do + square + . + moveRight + ( + ) + ; + } + do + Sys + . + wait + ( + direction + ) + ; + return + ; + } + method + void + run + ( + ) + { + var + char + key + ; + var + boolean + exit + ; + let + exit + = + key + ; + while + ( + exit + ) + { + while + ( + key + ) + { + let + key + = + key + ; + do + moveSquare + ( + ) + ; + } + if + ( + key + ) + { + let + exit + = + exit + ; + } + if + ( + key + ) + { + do + square + . + decSize + ( + ) + ; + } + if + ( + key + ) + { + do + square + . + incSize + ( + ) + ; + } + if + ( + key + ) + { + let + direction + = + exit + ; + } + if + ( + key + ) + { + let + direction + = + key + ; + } + if + ( + key + ) + { + let + direction + = + square + ; + } + if + ( + key + ) + { + let + direction + = + direction + ; + } + while + ( + key + ) + { + let + key + = + key + ; + do + moveSquare + ( + ) + ; + } + } + return + ; + } + } + diff --git a/projects/10/ExpressionLessSquare/SquareT.xml b/projects/10/ExpressionLessSquare/SquareT.xml new file mode 100644 index 0000000..cd03a1e --- /dev/null +++ b/projects/10/ExpressionLessSquare/SquareT.xml @@ -0,0 +1,449 @@ + + class + Square + { + field + int + x + , + y + ; + field + int + size + ; + constructor + Square + new + ( + int + Ax + , + int + Ay + , + int + Asize + ) + { + let + x + = + Ax + ; + let + y + = + Ay + ; + let + size + = + Asize + ; + do + draw + ( + ) + ; + return + x + ; + } + method + void + dispose + ( + ) + { + do + Memory + . + deAlloc + ( + this + ) + ; + return + ; + } + method + void + draw + ( + ) + { + do + Screen + . + setColor + ( + x + ) + ; + do + Screen + . + drawRectangle + ( + x + , + y + , + x + , + y + ) + ; + return + ; + } + method + void + erase + ( + ) + { + do + Screen + . + setColor + ( + x + ) + ; + do + Screen + . + drawRectangle + ( + x + , + y + , + x + , + y + ) + ; + return + ; + } + method + void + incSize + ( + ) + { + if + ( + x + ) + { + do + erase + ( + ) + ; + let + size + = + size + ; + do + draw + ( + ) + ; + } + return + ; + } + method + void + decSize + ( + ) + { + if + ( + size + ) + { + do + erase + ( + ) + ; + let + size + = + size + ; + do + draw + ( + ) + ; + } + return + ; + } + method + void + moveUp + ( + ) + { + if + ( + y + ) + { + do + Screen + . + setColor + ( + x + ) + ; + do + Screen + . + drawRectangle + ( + x + , + y + , + x + , + y + ) + ; + let + y + = + y + ; + do + Screen + . + setColor + ( + x + ) + ; + do + Screen + . + drawRectangle + ( + x + , + y + , + x + , + y + ) + ; + } + return + ; + } + method + void + moveDown + ( + ) + { + if + ( + y + ) + { + do + Screen + . + setColor + ( + x + ) + ; + do + Screen + . + drawRectangle + ( + x + , + y + , + x + , + y + ) + ; + let + y + = + y + ; + do + Screen + . + setColor + ( + x + ) + ; + do + Screen + . + drawRectangle + ( + x + , + y + , + x + , + y + ) + ; + } + return + ; + } + method + void + moveLeft + ( + ) + { + if + ( + x + ) + { + do + Screen + . + setColor + ( + x + ) + ; + do + Screen + . + drawRectangle + ( + x + , + y + , + x + , + y + ) + ; + let + x + = + x + ; + do + Screen + . + setColor + ( + x + ) + ; + do + Screen + . + drawRectangle + ( + x + , + y + , + x + , + y + ) + ; + } + return + ; + } + method + void + moveRight + ( + ) + { + if + ( + x + ) + { + do + Screen + . + setColor + ( + x + ) + ; + do + Screen + . + drawRectangle + ( + x + , + y + , + x + , + y + ) + ; + let + x + = + x + ; + do + Screen + . + setColor + ( + x + ) + ; + do + Screen + . + drawRectangle + ( + x + , + y + , + x + , + y + ) + ; + } + return + ; + } + } + diff --git a/projects/10/Square/Main.jack b/projects/10/Square/Main.jack new file mode 100644 index 0000000..0b9e4cb --- /dev/null +++ b/projects/10/Square/Main.jack @@ -0,0 +1,36 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/10/Square/Main.jack + +// (derived from projects/09/Square/Main.jack, with testing additions) + +/** Initializes a new Square Dance game and starts running it. */ +class Main { + static boolean test; // Added for testing -- there is no static keyword + // in the Square files. + function void main() { + var SquareGame game; + let game = SquareGame.new(); + do game.run(); + do game.dispose(); + return; + } + + function void test() { // Added to test Jack syntax that is not use in + var int i, j; // the Square files. + var String s; + var Array a; + if (false) { + let s = "string constant"; + let s = null; + let a[1] = a[2]; + } + else { // There is no else keyword in the Square files. + let i = i * (-j); + let j = j / (-2); // note: unary negate constant 2 + let i = i | j; + } + return; + } +} diff --git a/projects/10/Square/Main.xml b/projects/10/Square/Main.xml new file mode 100644 index 0000000..f6863c6 --- /dev/null +++ b/projects/10/Square/Main.xml @@ -0,0 +1,244 @@ + + class + Main + { + + static + boolean + test + ; + + + function + void + main + ( + + + ) + + { + + var + SquareGame + game + ; + + + + let + game + = + + + SquareGame + . + new + ( + + + ) + + + ; + + + do + game + . + run + ( + + + ) + ; + + + do + game + . + dispose + ( + + + ) + ; + + + return + ; + + + } + + + + function + void + test + ( + + + ) + + { + + var + int + i + , + j + ; + + + var + String + s + ; + + + var + Array + a + ; + + + + if + ( + + + false + + + ) + { + + + let + s + = + + + string constant + + + ; + + + let + s + = + + + null + + + ; + + + let + a + [ + + + 1 + + + ] + = + + + a + [ + + + 2 + + + ] + + + ; + + + } + else + { + + + let + i + = + + + i + + * + + ( + + + - + + j + + + + ) + + + ; + + + let + j + = + + + j + + / + + ( + + + - + + 2 + + + + ) + + + ; + + + let + i + = + + + i + + | + + j + + + ; + + + } + + + return + ; + + + } + + + } + diff --git a/projects/10/Square/MainT.xml b/projects/10/Square/MainT.xml new file mode 100644 index 0000000..950c050 --- /dev/null +++ b/projects/10/Square/MainT.xml @@ -0,0 +1,126 @@ + + class + Main + { + static + boolean + test + ; + function + void + main + ( + ) + { + var + SquareGame + game + ; + let + game + = + SquareGame + . + new + ( + ) + ; + do + game + . + run + ( + ) + ; + do + game + . + dispose + ( + ) + ; + return + ; + } + function + void + test + ( + ) + { + var + int + i + , + j + ; + var + String + s + ; + var + Array + a + ; + if + ( + false + ) + { + let + s + = + string constant + ; + let + s + = + null + ; + let + a + [ + 1 + ] + = + a + [ + 2 + ] + ; + } + else + { + let + i + = + i + * + ( + - + j + ) + ; + let + j + = + j + / + ( + - + 2 + ) + ; + let + i + = + i + | + j + ; + } + return + ; + } + } + diff --git a/projects/10/Square/Square.jack b/projects/10/Square/Square.jack new file mode 100644 index 0000000..3faf24f --- /dev/null +++ b/projects/10/Square/Square.jack @@ -0,0 +1,110 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/10/Square/Square.jack + +// (same as projects/09/Square/Square.jack) + +/** Implements a graphical square. */ +class Square { + + field int x, y; // screen location of the square's top-left corner + field int size; // length of this square, in pixels + + /** Constructs a new square with a given location and size. */ + constructor Square new(int Ax, int Ay, int Asize) { + let x = Ax; + let y = Ay; + let size = Asize; + do draw(); + return this; + } + + /** Disposes this square. */ + method void dispose() { + do Memory.deAlloc(this); + return; + } + + /** Draws the square on the screen. */ + method void draw() { + do Screen.setColor(true); + do Screen.drawRectangle(x, y, x + size, y + size); + return; + } + + /** Erases the square from the screen. */ + method void erase() { + do Screen.setColor(false); + do Screen.drawRectangle(x, y, x + size, y + size); + return; + } + + /** Increments the square size by 2 pixels. */ + method void incSize() { + if (((y + size) < 254) & ((x + size) < 510)) { + do erase(); + let size = size + 2; + do draw(); + } + return; + } + + /** Decrements the square size by 2 pixels. */ + method void decSize() { + if (size > 2) { + do erase(); + let size = size - 2; + do draw(); + } + return; + } + + /** Moves the square up by 2 pixels. */ + method void moveUp() { + if (y > 1) { + do Screen.setColor(false); + do Screen.drawRectangle(x, (y + size) - 1, x + size, y + size); + let y = y - 2; + do Screen.setColor(true); + do Screen.drawRectangle(x, y, x + size, y + 1); + } + return; + } + + /** Moves the square down by 2 pixels. */ + method void moveDown() { + if ((y + size) < 254) { + do Screen.setColor(false); + do Screen.drawRectangle(x, y, x + size, y + 1); + let y = y + 2; + do Screen.setColor(true); + do Screen.drawRectangle(x, (y + size) - 1, x + size, y + size); + } + return; + } + + /** Moves the square left by 2 pixels. */ + method void moveLeft() { + if (x > 1) { + do Screen.setColor(false); + do Screen.drawRectangle((x + size) - 1, y, x + size, y + size); + let x = x - 2; + do Screen.setColor(true); + do Screen.drawRectangle(x, y, x + 1, y + size); + } + return; + } + + /** Moves the square right by 2 pixels. */ + method void moveRight() { + if ((x + size) < 510) { + do Screen.setColor(false); + do Screen.drawRectangle(x, y, x + 1, y + size); + let x = x + 2; + do Screen.setColor(true); + do Screen.drawRectangle((x + size) - 1, y, x + size, y + size); + } + return; + } +} diff --git a/projects/10/Square/Square.xml b/projects/10/Square/Square.xml new file mode 100644 index 0000000..ff5f235 --- /dev/null +++ b/projects/10/Square/Square.xml @@ -0,0 +1,1211 @@ + + class + Square + { + + field + int + x + , + y + ; + + + field + int + size + ; + + + constructor + Square + new + ( + + int + Ax + , + int + Ay + , + int + Asize + + ) + + { + + + let + x + = + + + Ax + + + ; + + + let + y + = + + + Ay + + + ; + + + let + size + = + + + Asize + + + ; + + + do + draw + ( + + + ) + ; + + + return + + + this + + + ; + + + } + + + + method + void + dispose + ( + + + ) + + { + + + do + Memory + . + deAlloc + ( + + + + this + + + + ) + ; + + + return + ; + + + } + + + + method + void + draw + ( + + + ) + + { + + + do + Screen + . + setColor + ( + + + + true + + + + ) + ; + + + do + Screen + . + drawRectangle + ( + + + + x + + + , + + + y + + + , + + + x + + + + + size + + + , + + + y + + + + + size + + + + ) + ; + + + return + ; + + + } + + + + method + void + erase + ( + + + ) + + { + + + do + Screen + . + setColor + ( + + + + false + + + + ) + ; + + + do + Screen + . + drawRectangle + ( + + + + x + + + , + + + y + + + , + + + x + + + + + size + + + , + + + y + + + + + size + + + + ) + ; + + + return + ; + + + } + + + + method + void + incSize + ( + + + ) + + { + + + if + ( + + + ( + + + ( + + + y + + + + + size + + + ) + + < + + 254 + + + ) + + & + + ( + + + ( + + + x + + + + + size + + + ) + + < + + 510 + + + ) + + + ) + { + + + do + erase + ( + + + ) + ; + + + let + size + = + + + size + + + + + 2 + + + ; + + + do + draw + ( + + + ) + ; + + + } + + + return + ; + + + } + + + + method + void + decSize + ( + + + ) + + { + + + if + ( + + + size + + > + + 2 + + + ) + { + + + do + erase + ( + + + ) + ; + + + let + size + = + + + size + + - + + 2 + + + ; + + + do + draw + ( + + + ) + ; + + + } + + + return + ; + + + } + + + + method + void + moveUp + ( + + + ) + + { + + + if + ( + + + y + + > + + 1 + + + ) + { + + + do + Screen + . + setColor + ( + + + + false + + + + ) + ; + + + do + Screen + . + drawRectangle + ( + + + + x + + + , + + + ( + + + y + + + + + size + + + ) + + - + + 1 + + + , + + + x + + + + + size + + + , + + + y + + + + + size + + + + ) + ; + + + let + y + = + + + y + + - + + 2 + + + ; + + + do + Screen + . + setColor + ( + + + + true + + + + ) + ; + + + do + Screen + . + drawRectangle + ( + + + + x + + + , + + + y + + + , + + + x + + + + + size + + + , + + + y + + + + + 1 + + + + ) + ; + + + } + + + return + ; + + + } + + + + method + void + moveDown + ( + + + ) + + { + + + if + ( + + + ( + + + y + + + + + size + + + ) + + < + + 254 + + + ) + { + + + do + Screen + . + setColor + ( + + + + false + + + + ) + ; + + + do + Screen + . + drawRectangle + ( + + + + x + + + , + + + y + + + , + + + x + + + + + size + + + , + + + y + + + + + 1 + + + + ) + ; + + + let + y + = + + + y + + + + + 2 + + + ; + + + do + Screen + . + setColor + ( + + + + true + + + + ) + ; + + + do + Screen + . + drawRectangle + ( + + + + x + + + , + + + ( + + + y + + + + + size + + + ) + + - + + 1 + + + , + + + x + + + + + size + + + , + + + y + + + + + size + + + + ) + ; + + + } + + + return + ; + + + } + + + + method + void + moveLeft + ( + + + ) + + { + + + if + ( + + + x + + > + + 1 + + + ) + { + + + do + Screen + . + setColor + ( + + + + false + + + + ) + ; + + + do + Screen + . + drawRectangle + ( + + + + ( + + + x + + + + + size + + + ) + + - + + 1 + + + , + + + y + + + , + + + x + + + + + size + + + , + + + y + + + + + size + + + + ) + ; + + + let + x + = + + + x + + - + + 2 + + + ; + + + do + Screen + . + setColor + ( + + + + true + + + + ) + ; + + + do + Screen + . + drawRectangle + ( + + + + x + + + , + + + y + + + , + + + x + + + + + 1 + + + , + + + y + + + + + size + + + + ) + ; + + + } + + + return + ; + + + } + + + + method + void + moveRight + ( + + + ) + + { + + + if + ( + + + ( + + + x + + + + + size + + + ) + + < + + 510 + + + ) + { + + + do + Screen + . + setColor + ( + + + + false + + + + ) + ; + + + do + Screen + . + drawRectangle + ( + + + + x + + + , + + + y + + + , + + + x + + + + + 1 + + + , + + + y + + + + + size + + + + ) + ; + + + let + x + = + + + x + + + + + 2 + + + ; + + + do + Screen + . + setColor + ( + + + + true + + + + ) + ; + + + do + Screen + . + drawRectangle + ( + + + + ( + + + x + + + + + size + + + ) + + - + + 1 + + + , + + + y + + + , + + + x + + + + + size + + + , + + + y + + + + + size + + + + ) + ; + + + } + + + return + ; + + + } + + + } + diff --git a/projects/10/Square/SquareGame.jack b/projects/10/Square/SquareGame.jack new file mode 100644 index 0000000..4f71b16 --- /dev/null +++ b/projects/10/Square/SquareGame.jack @@ -0,0 +1,81 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/10/Square/SquareGame.jack + +// (same as projects/09/Square/SquareGame.jack) + +/** + * Implements the Square Dance game. + * This simple game allows the user to move a black square around + * the screen, and change the square's size during the movement. + * When the game starts, a square of 30 by 30 pixels is shown at the + * top-left corner of the screen. The user controls the square as follows. + * The 4 arrow keys are used to move the square up, down, left, and right. + * The 'z' and 'x' keys are used, respectively, to decrement and increment + * the square's size. The 'q' key is used to quit the game. + */ + +class SquareGame { + field Square square; // the square of this game + field int direction; // the square's current direction: + // 0=none, 1=up, 2=down, 3=left, 4=right + + /** Constructs a new Square Game. */ + constructor SquareGame new() { + // Creates a 30 by 30 pixels square and positions it at the top-left + // of the screen. + let square = Square.new(0, 0, 30); + let direction = 0; // initial state is no movement + return this; + } + + /** Disposes this game. */ + method void dispose() { + do square.dispose(); + do Memory.deAlloc(this); + return; + } + + /** Moves the square in the current direction. */ + method void moveSquare() { + if (direction = 1) { do square.moveUp(); } + if (direction = 2) { do square.moveDown(); } + if (direction = 3) { do square.moveLeft(); } + if (direction = 4) { do square.moveRight(); } + do Sys.wait(5); // delays the next movement + return; + } + + /** Runs the game: handles the user's inputs and moves the square accordingly */ + method void run() { + var char key; // the key currently pressed by the user + var boolean exit; + let exit = false; + + while (~exit) { + // waits for a key to be pressed + while (key = 0) { + let key = Keyboard.keyPressed(); + do moveSquare(); + } + if (key = 81) { let exit = true; } // q key + if (key = 90) { do square.decSize(); } // z key + if (key = 88) { do square.incSize(); } // x key + if (key = 131) { let direction = 1; } // up arrow + if (key = 133) { let direction = 2; } // down arrow + if (key = 130) { let direction = 3; } // left arrow + if (key = 132) { let direction = 4; } // right arrow + + // waits for the key to be released + while (~(key = 0)) { + let key = Keyboard.keyPressed(); + do moveSquare(); + } + } // while + return; + } +} + + + diff --git a/projects/10/Square/SquareGame.xml b/projects/10/Square/SquareGame.xml new file mode 100644 index 0000000..ed3ab6e --- /dev/null +++ b/projects/10/Square/SquareGame.xml @@ -0,0 +1,643 @@ + + class + SquareGame + { + + field + Square + square + ; + + + field + int + direction + ; + + + constructor + SquareGame + new + ( + + + ) + + { + + + let + square + = + + + Square + . + new + ( + + + + 0 + + + , + + + 0 + + + , + + + 30 + + + + ) + + + ; + + + let + direction + = + + + 0 + + + ; + + + return + + + this + + + ; + + + } + + + + method + void + dispose + ( + + + ) + + { + + + do + square + . + dispose + ( + + + ) + ; + + + do + Memory + . + deAlloc + ( + + + + this + + + + ) + ; + + + return + ; + + + } + + + + method + void + moveSquare + ( + + + ) + + { + + + if + ( + + + direction + + = + + 1 + + + ) + { + + + do + square + . + moveUp + ( + + + ) + ; + + + } + + + if + ( + + + direction + + = + + 2 + + + ) + { + + + do + square + . + moveDown + ( + + + ) + ; + + + } + + + if + ( + + + direction + + = + + 3 + + + ) + { + + + do + square + . + moveLeft + ( + + + ) + ; + + + } + + + if + ( + + + direction + + = + + 4 + + + ) + { + + + do + square + . + moveRight + ( + + + ) + ; + + + } + + + do + Sys + . + wait + ( + + + + 5 + + + + ) + ; + + + return + ; + + + } + + + + method + void + run + ( + + + ) + + { + + var + char + key + ; + + + var + boolean + exit + ; + + + + let + exit + = + + + false + + + ; + + + while + ( + + + ~ + + exit + + + + ) + { + + + while + ( + + + key + + = + + 0 + + + ) + { + + + let + key + = + + + Keyboard + . + keyPressed + ( + + + ) + + + ; + + + do + moveSquare + ( + + + ) + ; + + + } + + + if + ( + + + key + + = + + 81 + + + ) + { + + + let + exit + = + + + true + + + ; + + + } + + + if + ( + + + key + + = + + 90 + + + ) + { + + + do + square + . + decSize + ( + + + ) + ; + + + } + + + if + ( + + + key + + = + + 88 + + + ) + { + + + do + square + . + incSize + ( + + + ) + ; + + + } + + + if + ( + + + key + + = + + 131 + + + ) + { + + + let + direction + = + + + 1 + + + ; + + + } + + + if + ( + + + key + + = + + 133 + + + ) + { + + + let + direction + = + + + 2 + + + ; + + + } + + + if + ( + + + key + + = + + 130 + + + ) + { + + + let + direction + = + + + 3 + + + ; + + + } + + + if + ( + + + key + + = + + 132 + + + ) + { + + + let + direction + = + + + 4 + + + ; + + + } + + + while + ( + + + ~ + + ( + + + key + + = + + 0 + + + ) + + + + ) + { + + + let + key + = + + + Keyboard + . + keyPressed + ( + + + ) + + + ; + + + do + moveSquare + ( + + + ) + ; + + + } + + + } + + + return + ; + + + } + + + } + diff --git a/projects/10/Square/SquareGameT.xml b/projects/10/Square/SquareGameT.xml new file mode 100644 index 0000000..3136af2 --- /dev/null +++ b/projects/10/Square/SquareGameT.xml @@ -0,0 +1,315 @@ + + class + SquareGame + { + field + Square + square + ; + field + int + direction + ; + constructor + SquareGame + new + ( + ) + { + let + square + = + Square + . + new + ( + 0 + , + 0 + , + 30 + ) + ; + let + direction + = + 0 + ; + return + this + ; + } + method + void + dispose + ( + ) + { + do + square + . + dispose + ( + ) + ; + do + Memory + . + deAlloc + ( + this + ) + ; + return + ; + } + method + void + moveSquare + ( + ) + { + if + ( + direction + = + 1 + ) + { + do + square + . + moveUp + ( + ) + ; + } + if + ( + direction + = + 2 + ) + { + do + square + . + moveDown + ( + ) + ; + } + if + ( + direction + = + 3 + ) + { + do + square + . + moveLeft + ( + ) + ; + } + if + ( + direction + = + 4 + ) + { + do + square + . + moveRight + ( + ) + ; + } + do + Sys + . + wait + ( + 5 + ) + ; + return + ; + } + method + void + run + ( + ) + { + var + char + key + ; + var + boolean + exit + ; + let + exit + = + false + ; + while + ( + ~ + exit + ) + { + while + ( + key + = + 0 + ) + { + let + key + = + Keyboard + . + keyPressed + ( + ) + ; + do + moveSquare + ( + ) + ; + } + if + ( + key + = + 81 + ) + { + let + exit + = + true + ; + } + if + ( + key + = + 90 + ) + { + do + square + . + decSize + ( + ) + ; + } + if + ( + key + = + 88 + ) + { + do + square + . + incSize + ( + ) + ; + } + if + ( + key + = + 131 + ) + { + let + direction + = + 1 + ; + } + if + ( + key + = + 133 + ) + { + let + direction + = + 2 + ; + } + if + ( + key + = + 130 + ) + { + let + direction + = + 3 + ; + } + if + ( + key + = + 132 + ) + { + let + direction + = + 4 + ; + } + while + ( + ~ + ( + key + = + 0 + ) + ) + { + let + key + = + Keyboard + . + keyPressed + ( + ) + ; + do + moveSquare + ( + ) + ; + } + } + return + ; + } + } + diff --git a/projects/10/Square/SquareT.xml b/projects/10/Square/SquareT.xml new file mode 100644 index 0000000..69a8ca0 --- /dev/null +++ b/projects/10/Square/SquareT.xml @@ -0,0 +1,561 @@ + + class + Square + { + field + int + x + , + y + ; + field + int + size + ; + constructor + Square + new + ( + int + Ax + , + int + Ay + , + int + Asize + ) + { + let + x + = + Ax + ; + let + y + = + Ay + ; + let + size + = + Asize + ; + do + draw + ( + ) + ; + return + this + ; + } + method + void + dispose + ( + ) + { + do + Memory + . + deAlloc + ( + this + ) + ; + return + ; + } + method + void + draw + ( + ) + { + do + Screen + . + setColor + ( + true + ) + ; + do + Screen + . + drawRectangle + ( + x + , + y + , + x + + + size + , + y + + + size + ) + ; + return + ; + } + method + void + erase + ( + ) + { + do + Screen + . + setColor + ( + false + ) + ; + do + Screen + . + drawRectangle + ( + x + , + y + , + x + + + size + , + y + + + size + ) + ; + return + ; + } + method + void + incSize + ( + ) + { + if + ( + ( + ( + y + + + size + ) + < + 254 + ) + & + ( + ( + x + + + size + ) + < + 510 + ) + ) + { + do + erase + ( + ) + ; + let + size + = + size + + + 2 + ; + do + draw + ( + ) + ; + } + return + ; + } + method + void + decSize + ( + ) + { + if + ( + size + > + 2 + ) + { + do + erase + ( + ) + ; + let + size + = + size + - + 2 + ; + do + draw + ( + ) + ; + } + return + ; + } + method + void + moveUp + ( + ) + { + if + ( + y + > + 1 + ) + { + do + Screen + . + setColor + ( + false + ) + ; + do + Screen + . + drawRectangle + ( + x + , + ( + y + + + size + ) + - + 1 + , + x + + + size + , + y + + + size + ) + ; + let + y + = + y + - + 2 + ; + do + Screen + . + setColor + ( + true + ) + ; + do + Screen + . + drawRectangle + ( + x + , + y + , + x + + + size + , + y + + + 1 + ) + ; + } + return + ; + } + method + void + moveDown + ( + ) + { + if + ( + ( + y + + + size + ) + < + 254 + ) + { + do + Screen + . + setColor + ( + false + ) + ; + do + Screen + . + drawRectangle + ( + x + , + y + , + x + + + size + , + y + + + 1 + ) + ; + let + y + = + y + + + 2 + ; + do + Screen + . + setColor + ( + true + ) + ; + do + Screen + . + drawRectangle + ( + x + , + ( + y + + + size + ) + - + 1 + , + x + + + size + , + y + + + size + ) + ; + } + return + ; + } + method + void + moveLeft + ( + ) + { + if + ( + x + > + 1 + ) + { + do + Screen + . + setColor + ( + false + ) + ; + do + Screen + . + drawRectangle + ( + ( + x + + + size + ) + - + 1 + , + y + , + x + + + size + , + y + + + size + ) + ; + let + x + = + x + - + 2 + ; + do + Screen + . + setColor + ( + true + ) + ; + do + Screen + . + drawRectangle + ( + x + , + y + , + x + + + 1 + , + y + + + size + ) + ; + } + return + ; + } + method + void + moveRight + ( + ) + { + if + ( + ( + x + + + size + ) + < + 510 + ) + { + do + Screen + . + setColor + ( + false + ) + ; + do + Screen + . + drawRectangle + ( + x + , + y + , + x + + + 1 + , + y + + + size + ) + ; + let + x + = + x + + + 2 + ; + do + Screen + . + setColor + ( + true + ) + ; + do + Screen + . + drawRectangle + ( + ( + x + + + size + ) + - + 1 + , + y + , + x + + + size + , + y + + + size + ) + ; + } + return + ; + } + } + diff --git a/projects/11/Average/Main.jack b/projects/11/Average/Main.jack new file mode 100644 index 0000000..d560bf1 --- /dev/null +++ b/projects/11/Average/Main.jack @@ -0,0 +1,29 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/11/Average/Main.jack + +// (Same as projects/09/Average/Main.jack) + +// Inputs some numbers and computes their average +class Main { + function void main() { + var Array a; + var int length; + var int i, sum; + + let length = Keyboard.readInt("How many numbers? "); + let a = Array.new(length); // constructs the array + + let i = 0; + while (i < length) { + let a[i] = Keyboard.readInt("Enter a number: "); + let sum = sum + a[i]; + let i = i + 1; + } + + do Output.printString("The average is "); + do Output.printInt(sum / length); + return; + } +} diff --git a/projects/11/ComplexArrays/Main.jack b/projects/11/ComplexArrays/Main.jack new file mode 100644 index 0000000..fe51c20 --- /dev/null +++ b/projects/11/ComplexArrays/Main.jack @@ -0,0 +1,70 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/11/ComplexArrays/Main.jack + +/** + * Performs several complex array processing tests. + * For each test, the expected result is printed, along with the + * actual result. In each test, the two results should be equal. + */ +class Main { + + function void main() { + var Array a, b, c; + + let a = Array.new(10); + let b = Array.new(5); + let c = Array.new(1); + + let a[3] = 2; + let a[4] = 8; + let a[5] = 4; + let b[a[3]] = a[3] + 3; // b[2] = 5 + let a[b[a[3]]] = a[a[5]] * b[((7 - a[3]) - Main.double(2)) + 1]; // a[5] = 8 * 5 = 40 + let c[0] = null; + let c = c[0]; + + do Output.printString("Test 1: expected result: 5; actual result: "); + do Output.printInt(b[2]); + do Output.println(); + do Output.printString("Test 2: expected result: 40; actual result: "); + do Output.printInt(a[5]); + do Output.println(); + do Output.printString("Test 3: expected result: 0; actual result: "); + do Output.printInt(c); + do Output.println(); + + let c = null; + + if (c = null) { + do Main.fill(a, 10); + let c = a[3]; + let c[1] = 33; + let c = a[7]; + let c[1] = 77; + let b = a[3]; + let b[1] = b[1] + c[1]; // b[1] = 33 + 77 = 110; + } + + do Output.printString("Test 4: expected result: 77; actual result: "); + do Output.printInt(c[1]); + do Output.println(); + do Output.printString("Test 5: expected result: 110; actual result: "); + do Output.printInt(b[1]); + do Output.println(); + return; + } + + function int double(int a) { + return a * 2; + } + + function void fill(Array a, int size) { + while (size > 0) { + let size = size - 1; + let a[size] = Array.new(3); + } + return; + } +} diff --git a/projects/11/ConvertToBin/Main.jack b/projects/11/ConvertToBin/Main.jack new file mode 100644 index 0000000..e627486 --- /dev/null +++ b/projects/11/ConvertToBin/Main.jack @@ -0,0 +1,82 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/11/ConvertToBin/Main.jack + +/** + * Unpacks a 16-bit number into its binary representation: + * Takes the 16-bit number stored in RAM[8000] and stores its individual + * bits in RAM[8001..8016] (each location will contain 0 or 1). + * Before the conversion, RAM[8001]..RAM[8016] are initialized to -1. + * + * The program should be tested as follows: + * 1) Load the program into the supplied VM emulator + * 2) Put some value in RAM[8000] + * 3) Switch to "no animation" + * 4) Run the program (give it enough time to run) + * 5) Stop the program + * 6) Check that RAM[8001]..RAM[8016] contains the correct binary result, and + * that none of these memory locations contains -1. + */ +class Main { + + /** + * Initializes RAM[8001]..RAM[8016] to -1, + * and converts the value in RAM[8000] to binary. + */ + function void main() { + var int value; + do Main.fillMemory(8001, 16, -1); // sets RAM[8001]..RAM[8016] to -1 + let value = Memory.peek(8000); // reads a value from RAM[8000] + do Main.convert(value); // performs the conversion + return; + } + + /** Converts the given decimal value to binary, and puts + * the resulting bits in RAM[8001]..RAM[8016]. */ + function void convert(int value) { + var int mask, position; + var boolean loop; + + let loop = true; + while (loop) { + let position = position + 1; + let mask = Main.nextMask(mask); + + if (~(position > 16)) { + + if (~((value & mask) = 0)) { + do Memory.poke(8000 + position, 1); + } + else { + do Memory.poke(8000 + position, 0); + } + } + else { + let loop = false; + } + } + return; + } + + /** Returns the next mask (the mask that should follow the given mask). */ + function int nextMask(int mask) { + if (mask = 0) { + return 1; + } + else { + return mask * 2; + } + } + + /** Fills 'length' consecutive memory locations with 'value', + * starting at 'startAddress'. */ + function void fillMemory(int startAddress, int length, int value) { + while (length > 0) { + do Memory.poke(startAddress, value); + let length = length - 1; + let startAddress = startAddress + 1; + } + return; + } +} diff --git a/projects/11/Pong/Ball.jack b/projects/11/Pong/Ball.jack new file mode 100644 index 0000000..02e47f9 --- /dev/null +++ b/projects/11/Pong/Ball.jack @@ -0,0 +1,203 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/11/Pong/Ball.jack + +/** + * A graphical ball. Characterized by a screen location and distance of + * last destination. Has methods for drawing, erasing and moving on the screen. + * The ball is displayed as a filled, 6-by-6 pixles rectangle. + */ +class Ball { + + field int x, y; // the ball's screen location (in pixels) + field int lengthx, lengthy; // distance of last destination (in pixels) + + field int d, straightD, diagonalD; // used for straight line movement computation + field boolean invert, positivex, positivey; // (same) + + field int leftWall, rightWall, topWall, bottomWall; // wall locations + + field int wall; // last wall that the ball was bounced off of + + /** Constructs a new ball with the given initial location and wall locations. */ + constructor Ball new(int Ax, int Ay, + int AleftWall, int ArightWall, int AtopWall, int AbottomWall) { + let x = Ax; + let y = Ay; + let leftWall = AleftWall; + let rightWall = ArightWall - 6; // -6 for ball size + let topWall = AtopWall; + let bottomWall = AbottomWall - 6; // -6 for ball size + let wall = 0; + do show(); + return this; + } + + /** Deallocates the Ball's memory. */ + method void dispose() { + do Memory.deAlloc(this); + return; + } + + /** Shows the ball. */ + method void show() { + do Screen.setColor(true); + do draw(); + return; + } + + /** Hides the ball. */ + method void hide() { + do Screen.setColor(false); + do draw(); + return; + } + + /** Draws the ball. */ + method void draw() { + do Screen.drawRectangle(x, y, x + 5, y + 5); + return; + } + + /** Returns the ball's left edge. */ + method int getLeft() { + return x; + } + + /** Returns the ball's right edge. */ + method int getRight() { + return x + 5; + } + + /** Computes and sets the ball's destination. */ + method void setDestination(int destx, int desty) { + var int dx, dy, temp; + let lengthx = destx - x; + let lengthy = desty - y; + let dx = Math.abs(lengthx); + let dy = Math.abs(lengthy); + let invert = (dx < dy); + + if (invert) { + let temp = dx; // swap dx, dy + let dx = dy; + let dy = temp; + let positivex = (y < desty); + let positivey = (x < destx); + } + else { + let positivex = (x < destx); + let positivey = (y < desty); + } + + let d = (2 * dy) - dx; + let straightD = 2 * dy; + let diagonalD = 2 * (dy - dx); + + return; + } + + /** + * Moves the ball one unit towards its destination. + * If the ball has reached a wall, returns 0. + * Else, returns a value according to the wall: + * 1 (left wall), 2 (right wall), 3 (top wall), 4 (bottom wall). + */ + method int move() { + + do hide(); + + if (d < 0) { let d = d + straightD; } + else { + let d = d + diagonalD; + + if (positivey) { + if (invert) { let x = x + 4; } + else { let y = y + 4; } + } + else { + if (invert) { let x = x - 4; } + else { let y = y - 4; } + } + } + + if (positivex) { + if (invert) { let y = y + 4; } + else { let x = x + 4; } + } + else { + if (invert) { let y = y - 4; } + else { let x = x - 4; } + } + + if (~(x > leftWall)) { + let wall = 1; + let x = leftWall; + } + if (~(x < rightWall)) { + let wall = 2; + let x = rightWall; + } + if (~(y > topWall)) { + let wall = 3; + let y = topWall; + } + if (~(y < bottomWall)) { + let wall = 4; + let y = bottomWall; + } + + do show(); + + return wall; + } + + /** + * Bounces off the current wall: sets the new destination + * of the ball according to the ball's angle and the given + * bouncing direction (-1/0/1=left/center/right or up/center/down). + */ + method void bounce(int bouncingDirection) { + var int newx, newy, divLengthx, divLengthy, factor; + + // dividing by 10 first since results are too big + let divLengthx = lengthx / 10; + let divLengthy = lengthy / 10; + if (bouncingDirection = 0) { let factor = 10; } + else { + if (((~(lengthx < 0)) & (bouncingDirection = 1)) | ((lengthx < 0) & (bouncingDirection = (-1)))) { + let factor = 20; // bounce direction is in ball direction + } + else { let factor = 5; } // bounce direction is against ball direction + } + + if (wall = 1) { + let newx = 506; + let newy = (divLengthy * (-50)) / divLengthx; + let newy = y + (newy * factor); + } + else { + if (wall = 2) { + let newx = 0; + let newy = (divLengthy * 50) / divLengthx; + let newy = y + (newy * factor); + } + else { + if (wall = 3) { + let newy = 250; + let newx = (divLengthx * (-25)) / divLengthy; + let newx = x + (newx * factor); + } + else { // assumes wall = 4 + let newy = 0; + let newx = (divLengthx * 25) / divLengthy; + let newx = x + (newx * factor); + } + } + } + + do setDestination(newx, newy); + return; + } +} diff --git a/projects/11/Pong/Bat.jack b/projects/11/Pong/Bat.jack new file mode 100644 index 0000000..340760f --- /dev/null +++ b/projects/11/Pong/Bat.jack @@ -0,0 +1,103 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/11/Pong/Bat.jack + +/** + * A graphical Pong bat. + * Displayed as a filled horizontal rectangle that has + * a screen location, a width and a height. + * Has methods for drawing, erasing, moving left and right, + * and changing its width (to make the hitting action more challenging). + * This class should have been called "paddle", following the + * standard Pong terminology. But, unaware of this terminology, + * we called it "bat", and then decided to stick to it. + */ +class Bat { + + field int x, y; // the bat's screen location + field int width, height; // the bat's width and height + field int direction; // direction of the bat's movement (1 = left, 2 = right) + + /** Constructs a new bat with the given location and width. */ + constructor Bat new(int Ax, int Ay, int Awidth, int Aheight) { + let x = Ax; + let y = Ay; + let width = Awidth; + let height = Aheight; + let direction = 2; + do show(); + return this; + } + + /** Deallocates the object's memory. */ + method void dispose() { + do Memory.deAlloc(this); + return; + } + + /** Shows the bat. */ + method void show() { + do Screen.setColor(true); + do draw(); + return; + } + + /** Hides the bat. */ + method void hide() { + do Screen.setColor(false); + do draw(); + return; + } + + /** Draws the bat. */ + method void draw() { + do Screen.drawRectangle(x, y, x + width, y + height); + return; + } + + /** Sets the bat's direction (0=stop, 1=left, 2=right). */ + method void setDirection(int Adirection) { + let direction = Adirection; + return; + } + + /** Returns the bat's left edge. */ + method int getLeft() { + return x; + } + + /** Returns the bat's right edge. */ + method int getRight() { + return x + width; + } + + /** Sets the bat's width. */ + method void setWidth(int Awidth) { + do hide(); + let width = Awidth; + do show(); + return; + } + + /** Moves the bat one step in the bat's direction. */ + method void move() { + if (direction = 1) { + let x = x - 4; + if (x < 0) { let x = 0; } + do Screen.setColor(false); + do Screen.drawRectangle((x + width) + 1, y, (x + width) + 4, y + height); + do Screen.setColor(true); + do Screen.drawRectangle(x, y, x + 3, y + height); + } + else { + let x = x + 4; + if ((x + width) > 511) { let x = 511 - width; } + do Screen.setColor(false); + do Screen.drawRectangle(x - 4, y, x - 1, y + height); + do Screen.setColor(true); + do Screen.drawRectangle((x + width) - 3, y, x + width, y + height); + } + return; + } +} diff --git a/projects/11/Pong/Main.jack b/projects/11/Pong/Main.jack new file mode 100644 index 0000000..45e2dd2 --- /dev/null +++ b/projects/11/Pong/Main.jack @@ -0,0 +1,20 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/11/Pong/Main.jack + +/** + * The main class of the Pong game. + */ +class Main { + + /** Initializes a Pong game and starts running it. */ + function void main() { + var PongGame game; + do PongGame.newInstance(); + let game = PongGame.getInstance(); + do game.run(); + do game.dispose(); + return; + } +} diff --git a/projects/11/Pong/PongGame.jack b/projects/11/Pong/PongGame.jack new file mode 100644 index 0000000..7e1ae4c --- /dev/null +++ b/projects/11/Pong/PongGame.jack @@ -0,0 +1,137 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/11/Pong/PongGame.jack + +/** + * Represents a Pong game. + */ +class PongGame { + + static PongGame instance; // the singelton, a Pong game instance + field Bat bat; // the bat + field Ball ball; // the ball + field int wall; // the current wall that the ball is bouncing off of. + field boolean exit; // true when the game is over + field int score; // the current score. + field int lastWall; // the last wall that the ball bounced off of. + + // The current width of the bat + field int batWidth; + + /** Constructs a new Pong game. */ + constructor PongGame new() { + do Screen.clearScreen(); + let batWidth = 50; // initial bat size + let bat = Bat.new(230, 229, batWidth, 7); + let ball = Ball.new(253, 222, 0, 511, 0, 229); + do ball.setDestination(400,0); + do Screen.drawRectangle(0, 238, 511, 240); + do Output.moveCursor(22,0); + do Output.printString("Score: 0"); + + let exit = false; + let score = 0; + let wall = 0; + let lastWall = 0; + + return this; + } + + /** Deallocates the object's memory. */ + method void dispose() { + do bat.dispose(); + do ball.dispose(); + do Memory.deAlloc(this); + return; + } + + /** Creates an instance of Pong game, and stores it. */ + function void newInstance() { + let instance = PongGame.new(); + return; + } + + /** Returns the single instance of this Pong game. */ + function PongGame getInstance() { + return instance; + } + + /** Starts the game, and andles inputs from the user that control + * the bat's movement direction. */ + method void run() { + var char key; + + while (~exit) { + // waits for a key to be pressed. + while ((key = 0) & (~exit)) { + let key = Keyboard.keyPressed(); + do bat.move(); + do moveBall(); + do Sys.wait(50); + } + + if (key = 130) { do bat.setDirection(1); } + else { + if (key = 132) { do bat.setDirection(2); } + else { + if (key = 140) { let exit = true; } + } + } + + // Waits for the key to be released. + while ((~(key = 0)) & (~exit)) { + let key = Keyboard.keyPressed(); + do bat.move(); + do moveBall(); + do Sys.wait(50); + } + } + + if (exit) { + do Output.moveCursor(10,27); + do Output.printString("Game Over"); + } + + return; + } + + /** + * Handles ball movement, including bouncing. + * If the ball bounces off a wall, finds its new direction. + * If the ball bounces off the bat, increases the score by one + * and shrinks the bat's size, to make the game more challenging. + */ + method void moveBall() { + var int bouncingDirection, batLeft, batRight, ballLeft, ballRight; + + let wall = ball.move(); + + if ((wall > 0) & (~(wall = lastWall))) { + let lastWall = wall; + let bouncingDirection = 0; + let batLeft = bat.getLeft(); + let batRight = bat.getRight(); + let ballLeft = ball.getLeft(); + let ballRight = ball.getRight(); + + if (wall = 4) { + let exit = (batLeft > ballRight) | (batRight < ballLeft); + if (~exit) { + if (ballRight < (batLeft + 10)) { let bouncingDirection = -1; } + else { + if (ballLeft > (batRight - 10)) { let bouncingDirection = 1; } + } + + let batWidth = batWidth - 2; + do bat.setWidth(batWidth); + let score = score + 1; + do Output.moveCursor(22,7); + do Output.printInt(score); + } + } + do ball.bounce(bouncingDirection); + } + return; + } +} \ No newline at end of file diff --git a/projects/11/Seven/Main.jack b/projects/11/Seven/Main.jack new file mode 100644 index 0000000..067402e --- /dev/null +++ b/projects/11/Seven/Main.jack @@ -0,0 +1,17 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/11/Seven/Main.jack + +/** + * Computes the value of 1 + (2 * 3) and prints the result + * at the top-left of the screen. + */ +class Main { + + function void main() { + do Output.printInt(1 + (2 * 3)); + return; + } + +} diff --git a/projects/11/Square/Main.jack b/projects/11/Square/Main.jack new file mode 100644 index 0000000..0753893 --- /dev/null +++ b/projects/11/Square/Main.jack @@ -0,0 +1,17 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/11/Square/Main.jack + +// (same as projects/09/Square/Main.jack) + +/** Initializes a new Square Dance game and starts running it. */ +class Main { + function void main() { + var SquareGame game; + let game = SquareGame.new(); + do game.run(); + do game.dispose(); + return; + } +} diff --git a/projects/11/Square/Square.jack b/projects/11/Square/Square.jack new file mode 100644 index 0000000..5a92838 --- /dev/null +++ b/projects/11/Square/Square.jack @@ -0,0 +1,110 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/11/Square/Square.jack + +// (same as projects/09/Square/Square.jack) + +/** Implements a graphical square. */ +class Square { + + field int x, y; // screen location of the square's top-left corner + field int size; // length of this square, in pixels + + /** Constructs a new square with a given location and size. */ + constructor Square new(int Ax, int Ay, int Asize) { + let x = Ax; + let y = Ay; + let size = Asize; + do draw(); + return this; + } + + /** Disposes this square. */ + method void dispose() { + do Memory.deAlloc(this); + return; + } + + /** Draws the square on the screen. */ + method void draw() { + do Screen.setColor(true); + do Screen.drawRectangle(x, y, x + size, y + size); + return; + } + + /** Erases the square from the screen. */ + method void erase() { + do Screen.setColor(false); + do Screen.drawRectangle(x, y, x + size, y + size); + return; + } + + /** Increments the square size by 2 pixels. */ + method void incSize() { + if (((y + size) < 254) & ((x + size) < 510)) { + do erase(); + let size = size + 2; + do draw(); + } + return; + } + + /** Decrements the square size by 2 pixels. */ + method void decSize() { + if (size > 2) { + do erase(); + let size = size - 2; + do draw(); + } + return; + } + + /** Moves the square up by 2 pixels. */ + method void moveUp() { + if (y > 1) { + do Screen.setColor(false); + do Screen.drawRectangle(x, (y + size) - 1, x + size, y + size); + let y = y - 2; + do Screen.setColor(true); + do Screen.drawRectangle(x, y, x + size, y + 1); + } + return; + } + + /** Moves the square down by 2 pixels. */ + method void moveDown() { + if ((y + size) < 254) { + do Screen.setColor(false); + do Screen.drawRectangle(x, y, x + size, y + 1); + let y = y + 2; + do Screen.setColor(true); + do Screen.drawRectangle(x, (y + size) - 1, x + size, y + size); + } + return; + } + + /** Moves the square left by 2 pixels. */ + method void moveLeft() { + if (x > 1) { + do Screen.setColor(false); + do Screen.drawRectangle((x + size) - 1, y, x + size, y + size); + let x = x - 2; + do Screen.setColor(true); + do Screen.drawRectangle(x, y, x + 1, y + size); + } + return; + } + + /** Moves the square right by 2 pixels. */ + method void moveRight() { + if ((x + size) < 510) { + do Screen.setColor(false); + do Screen.drawRectangle(x, y, x + 1, y + size); + let x = x + 2; + do Screen.setColor(true); + do Screen.drawRectangle((x + size) - 1, y, x + size, y + size); + } + return; + } +} diff --git a/projects/11/Square/SquareGame.jack b/projects/11/Square/SquareGame.jack new file mode 100644 index 0000000..4fe7e39 --- /dev/null +++ b/projects/11/Square/SquareGame.jack @@ -0,0 +1,81 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/11/Square/SquareGame.jack + +// (same as projects/09/Square/SquareGame.jack) + +/** + * Implements the Square Dance game. + * This simple game allows the user to move a black square around + * the screen, and change the square's size during the movement. + * When the game starts, a square of 30 by 30 pixels is shown at the + * top-left corner of the screen. The user controls the square as follows. + * The 4 arrow keys are used to move the square up, down, left, and right. + * The 'z' and 'x' keys are used, respectively, to decrement and increment + * the square's size. The 'q' key is used to quit the game. + */ + +class SquareGame { + field Square square; // the square of this game + field int direction; // the square's current direction: + // 0=none, 1=up, 2=down, 3=left, 4=right + + /** Constructs a new Square Game. */ + constructor SquareGame new() { + // Creates a 30 by 30 pixels square and positions it at the top-left + // of the screen. + let square = Square.new(0, 0, 30); + let direction = 0; // initial state is no movement + return this; + } + + /** Disposes this game. */ + method void dispose() { + do square.dispose(); + do Memory.deAlloc(this); + return; + } + + /** Moves the square in the current direction. */ + method void moveSquare() { + if (direction = 1) { do square.moveUp(); } + if (direction = 2) { do square.moveDown(); } + if (direction = 3) { do square.moveLeft(); } + if (direction = 4) { do square.moveRight(); } + do Sys.wait(5); // delays the next movement + return; + } + + /** Runs the game: handles the user's inputs and moves the square accordingly */ + method void run() { + var char key; // the key currently pressed by the user + var boolean exit; + let exit = false; + + while (~exit) { + // waits for a key to be pressed + while (key = 0) { + let key = Keyboard.keyPressed(); + do moveSquare(); + } + if (key = 81) { let exit = true; } // q key + if (key = 90) { do square.decSize(); } // z key + if (key = 88) { do square.incSize(); } // x key + if (key = 131) { let direction = 1; } // up arrow + if (key = 133) { let direction = 2; } // down arrow + if (key = 130) { let direction = 3; } // left arrow + if (key = 132) { let direction = 4; } // right arrow + + // waits for the key to be released + while (~(key = 0)) { + let key = Keyboard.keyPressed(); + do moveSquare(); + } + } // while + return; + } +} + + + diff --git a/projects/12/Array.jack b/projects/12/Array.jack new file mode 100644 index 0000000..ee31129 --- /dev/null +++ b/projects/12/Array.jack @@ -0,0 +1,23 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/12/Array.jack + +/** + * Represents an array. + * In the Jack language, arrays are instances of the Array class. + * Once declared, the array entries can be accessed using the usual + * syntax arr[i]. Each array entry can hold a primitive data type as + * well as any object type. Different array entries can have different + * data types. + */ +class Array { + + /** Constructs a new Array of the given size. */ + function Array new(int size) { + } + + /** Disposes this array. */ + method void dispose() { + } +} diff --git a/projects/12/ArrayTest/Array.jack b/projects/12/ArrayTest/Array.jack new file mode 100644 index 0000000..df48e33 --- /dev/null +++ b/projects/12/ArrayTest/Array.jack @@ -0,0 +1,29 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/12/Array.jack + +/** + * Represents an array. + * In the Jack language, arrays are instances of the Array class. + * Once declared, the array entries can be accessed using the usual + * syntax arr[i]. Each array entry can hold a primitive data type as + * well as any object type. Different array entries can have different + * data types. + */ +class Array { + /** Constructs a new Array of the given size. */ + function Array new(int size) { + if (size > 0) { + return Memory.alloc(size); + } else { + return 0; + } + } + + /** Disposes this array. */ + method void dispose() { + do Memory.deAlloc(this); + return; + } +} diff --git a/projects/12/ArrayTest/ArrayTest.cmp b/projects/12/ArrayTest/ArrayTest.cmp new file mode 100644 index 0000000..d1a9798 --- /dev/null +++ b/projects/12/ArrayTest/ArrayTest.cmp @@ -0,0 +1,2 @@ +|RAM[8000]|RAM[8001]|RAM[8002]|RAM[8003]| +| 222 | 122 | 100 | 10 | diff --git a/projects/12/ArrayTest/ArrayTest.tst b/projects/12/ArrayTest/ArrayTest.tst new file mode 100644 index 0000000..89934b9 --- /dev/null +++ b/projects/12/ArrayTest/ArrayTest.tst @@ -0,0 +1,15 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/12/ArrayTest/ArrayTest.tst + +load, +output-file ArrayTest.out, +compare-to ArrayTest.cmp, +output-list RAM[8000]%D2.6.1 RAM[8001]%D2.6.1 RAM[8002]%D2.6.1 RAM[8003]%D2.6.1; + +repeat 1000000 { + vmstep; +} + +output; diff --git a/projects/12/ArrayTest/Main.jack b/projects/12/ArrayTest/Main.jack new file mode 100644 index 0000000..439770a --- /dev/null +++ b/projects/12/ArrayTest/Main.jack @@ -0,0 +1,40 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/12/ArrayTest/Main.jack + +/** Test program for the OS Array class. */ +class Main { + + /** Performs several Array manipulations. */ + function void main() { + var Array r; // stores test results + var Array a, b, c; + + let r = 8000; + + let a = Array.new(3); + let a[2] = 222; + let r[0] = a[2]; // RAM[8000] = 222 + + let b = Array.new(3); + let b[1] = a[2] - 100; + let r[1] = b[1]; // RAM[8001] = 122 + + let c = Array.new(500); + let c[499] = a[2] - b[1]; + let r[2] = c[499]; // RAM[8002] = 100 + + do a.dispose(); + do b.dispose(); + + let b = Array.new(3); + let b[0] = c[499] - 90; + let r[3] = b[0]; // RAM[8003] = 10 + + do c.dispose(); + do b.dispose(); + + return; + } +} diff --git a/projects/12/Keyboard.jack b/projects/12/Keyboard.jack new file mode 100644 index 0000000..03e1031 --- /dev/null +++ b/projects/12/Keyboard.jack @@ -0,0 +1,62 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/12/Keyboard.jack + +/** + * A library for handling user input from the keyboard. + */ +class Keyboard { + + /** Initializes the keyboard. */ + function void init() { + } + + /** + * Returns the character of the currently pressed key on the keyboard; + * if no key is currently pressed, returns 0. + * + * Recognizes all ASCII characters, as well as the following keys: + * new line = 128 = String.newline() + * backspace = 129 = String.backspace() + * left arrow = 130 + * up arrow = 131 + * right arrow = 132 + * down arrow = 133 + * home = 134 + * End = 135 + * page up = 136 + * page down = 137 + * insert = 138 + * delete = 139 + * ESC = 140 + * F1 - F12 = 141 - 152 + */ + function char keyPressed() { + } + + /** + * Waits until a key is pressed on the keyboard and released, + * then echoes the key to the screen, and returns the character + * of the pressed key. + */ + function char readChar() { + } + + /** + * Displays the message on the screen, reads from the keyboard the entered + * text until a newline character is detected, echoes the text to the screen, + * and returns its value. Also handles user backspaces. + */ + function String readLine(String message) { + } + + /** + * Displays the message on the screen, reads from the keyboard the entered + * text until a newline character is detected, echoes the text to the screen, + * and returns its integer value (until the first non-digit character in the + * entered text is detected). Also handles user backspaces. + */ + function int readInt(String message) { + } +} diff --git a/projects/12/KeyboardTest/Keyboard.jack b/projects/12/KeyboardTest/Keyboard.jack new file mode 100644 index 0000000..a4706cd --- /dev/null +++ b/projects/12/KeyboardTest/Keyboard.jack @@ -0,0 +1,196 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/12/Keyboard.jack + +/** + * A library for handling user input from the keyboard. + */ +class Keyboard { + + /** Initializes the keyboard. */ + function void init() { + return; + } + + /** + * Returns the character of the currently pressed key on the keyboard; + * if no key is currently pressed, returns 0. + * + * Recognizes all ASCII characters, as well as the following keys: + * new line = 128 = String.newline() + * backspace = 129 = String.backspace() + * left arrow = 130 + * up arrow = 131 + * right arrow = 132 + * down arrow = 133 + * home = 134 + * End = 135 + * page up = 136 + * page down = 137 + * insert = 138 + * delete = 139 + * ESC = 140 + * F1 - F12 = 141 - 152 + */ + function char keyPressed() { + var char value; + let value = Memory.peek(24576); + + if (value = 128) { + return String.newLine(); + } + + if (value = 129) { + return String.backSpace(); + } + + return value; + } + + /** + * Waits until a key is pressed on the keyboard and released, + * then echoes the key to the screen, and returns the character + * of the pressed key. + */ + function char readChar() { + var char key, result; + while (Keyboard.keyPressed() = 0) {} + let key = Keyboard.keyPressed(); + while (~(Keyboard.keyPressed() = 0)) {} + if (key = String.newLine()) { + return key; + } + if (key = String.backSpace()) { + return key; + } + do Output.printChar(key); + return key; + } + + /** + * Displays the message on the screen, reads from the keyboard the entered + * text until a newline character is detected, echoes the text to the screen, + * and returns its value. Also handles user backspaces. + */ + function String readLine(String message) { + var String s; + var char key, newline, backspace; + var int i; + let newline = String.newLine(); + let backspace = String.backSpace(); + let s = String.new(128); + let key = 0; + + do Output.printString(message); + let i = 0; + while (~(key = newline)) { + let key = Keyboard.readChar(); + if (key = newline) { + do Output.println(); + return s; + } else { + if (key = backspace) { + if (i > 0) { + do s.eraseLastChar(); + do Output.backSpace(); + let i = i - 1; + } + } else { + do s.appendChar(key); + let i = i + 1; + } + } + // Prevent out of bound error. + if (i = 128) { + return s; + } + } + return s; + } + + function int textToInt(String s) { + var int result, i, length, multiplier; + var char c; + var boolean isNegative, continue; + let isNegative = false; + let length = s.length(); + let i = 0; + let result = 0; + let multiplier = 1; + + if (length = 0) { + return 0; + } + + if (s.charAt(0) = 45) { + let isNegative = true; + } + + let i = length; + while (true) { + let i = i - 1; + let c = s.charAt(i); + if ((s.charAt(i) > 47) & (s.charAt(i) < 58)) { + let result = result + ((s.charAt(i) - 48) * multiplier); + let multiplier = multiplier * 10; + } else { + // could raise exception here; + } + + if (isNegative) { + if (i = 1) { + return -result; + } + } else { + if (i = 0) { + return result; + } + } + } + return 0; + } + + /** + * Displays the message on the screen, reads from the keyboard the entered + * text until a newline character is detected, echoes the text to the screen, + * and returns its integer value (until the first non-digit character in the + * entered text is detected). Also handles user backspaces. + */ + function int readInt(String message) { + var String s; + var char key, newline, backspace; + var int i; + let newline = String.newLine(); + let backspace = String.backSpace(); + let s = String.new(128); + let key = 0; + + do Output.printString(message); + let i = 0; + while (~(key = newline)) { + let key = Keyboard.readChar(); + if (key = newline) { + do Output.println(); + } else { + if (key = backspace) { + if (i > 0) { + do s.eraseLastChar(); + do Output.backSpace(); + let i = i - 1; + } + } else { + do s.appendChar(key); + let i = i + 1; + } + } + // Prevent out of bound error. + if (i = 128) { + return s; + } + } + let i = Keyboard.textToInt(s); + do s.dispose(); + return i; + } +} diff --git a/projects/12/KeyboardTest/KeyboardTestOutput.gif b/projects/12/KeyboardTest/KeyboardTestOutput.gif new file mode 100644 index 0000000000000000000000000000000000000000..944983aaf1c0559b1b10f02987fe7574dc0a5bdd GIT binary patch literal 12048 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 F`X7nb_ul{j literal 0 HcmV?d00001 diff --git a/projects/12/KeyboardTest/Main.jack b/projects/12/KeyboardTest/Main.jack new file mode 100644 index 0000000..e89182c --- /dev/null +++ b/projects/12/KeyboardTest/Main.jack @@ -0,0 +1,93 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/12/KeyboardTest/Main.jack + +/** Test program for the OS Keyboard class. */ +class Main { + + /** Gets input from the user and verifies its contents. */ + function void main() { + var char c, key; + var String s; + var int i; + var boolean ok; + + let ok = false; + do Output.printString("keyPressed test:"); + do Output.println(); + while (~ok) { + do Output.printString("Please press the 'Page Down' key"); + while (key = 0) { + let key = Keyboard.keyPressed(); + } + let c = key; + while (~(key = 0)) { + let key = Keyboard.keyPressed(); + } + + do Output.println(); + + if (c = 137) { + do Output.printString("ok"); + do Output.println(); + let ok = true; + } + } + + let ok = false; + do Output.printString("readChar test:"); + do Output.println(); + do Output.printString("(Verify that the pressed character is echoed to the screen)"); + do Output.println(); + while (~ok) { + do Output.printString("Please press the number '3': "); + let c = Keyboard.readChar(); + + do Output.println(); + + if (c = 51) { + do Output.printString("ok"); + do Output.println(); + let ok = true; + } + } + + let ok = false; + do Output.printString("readLine test:"); + do Output.println(); + do Output.printString("(Verify echo and usage of 'backspace')"); + do Output.println(); + while (~ok) { + let s = Keyboard.readLine("Please type 'JACK' and press enter: "); + + if (s.length() = 4) { + if ((s.charAt(0) = 74) & (s.charAt(1) = 65) & (s.charAt(2) = 67) & (s.charAt(3) = 75)) { + do Output.printString("ok"); + do Output.println(); + let ok = true; + } + } + } + + let ok = false; + do Output.printString("readInt test:"); + do Output.println(); + do Output.printString("(Verify echo and usage of 'backspace')"); + do Output.println(); + while (~ok) { + let i = Keyboard.readInt("Please type '-32123' and press enter: "); + + if (i = (-32123)) { + do Output.printString("ok"); + do Output.println(); + let ok = true; + } + } + + do Output.println(); + do Output.printString("Test completed successfully"); + + return; + } +} diff --git a/projects/12/Math.jack b/projects/12/Math.jack new file mode 100644 index 0000000..a57f023 --- /dev/null +++ b/projects/12/Math.jack @@ -0,0 +1,47 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/12/Math.jack + +/** + * A library of commonly used mathematical functions. + * Note: Jack compilers implement multiplication and division using OS method calls. + */ +class Math { + + /** Initializes the library. */ + function void init() { + } + + /** Returns the absolute value of x. */ + function int abs(int x) { + } + + /** Returns the product of x and y. + * When a Jack compiler detects the multiplication operator '*' in the + * program's code, it handles it by invoking this method. In other words, + * the Jack expressions x*y and multiply(x,y) return the same value. + */ + function int multiply(int x, int y) { + } + + /** Returns the integer part of x/y. + * When a Jack compiler detects the multiplication operator '/' in the + * program's code, it handles it by invoking this method. In other words, + * the Jack expressions x/y and divide(x,y) return the same value. + */ + function int divide(int x, int y) { + } + + /** Returns the integer part of the square root of x. */ + function int sqrt(int x) { + } + + /** Returns the greater number. */ + function int max(int a, int b) { + } + + /** Returns the smaller number. */ + function int min(int a, int b) { + } +} diff --git a/projects/12/MathTest/Main.jack b/projects/12/MathTest/Main.jack new file mode 100644 index 0000000..de5cec2 --- /dev/null +++ b/projects/12/MathTest/Main.jack @@ -0,0 +1,35 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/12/MathTest/Main.jack + +/** Test program for the OS Math class. */ +class Main { + + /** Performs various mathematical operations, using calls to the Math class methods. */ + function void main() { + var Array r; // stores the test results; + + let r = 8000; + + let r[0] = 2 * 3; // 6 + let r[1] = r[0] * (-30); // 6 * (-30) = -180 + let r[2] = r[1] * 100; // (-180) * 100 = -18000 + let r[3] = 1 * r[2]; // 1 * (-18000) = -18000 + let r[4] = r[3] * 0; // 0 + + let r[5] = 9 / 3; // 3 + let r[6] = (-18000) / 6; // -3000 + let r[7] = 32766 / (-32767); // 0 + + let r[8] = Math.sqrt(9); // 3 + let r[9] = Math.sqrt(32767); // 181 + + let r[10] = Math.min(345, 123); // 123 + let r[11] = Math.max(123, -345); // 123 + let r[12] = Math.abs(27); // 27 + let r[13] = Math.abs(-32767); // 32767 + + return; + } +} diff --git a/projects/12/MathTest/Math.jack b/projects/12/MathTest/Math.jack new file mode 100644 index 0000000..1c7a235 --- /dev/null +++ b/projects/12/MathTest/Math.jack @@ -0,0 +1,133 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/12/Math.jack + +/** + * A library of commonly used mathematical functions. + * Note: Jack compilers implement multiplication and division using OS method calls. + */ +class Math { + + /** Initializes the library. */ + function void init() { + return; + } + + /** Returns the absolute value of x. */ + function int abs(int x) { + if (x < 0) { + let x = -x; + } + return x; + } + + /** Returns the product of x and y. + * When a Jack compiler detects the multiplication operator '*' in the + * program's code, it handles it by invoking this method. In other words, + * the Jack expressions x*y and multiply(x,y) return the same value. + */ + function int multiply(int x, int y) { + var int sum; + var int i; + var int mask; + var int xShifted; + + let sum = 0; + let i = 0; + let mask = 1; + let xShifted = x; + + if (x = 1) { + return y; + } + + if (y = 1) { + return x; + } + + while (i < 16) { // 16 because we got a 16 bit architecture + if (y & mask) { + let sum = sum + xShifted; + } + let xShifted = xShifted + xShifted; // xShifted << 2; + let mask = mask + mask; // mask << 2; + let i = i + 1; + } + + return sum; + } + + /** Returns the integer part of x/y. + * When a Jack compiler detects the multiplication operator '/' in the + * program's code, it handles it by invoking this method. In other words, + * the Jack expressions x/y and divide(x,y) return the same value. + */ + function int divide(int x, int y) { + var int q; + var int sign; + + let sign = 1; + + if (x < 0) { + let x = -x; + let sign = -sign; + } + + if (y < 0) { + let y = -y; + let sign = -sign; + } + + if (y > x) { + return 0; + } + + let q = x / (y + y); + + if ((x - (2 * q * y)) < y) { + return (q + q) * sign; + } else { + return (q + q + 1) * sign; + } + } + + /** Returns the integer part of the square root of x. */ + function int sqrt(int x) { + var int y; + var int p; + var int s; + var int s2; + + let y = 0; + let p = 128; // 2^7 + + while (p > 0) { + let s = y + p; + let s2 = s * s; + if ((s2 - 1) < x) { + if (s2 > 0) { + let y = s; + } + } + let p = p / 2; // p >> 1; + } + return y; + } + + /** Returns the greater number. */ + function int max(int a, int b) { + if (a > b) { + return a; + } + return b; + } + + /** Returns the smaller number. */ + function int min(int a, int b) { + if (a < b) { + return a; + } + return b; + } +} diff --git a/projects/12/MathTest/MathTest.cmp b/projects/12/MathTest/MathTest.cmp new file mode 100644 index 0000000..703c1be --- /dev/null +++ b/projects/12/MathTest/MathTest.cmp @@ -0,0 +1,2 @@ +|RAM[8000]|RAM[8001]|RAM[8002]|RAM[8003]|RAM[8004]|RAM[8005]|RAM[8006]|RAM[8007]|RAM[8008]|RAM[8009]|RAM[8010]|RAM[8011]|RAM[8012]|RAM[8013]| +| 6 | -180 | -18000 | -18000 | 0 | 3 | -3000 | 0 | 3 | 181 | 123 | 123 | 27 | 32767 | diff --git a/projects/12/MathTest/MathTest.tst b/projects/12/MathTest/MathTest.tst new file mode 100644 index 0000000..127dbb4 --- /dev/null +++ b/projects/12/MathTest/MathTest.tst @@ -0,0 +1,15 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/12/MathTest/MathTest.tst + +load, +output-file MathTest.out, +compare-to MathTest.cmp, +output-list RAM[8000]%D2.6.1 RAM[8001]%D2.6.1 RAM[8002]%D2.6.1 RAM[8003]%D2.6.1 RAM[8004]%D2.6.1 RAM[8005]%D2.6.1 RAM[8006]%D2.6.1 RAM[8007]%D2.6.1 RAM[8008]%D2.6.1 RAM[8009]%D2.6.1 RAM[8010]%D2.6.1 RAM[8011]%D2.6.1 RAM[8012]%D2.6.1 RAM[8013]%D2.6.1; + +repeat 1000000 { + vmstep; +} + +output; diff --git a/projects/12/Memory.jack b/projects/12/Memory.jack new file mode 100644 index 0000000..941eec1 --- /dev/null +++ b/projects/12/Memory.jack @@ -0,0 +1,34 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/12/Memory.jack + +/** + * This library provides two services: direct access to the computer's main + * memory (RAM), and allocation and recycling of memory blocks. The Hack RAM + * consists of 32,768 words, each holding a 16-bit binary number. + */ +class Memory { + + /** Initializes the class. */ + function void init() { + } + + /** Returns the RAM value at the given address. */ + function int peek(int address) { + } + + /** Sets the RAM value at the given address to the given value. */ + function void poke(int address, int value) { + } + + /** Finds an available RAM block of the given size and returns + * a reference to its base address. */ + function int alloc(int size) { + } + + /** De-allocates the given object (cast as an array) by making + * it available for future allocations. */ + function void deAlloc(Array o) { + } +} diff --git a/projects/12/MemoryTest/Main.jack b/projects/12/MemoryTest/Main.jack new file mode 100644 index 0000000..77a53a9 --- /dev/null +++ b/projects/12/MemoryTest/Main.jack @@ -0,0 +1,42 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/12/MemoryTest/Main.jack + +/** Test program for the OS Memory class. */ +class Main { + + /** Performs various memory manipulations. */ + function void main() { + var int temp; + var Array a, b, c; + + do Memory.poke(8000, 333); // RAM[8000] = 333 + let temp = Memory.peek(8000); + do Memory.poke(8001, temp + 1); // RAM[8001] = 334 + + let a = Array.new(3); // uses Memory.alloc + let a[2] = 222; + do Memory.poke(8002, a[2]); // RAM[8002] = 222 + + let b = Array.new(3); + let b[1] = a[2] - 100; + do Memory.poke(8003, b[1]); // RAM[8003] = 122 + + let c = Array.new(500); + let c[499] = a[2] - b[1]; + do Memory.poke(8004, c[499]); // RAM[8004] = 100 + + do a.dispose(); // uses Memory.deAlloc + do b.dispose(); + + let b = Array.new(3); + let b[0] = c[499] - 90; + do Memory.poke(8005, b[0]); // RAM[8005] = 10 + + do c.dispose(); + do b.dispose(); + + return; + } +} diff --git a/projects/12/MemoryTest/Memory.jack b/projects/12/MemoryTest/Memory.jack new file mode 100644 index 0000000..e4527bc --- /dev/null +++ b/projects/12/MemoryTest/Memory.jack @@ -0,0 +1,120 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/12/Memory.jack + +/** + * This library provides two services: direct access to the computer's main + * memory (RAM), and allocation and recycling of memory blocks. The Hack RAM + * consists of 32,768 words, each holding a 16-bit binary number. + */ +class Memory { + static Array ram; + static Array heap; + static Array freeList; + + /** Initializes the class. */ + function void init() { + let ram = 0; + let heap = 2048; + let freeList = heap; + let freeList[0] = 0; // next + let freeList[1] = 14334; // length + return; + } + + /** Returns the RAM value at the given address. */ + function int peek(int address) { + return ram[address]; + } + + /** Sets the RAM value at the given address to the given value. */ + function void poke(int address, int value) { + let ram[address] = value; + return; + } + + /** Finds an available RAM block of the given size and returns + * a reference to its base address. */ + function int alloc(int size) { + var Array previousBlock; + var Array currentBlock; + var Array resultBlock; + var int currentBlockSize; + var int remainingSize; + var int currentBlockNext; + + if (freeList = 0) { + return 0; + } + + // XXX: I am not happy with having the whole code duplicated just because + // we have the "special case" that we select the first block. + + // Using the first block is a special case, because we have to + // update freeList instead of simply taking the block out of the list + // by doing `let previousBlock.next = currentBlock.next`. + let currentBlockSize = freeList[1]; + if (currentBlockSize > size) { + let remainingSize = currentBlockSize - size; + let resultBlock = freeList; + if (remainingSize < 4) { + // If remainingSize is smaller than 4 it does not make sense to split + // the block. Just return it as a whole. + let freeList = freeList[0]; // point to freeList.next + } else { + // If remainingSize is big enough we split the block. In that case + // we have to update the size of the block we return as well as + // the block (aka the remainder of the current block). + let resultBlock[1] = size; + let freeList = resultBlock + 2 + size; + let freeList[0] = resultBlock[0]; + let freeList[1] = currentBlockSize - size - 2; + } + return resultBlock + 2; + } + + let previousBlock = freeList; + // The following excludes the first block which is what we want + // because we handled it separately before. + while (~(previousBlock[0] = 0)) { + let currentBlock = previousBlock[0]; + let currentBlockSize = currentBlock[1]; + if (currentBlockSize > size) { + let resultBlock = currentBlock; + let remainingSize = currentBlockSize - size; + if (remainingSize < 4) { + let previousBlock[0] = resultBlock[0]; + } else { + let resultBlock[1] = size; + let currentBlock = resultBlock + 2 + size; + let currentBlock[0] = resultBlock[0]; + let currentBlock[1] = currentBlockSize - size - 2; + let previousBlock[0] = currentBlock; + } + return resultBlock; + } else { + let previousBlock = currentBlock; + } + } + + // Not enough heap available. Call defragment and try again. + return 0; + } + + /** De-allocates the given object (cast as an array) by making + * it available for future allocations. */ + function void deAlloc(Array o) { + var Array currentBlock; + if (freeList = 0) { + let freeList = o - 2; + } + let currentBlock = freeList; + while (~(currentBlock[0] = 0)) { + let currentBlock = currentBlock[0]; + } + + let currentBlock[0] = o - 2; + return; + } +} diff --git a/projects/12/MemoryTest/MemoryTest.cmp b/projects/12/MemoryTest/MemoryTest.cmp new file mode 100644 index 0000000..057958b --- /dev/null +++ b/projects/12/MemoryTest/MemoryTest.cmp @@ -0,0 +1,2 @@ +|RAM[8000]|RAM[8001]|RAM[8002]|RAM[8003]|RAM[8004]|RAM[8005]| +| 333 | 334 | 222 | 122 | 100 | 10 | diff --git a/projects/12/MemoryTest/MemoryTest.tst b/projects/12/MemoryTest/MemoryTest.tst new file mode 100644 index 0000000..1da34fd --- /dev/null +++ b/projects/12/MemoryTest/MemoryTest.tst @@ -0,0 +1,15 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/12/MemoryTest/MemoryTest.tst + +load, +output-file MemoryTest.out, +compare-to MemoryTest.cmp, +output-list RAM[8000]%D2.6.1 RAM[8001]%D2.6.1 RAM[8002]%D2.6.1 RAM[8003]%D2.6.1 RAM[8004]%D2.6.1 RAM[8005]%D2.6.1; + +repeat 1000000 { + vmstep; +} + +output; diff --git a/projects/12/Output.jack b/projects/12/Output.jack new file mode 100644 index 0000000..18e3382 --- /dev/null +++ b/projects/12/Output.jack @@ -0,0 +1,203 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/12/Output.jack + +/** + * A library of functions for writing text on the screen. + * The Hack physical screen consists of 512 rows of 256 pixels each. + * The library uses a fixed font, in which each character is displayed + * within a frame which is 11 pixels high (including 1 pixel for inter-line + * spacing) and 8 pixels wide (including 2 pixels for inter-character spacing). + * The resulting grid accommodates 23 rows (indexed 0..22, top to bottom) + * of 64 characters each (indexed 0..63, left to right). The top left + * character position on the screen is indexed (0,0). A cursor, implemented + * as a small filled square, indicates where the next character will be displayed. + */ +class Output { + + // Character map for displaying characters + static Array charMaps; + + /** Initializes the screen, and locates the cursor at the screen's top-left. */ + function void init() { + } + + // Initializes the character map array + function void initMap() { + var int i; + + let charMaps = Array.new(127); + + // Black square, used for displaying non-printable characters. + do Output.create(0,63,63,63,63,63,63,63,63,63,0,0); + + // Assigns the bitmap for each character in the charachter set. + // The first parameter is the character index, the next 11 numbers + // are the values of each row in the frame that represents this character. + do Output.create(32,0,0,0,0,0,0,0,0,0,0,0); // + do Output.create(33,12,30,30,30,12,12,0,12,12,0,0); // ! + do Output.create(34,54,54,20,0,0,0,0,0,0,0,0); // " + do Output.create(35,0,18,18,63,18,18,63,18,18,0,0); // # + do Output.create(36,12,30,51,3,30,48,51,30,12,12,0); // $ + do Output.create(37,0,0,35,51,24,12,6,51,49,0,0); // % + do Output.create(38,12,30,30,12,54,27,27,27,54,0,0); // & + do Output.create(39,12,12,6,0,0,0,0,0,0,0,0); // ' + do Output.create(40,24,12,6,6,6,6,6,12,24,0,0); // ( + do Output.create(41,6,12,24,24,24,24,24,12,6,0,0); // ) + do Output.create(42,0,0,0,51,30,63,30,51,0,0,0); // * + do Output.create(43,0,0,0,12,12,63,12,12,0,0,0); // + + do Output.create(44,0,0,0,0,0,0,0,12,12,6,0); // , + do Output.create(45,0,0,0,0,0,63,0,0,0,0,0); // - + do Output.create(46,0,0,0,0,0,0,0,12,12,0,0); // . + do Output.create(47,0,0,32,48,24,12,6,3,1,0,0); // / + + do Output.create(48,12,30,51,51,51,51,51,30,12,0,0); // 0 + do Output.create(49,12,14,15,12,12,12,12,12,63,0,0); // 1 + do Output.create(50,30,51,48,24,12,6,3,51,63,0,0); // 2 + do Output.create(51,30,51,48,48,28,48,48,51,30,0,0); // 3 + do Output.create(52,16,24,28,26,25,63,24,24,60,0,0); // 4 + do Output.create(53,63,3,3,31,48,48,48,51,30,0,0); // 5 + do Output.create(54,28,6,3,3,31,51,51,51,30,0,0); // 6 + do Output.create(55,63,49,48,48,24,12,12,12,12,0,0); // 7 + do Output.create(56,30,51,51,51,30,51,51,51,30,0,0); // 8 + do Output.create(57,30,51,51,51,62,48,48,24,14,0,0); // 9 + + do Output.create(58,0,0,12,12,0,0,12,12,0,0,0); // : + do Output.create(59,0,0,12,12,0,0,12,12,6,0,0); // ; + do Output.create(60,0,0,24,12,6,3,6,12,24,0,0); // < + do Output.create(61,0,0,0,63,0,0,63,0,0,0,0); // = + do Output.create(62,0,0,3,6,12,24,12,6,3,0,0); // > + do Output.create(64,30,51,51,59,59,59,27,3,30,0,0); // @ + do Output.create(63,30,51,51,24,12,12,0,12,12,0,0); // ? + + do Output.create(65,0,0,0,0,0,0,0,0,0,0,0); // A ** TO BE FILLED ** + do Output.create(66,31,51,51,51,31,51,51,51,31,0,0); // B + do Output.create(67,28,54,35,3,3,3,35,54,28,0,0); // C + do Output.create(68,15,27,51,51,51,51,51,27,15,0,0); // D + do Output.create(69,63,51,35,11,15,11,35,51,63,0,0); // E + do Output.create(70,63,51,35,11,15,11,3,3,3,0,0); // F + do Output.create(71,28,54,35,3,59,51,51,54,44,0,0); // G + do Output.create(72,51,51,51,51,63,51,51,51,51,0,0); // H + do Output.create(73,30,12,12,12,12,12,12,12,30,0,0); // I + do Output.create(74,60,24,24,24,24,24,27,27,14,0,0); // J + do Output.create(75,51,51,51,27,15,27,51,51,51,0,0); // K + do Output.create(76,3,3,3,3,3,3,35,51,63,0,0); // L + do Output.create(77,33,51,63,63,51,51,51,51,51,0,0); // M + do Output.create(78,51,51,55,55,63,59,59,51,51,0,0); // N + do Output.create(79,30,51,51,51,51,51,51,51,30,0,0); // O + do Output.create(80,31,51,51,51,31,3,3,3,3,0,0); // P + do Output.create(81,30,51,51,51,51,51,63,59,30,48,0);// Q + do Output.create(82,31,51,51,51,31,27,51,51,51,0,0); // R + do Output.create(83,30,51,51,6,28,48,51,51,30,0,0); // S + do Output.create(84,63,63,45,12,12,12,12,12,30,0,0); // T + do Output.create(85,51,51,51,51,51,51,51,51,30,0,0); // U + do Output.create(86,51,51,51,51,51,30,30,12,12,0,0); // V + do Output.create(87,51,51,51,51,51,63,63,63,18,0,0); // W + do Output.create(88,51,51,30,30,12,30,30,51,51,0,0); // X + do Output.create(89,51,51,51,51,30,12,12,12,30,0,0); // Y + do Output.create(90,63,51,49,24,12,6,35,51,63,0,0); // Z + + do Output.create(91,30,6,6,6,6,6,6,6,30,0,0); // [ + do Output.create(92,0,0,1,3,6,12,24,48,32,0,0); // \ + do Output.create(93,30,24,24,24,24,24,24,24,30,0,0); // ] + do Output.create(94,8,28,54,0,0,0,0,0,0,0,0); // ^ + do Output.create(95,0,0,0,0,0,0,0,0,0,63,0); // _ + do Output.create(96,6,12,24,0,0,0,0,0,0,0,0); // ` + + do Output.create(97,0,0,0,14,24,30,27,27,54,0,0); // a + do Output.create(98,3,3,3,15,27,51,51,51,30,0,0); // b + do Output.create(99,0,0,0,30,51,3,3,51,30,0,0); // c + do Output.create(100,48,48,48,60,54,51,51,51,30,0,0); // d + do Output.create(101,0,0,0,30,51,63,3,51,30,0,0); // e + do Output.create(102,28,54,38,6,15,6,6,6,15,0,0); // f + do Output.create(103,0,0,30,51,51,51,62,48,51,30,0); // g + do Output.create(104,3,3,3,27,55,51,51,51,51,0,0); // h + do Output.create(105,12,12,0,14,12,12,12,12,30,0,0); // i + do Output.create(106,48,48,0,56,48,48,48,48,51,30,0); // j + do Output.create(107,3,3,3,51,27,15,15,27,51,0,0); // k + do Output.create(108,14,12,12,12,12,12,12,12,30,0,0); // l + do Output.create(109,0,0,0,29,63,43,43,43,43,0,0); // m + do Output.create(110,0,0,0,29,51,51,51,51,51,0,0); // n + do Output.create(111,0,0,0,30,51,51,51,51,30,0,0); // o + do Output.create(112,0,0,0,30,51,51,51,31,3,3,0); // p + do Output.create(113,0,0,0,30,51,51,51,62,48,48,0); // q + do Output.create(114,0,0,0,29,55,51,3,3,7,0,0); // r + do Output.create(115,0,0,0,30,51,6,24,51,30,0,0); // s + do Output.create(116,4,6,6,15,6,6,6,54,28,0,0); // t + do Output.create(117,0,0,0,27,27,27,27,27,54,0,0); // u + do Output.create(118,0,0,0,51,51,51,51,30,12,0,0); // v + do Output.create(119,0,0,0,51,51,51,63,63,18,0,0); // w + do Output.create(120,0,0,0,51,30,12,12,30,51,0,0); // x + do Output.create(121,0,0,0,51,51,51,62,48,24,15,0); // y + do Output.create(122,0,0,0,63,27,12,6,51,63,0,0); // z + + do Output.create(123,56,12,12,12,7,12,12,12,56,0,0); // { + do Output.create(124,12,12,12,12,12,12,12,12,12,0,0); // | + do Output.create(125,7,12,12,12,56,12,12,12,7,0,0); // } + do Output.create(126,38,45,25,0,0,0,0,0,0,0,0); // ~ + + return; + } + + // Creates the character map array of the given character index, using the given values. + function void create(int index, int a, int b, int c, int d, int e, + int f, int g, int h, int i, int j, int k) { + var Array map; + + let map = Array.new(11); + let charMaps[index] = map; + + let map[0] = a; + let map[1] = b; + let map[2] = c; + let map[3] = d; + let map[4] = e; + let map[5] = f; + let map[6] = g; + let map[7] = h; + let map[8] = i; + let map[9] = j; + let map[10] = k; + + return; + } + + // Returns the character map (array of size 11) of the given character. + // If the given character is invalid or non-printable, returns the + // character map of a black square. + function Array getMap(char c) { + if ((c < 32) | (c > 126)) { + let c = 0; + } + return charMaps[c]; + } + + /** Moves the cursor to the j-th column of the i-th row, + * and erases the character displayed there. */ + function void moveCursor(int i, int j) { + } + + /** Displays the given character at the cursor location, + * and advances the cursor one column forward. */ + function void printChar(char c) { + } + + /** displays the given string starting at the cursor location, + * and advances the cursor appropriately. */ + function void printString(String s) { + } + + /** Displays the given integer starting at the cursor location, + * and advances the cursor appropriately. */ + function void printInt(int i) { + } + + /** Advances the cursor to the beginning of the next line. */ + function void println() { + } + + /** Moves the cursor one column back. */ + function void backSpace() { + } +} diff --git a/projects/12/OutputTest/Main.jack b/projects/12/OutputTest/Main.jack new file mode 100644 index 0000000..f243068 --- /dev/null +++ b/projects/12/OutputTest/Main.jack @@ -0,0 +1,42 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/12/OutputTest/Main.jack + +/** Test program for the OS Output class. */ +class Main { + + /** Outputs the entire character set to the screen using all the + * methods of the Output class. */ + function void main() { + var String s; + + let s = String.new(1); + do s.appendChar(String.doubleQuote()); + + do Output.moveCursor(0, 63); + do Output.printChar(66); + do Output.moveCursor(22, 0); + do Output.printChar(67); + do Output.moveCursor(22, 63); + do Output.printChar(68); + do Output.printChar(65); + + do Output.moveCursor(2, 0); + do Output.printString("0123456789"); + do Output.println(); + + do Output.printString("ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz"); + do Output.println(); + + do Output.printString("!#$%&'()*+,-./:;<=>?@[\]^_`{|}~"); + do Output.printString(s); + do Output.println(); + + do Output.printInt(-12345); + do Output.backSpace(); + do Output.printInt(6789); + + return; + } +} diff --git a/projects/12/OutputTest/Output.jack b/projects/12/OutputTest/Output.jack new file mode 100644 index 0000000..701bc30 --- /dev/null +++ b/projects/12/OutputTest/Output.jack @@ -0,0 +1,317 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/12/Output.jack + +/** + * A library of functions for writing text on the screen. + * The Hack physical screen consists of 512 rows of 256 pixels each. + * The library uses a fixed font, in which each character is displayed + * within a frame which is 11 pixels high (including 1 pixel for inter-line + * spacing) and 8 pixels wide (including 2 pixels for inter-character spacing). + * The resulting grid accommodates 23 rows (indexed 0..22, top to bottom) + * of 64 characters each (indexed 0..63, left to right). The top left + * character position on the screen is indexed (0,0). A cursor, implemented + * as a small filled square, indicates where the next character will be displayed. + */ +class Output { + + // Character map for displaying characters + static Array charMaps; + static int currentColumn; + static int currentRow; + + /** Initializes the screen, and locates the cursor at the screen's top-left. */ + function void init() { + do Screen.clearScreen(); + do Output.initMap(); + let currentColumn = 0; + let currentRow = 0; + return; + } + + function int modulo(int a, int b) { + var int d; + let d = a / b; + return a - (d * b); + } + + // Initializes the character map array + function void initMap() { + var int i; + + let charMaps = Array.new(127); + + // Black square, used for displaying non-printable characters. + do Output.create(0,63,63,63,63,63,63,63,63,63,0,0); + + // Assigns the bitmap for each character in the charachter set. + // The first parameter is the character index, the next 11 numbers + // are the values of each row in the frame that represents this character. + do Output.create(32,0,0,0,0,0,0,0,0,0,0,0); // + do Output.create(33,12,30,30,30,12,12,0,12,12,0,0); // ! + do Output.create(34,54,54,20,0,0,0,0,0,0,0,0); // " + do Output.create(35,0,18,18,63,18,18,63,18,18,0,0); // # + do Output.create(36,12,30,51,3,30,48,51,30,12,12,0); // $ + do Output.create(37,0,0,35,51,24,12,6,51,49,0,0); // % + do Output.create(38,12,30,30,12,54,27,27,27,54,0,0); // & + do Output.create(39,12,12,6,0,0,0,0,0,0,0,0); // ' + do Output.create(40,24,12,6,6,6,6,6,12,24,0,0); // ( + do Output.create(41,6,12,24,24,24,24,24,12,6,0,0); // ) + do Output.create(42,0,0,0,51,30,63,30,51,0,0,0); // * + do Output.create(43,0,0,0,12,12,63,12,12,0,0,0); // + + do Output.create(44,0,0,0,0,0,0,0,12,12,6,0); // , + do Output.create(45,0,0,0,0,0,63,0,0,0,0,0); // - + do Output.create(46,0,0,0,0,0,0,0,12,12,0,0); // . + do Output.create(47,0,0,32,48,24,12,6,3,1,0,0); // / + + do Output.create(48,12,30,51,51,51,51,51,30,12,0,0); // 0 + do Output.create(49,12,14,15,12,12,12,12,12,63,0,0); // 1 + do Output.create(50,30,51,48,24,12,6,3,51,63,0,0); // 2 + do Output.create(51,30,51,48,48,28,48,48,51,30,0,0); // 3 + do Output.create(52,16,24,28,26,25,63,24,24,60,0,0); // 4 + do Output.create(53,63,3,3,31,48,48,48,51,30,0,0); // 5 + do Output.create(54,28,6,3,3,31,51,51,51,30,0,0); // 6 + do Output.create(55,63,49,48,48,24,12,12,12,12,0,0); // 7 + do Output.create(56,30,51,51,51,30,51,51,51,30,0,0); // 8 + do Output.create(57,30,51,51,51,62,48,48,24,14,0,0); // 9 + + do Output.create(58,0,0,12,12,0,0,12,12,0,0,0); // : + do Output.create(59,0,0,12,12,0,0,12,12,6,0,0); // ; + do Output.create(60,0,0,24,12,6,3,6,12,24,0,0); // < + do Output.create(61,0,0,0,63,0,0,63,0,0,0,0); // = + do Output.create(62,0,0,3,6,12,24,12,6,3,0,0); // > + do Output.create(64,30,51,51,59,59,59,27,3,30,0,0); // @ + do Output.create(63,30,51,51,24,12,12,0,12,12,0,0); // ? + + do Output.create(65,12,30,51,51,63,51,51,51,51,0,0); // A + do Output.create(66,31,51,51,51,31,51,51,51,31,0,0); // B + do Output.create(67,28,54,35,3,3,3,35,54,28,0,0); // C + do Output.create(68,15,27,51,51,51,51,51,27,15,0,0); // D + do Output.create(69,63,51,35,11,15,11,35,51,63,0,0); // E + do Output.create(70,63,51,35,11,15,11,3,3,3,0,0); // F + do Output.create(71,28,54,35,3,59,51,51,54,44,0,0); // G + do Output.create(72,51,51,51,51,63,51,51,51,51,0,0); // H + do Output.create(73,30,12,12,12,12,12,12,12,30,0,0); // I + do Output.create(74,60,24,24,24,24,24,27,27,14,0,0); // J + do Output.create(75,51,51,51,27,15,27,51,51,51,0,0); // K + do Output.create(76,3,3,3,3,3,3,35,51,63,0,0); // L + do Output.create(77,33,51,63,63,51,51,51,51,51,0,0); // M + do Output.create(78,51,51,55,55,63,59,59,51,51,0,0); // N + do Output.create(79,30,51,51,51,51,51,51,51,30,0,0); // O + do Output.create(80,31,51,51,51,31,3,3,3,3,0,0); // P + do Output.create(81,30,51,51,51,51,51,63,59,30,48,0);// Q + do Output.create(82,31,51,51,51,31,27,51,51,51,0,0); // R + do Output.create(83,30,51,51,6,28,48,51,51,30,0,0); // S + do Output.create(84,63,63,45,12,12,12,12,12,30,0,0); // T + do Output.create(85,51,51,51,51,51,51,51,51,30,0,0); // U + do Output.create(86,51,51,51,51,51,30,30,12,12,0,0); // V + do Output.create(87,51,51,51,51,51,63,63,63,18,0,0); // W + do Output.create(88,51,51,30,30,12,30,30,51,51,0,0); // X + do Output.create(89,51,51,51,51,30,12,12,12,30,0,0); // Y + do Output.create(90,63,51,49,24,12,6,35,51,63,0,0); // Z + + do Output.create(91,30,6,6,6,6,6,6,6,30,0,0); // [ + do Output.create(92,0,0,1,3,6,12,24,48,32,0,0); // \ + do Output.create(93,30,24,24,24,24,24,24,24,30,0,0); // ] + do Output.create(94,8,28,54,0,0,0,0,0,0,0,0); // ^ + do Output.create(95,0,0,0,0,0,0,0,0,0,63,0); // _ + do Output.create(96,6,12,24,0,0,0,0,0,0,0,0); // ` + + do Output.create(97,0,0,0,14,24,30,27,27,54,0,0); // a + do Output.create(98,3,3,3,15,27,51,51,51,30,0,0); // b + do Output.create(99,0,0,0,30,51,3,3,51,30,0,0); // c + do Output.create(100,48,48,48,60,54,51,51,51,30,0,0); // d + do Output.create(101,0,0,0,30,51,63,3,51,30,0,0); // e + do Output.create(102,28,54,38,6,15,6,6,6,15,0,0); // f + do Output.create(103,0,0,30,51,51,51,62,48,51,30,0); // g + do Output.create(104,3,3,3,27,55,51,51,51,51,0,0); // h + do Output.create(105,12,12,0,14,12,12,12,12,30,0,0); // i + do Output.create(106,48,48,0,56,48,48,48,48,51,30,0); // j + do Output.create(107,3,3,3,51,27,15,15,27,51,0,0); // k + do Output.create(108,14,12,12,12,12,12,12,12,30,0,0); // l + do Output.create(109,0,0,0,29,63,43,43,43,43,0,0); // m + do Output.create(110,0,0,0,29,51,51,51,51,51,0,0); // n + do Output.create(111,0,0,0,30,51,51,51,51,30,0,0); // o + do Output.create(112,0,0,0,30,51,51,51,31,3,3,0); // p + do Output.create(113,0,0,0,30,51,51,51,62,48,48,0); // q + do Output.create(114,0,0,0,29,55,51,3,3,7,0,0); // r + do Output.create(115,0,0,0,30,51,6,24,51,30,0,0); // s + do Output.create(116,4,6,6,15,6,6,6,54,28,0,0); // t + do Output.create(117,0,0,0,27,27,27,27,27,54,0,0); // u + do Output.create(118,0,0,0,51,51,51,51,30,12,0,0); // v + do Output.create(119,0,0,0,51,51,51,63,63,18,0,0); // w + do Output.create(120,0,0,0,51,30,12,12,30,51,0,0); // x + do Output.create(121,0,0,0,51,51,51,62,48,24,15,0); // y + do Output.create(122,0,0,0,63,27,12,6,51,63,0,0); // z + + do Output.create(123,56,12,12,12,7,12,12,12,56,0,0); // { + do Output.create(124,12,12,12,12,12,12,12,12,12,0,0); // | + do Output.create(125,7,12,12,12,56,12,12,12,7,0,0); // } + do Output.create(126,38,45,25,0,0,0,0,0,0,0,0); // ~ + + return; + } + + // Creates the character map array of the given character index, using the given values. + function void create(int index, int a, int b, int c, int d, int e, int f, int g, int h, int i, int j, int k) { + var Array map; + + let map = Array.new(11); + let charMaps[index] = map; + + let map[0] = a; + let map[1] = b; + let map[2] = c; + let map[3] = d; + let map[4] = e; + let map[5] = f; + let map[6] = g; + let map[7] = h; + let map[8] = i; + let map[9] = j; + let map[10] = k; + + return; + } + + // Returns the character map (array of size 11) of the given character. + // If the given character is invalid or non-printable, returns the + // character map of a black square. + function Array getMap(char c) { + if ((c < 32) | (c > 126)) { + let c = 0; + } + return charMaps[c]; + } + + /** Moves the cursor to the j-th column of the i-th row, + * and erases the character displayed there. */ + function void moveCursor(int i, int j) { + let currentRow = i; + let currentColumn = j; + do Output.printChar(32); + let currentRow = i; + let currentColumn = j; + return; + } + + /** Displays the given character at the cursor location, + * and advances the cursor one column forward. */ + function void printChar(char c) { + var Array m; + var int i, address, value, currentCharRow, higherByte; + + let m = Output.getMap(c); + let address = 16384 + (32 * currentRow * 11) + ((currentColumn * 8) / 16); + let higherByte = Output.modulo(currentColumn, 2); + + let i = 0; + while (i < 11) { + let value = Memory.peek(address); + let currentCharRow = m[i]; + if (higherByte = 1) { + let currentCharRow = currentCharRow * 256; // x << 8; + let value = currentCharRow | (value & 255); // 255 = 0x00ff + } else { + let value = (value & (-256)) | (currentCharRow); // -256 = 0xff00 + } + do Memory.poke(address, value); + let address = address + 32; + let i = i + 1; + } + + if (currentColumn = 63) { + if (currentRow = 22) { + let currentRow = 0; + let currentColumn = 0; + } else { + let currentColumn = 0; + let currentRow = currentRow + 1; + } + } else { + let currentColumn = currentColumn + 1; + } + return; + } + + /** displays the given string starting at the cursor location, + * and advances the cursor appropriately. */ + function void printString(String s) { + var int stringLength, i; + let stringLength = s.length(); + let i = 0; + while (i < stringLength) { + do Output.printChar(s.charAt(i)); + let i = i + 1; + } + return; + } + + /** Displays the given integer starting at the cursor location, + * and advances the cursor appropriately. */ + function void printInt(int i) { + var int digit, divisor; + var boolean firstDigitPrinted; + let divisor = 10000; + let firstDigitPrinted = false; + + if (i = 0) { + do Output.printChar(48 + 0); + return; + } + + if (i < 0) { + do Output.printChar(45); // 45 = '-' + let i = (~i) + 1; + } + + while (~(divisor = 0)) { + let digit = i / divisor; + + if (digit = 0) { + if (firstDigitPrinted) { + do Output.printChar(48 + 0); + } + } else { + do Output.printChar(48 + digit); + let firstDigitPrinted = true; + } + + let i = i - (digit * divisor); + let divisor = divisor / 10; + } + return; + } + + /** Advances the cursor to the beginning of the next line. */ + function void println() { + if (currentRow = 22) { + let currentRow = 0; + } else { + let currentRow = currentRow + 1; + } + let currentColumn = 0; + return; + } + + /** Moves the cursor one column back. */ + function void backSpace() { + var int newRow, newColumn; + + if (currentColumn = 0) { + if (currentRow = 0) { + let newRow = 22; + let newColumn = 63; + } else { + let newRow = currentRow - 1; + let newColumn = 63; + } + } else { + let newRow = currentRow; + let newColumn = currentColumn - 1; + } + do Output.moveCursor(newRow, newColumn); + return; + } +} diff --git a/projects/12/OutputTest/OutputTestOutput.gif b/projects/12/OutputTest/OutputTestOutput.gif new file mode 100644 index 0000000000000000000000000000000000000000..b8ec2c087f7817b026f37825cdd9870ebef4ee45 GIT binary patch literal 6184 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 x1) { + let xinc = 1; // going from left to right; + } else { + let xinc = -1; // going from right to left; + } + + if (y2 > y1) { + let yinc = 1; // going from top to bottom + } else { + let yinc = -1; // going from bottom to top + } + + // vertical line + if (dx = 0) { + while (~(y1 = y2)) { + do Screen.drawPixel(x1, y1); + let y1 = y1 + yinc; + } + return; + } + + // horizontal line + if (dy = 0) { + while (~(x1 = x2)) { + do Screen.drawPixel(x1, y1); + let x1 = x1 + xinc; + } + return; + } + + while (continue) { + do Screen.drawPixel(x1 + a, y1 + b); + if (diff < 0) { + let a = a + xinc; + let diff = diff + dy; + } else { + let b = b + yinc; + let diff = diff - dx; + } + + if ((x1 + a) = x2) { + if ((y1 + b) = y2) { + let continue = false; + } + } + } + + + return; + } + + /** Draws a filled rectangle whose top left corner is (x1, y1) + * and bottom right corner is (x2,y2), using the current color. */ + function void drawRectangle(int x1, int y1, int x2, int y2) { + var int yinc; + if (y2 > y1) { + let yinc = 1; + } else { + let yinc = -1; + } + + while (~(y1 = y2)) { + do Screen.drawLine(x1, y1, x2, y1); + let y1 = y1 + yinc; + } + return; + } + + /** Draws a filled circle of radius r<=181 around (x,y), using the current color. */ + function void drawCircle(int x, int y, int r) { + var int dy; + var int halfSegment; + let dy = -r; + + if (r > 181) { + return; + } + + while (dy < (r + 1)) { + let halfSegment = Math.sqrt((r * r) - (dy * dy)); + do Screen.drawLine(x - halfSegment, y + dy, x + halfSegment, y + dy); + let dy = dy + 1; + } + return; + } +} diff --git a/projects/12/ScreenTest/ScreenTestOutput.gif b/projects/12/ScreenTest/ScreenTestOutput.gif new file mode 100644 index 0000000000000000000000000000000000000000..f1742cc1c2e1d0b118d0e00313c12255902eaf8e GIT binary patch literal 4563 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 M5UY8lAPF$~4}^9c-v9sr literal 0 HcmV?d00001 diff --git a/projects/12/String.jack b/projects/12/String.jack new file mode 100644 index 0000000..228d71c --- /dev/null +++ b/projects/12/String.jack @@ -0,0 +1,64 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/12/String.jack + +/** + * Represents character strings. In addition for constructing and disposing + * strings, the class features methods for getting and setting individual + * characters of the string, for erasing the string's last character, + * for appending a character to the string's end, and more typical + * string-oriented operations. + */ +class String { + + /** constructs a new empty string with a maximum length of maxLength + * and initial length of 0. */ + constructor String new(int maxLength) { + } + + /** Disposes this string. */ + method void dispose() { + } + + /** Returns the current length of this string. */ + method int length() { + } + + /** Returns the character at the j-th location of this string. */ + method char charAt(int j) { + } + + /** Sets the character at the j-th location of this string to c. */ + method void setCharAt(int j, char c) { + } + + /** Appends c to this string's end and returns this string. */ + method String appendChar(char c) { + } + + /** Erases the last character from this string. */ + method void eraseLastChar() { + } + + /** Returns the integer value of this string, + * until a non-digit character is detected. */ + method int intValue() { + } + + /** Sets this string to hold a representation of the given value. */ + method void setInt(int val) { + } + + /** Returns the new line character. */ + function char newLine() { + } + + /** Returns the backspace character. */ + function char backSpace() { + } + + /** Returns the double quote (") character. */ + function char doubleQuote() { + } +} diff --git a/projects/12/StringTest/Main.jack b/projects/12/StringTest/Main.jack new file mode 100644 index 0000000..2848548 --- /dev/null +++ b/projects/12/StringTest/Main.jack @@ -0,0 +1,83 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/12/StringTest/Main.jack + +/** Test program for the OS String class. */ +class Main { + + /** Performs various string manipulations and displays their results. */ + function void main() { + var String s; + var String i; + + let s = String.new(0); // a zero-capacity string should be supported + do s.dispose(); + + let s = String.new(6); // capacity 6, make sure that length 5 is displayed + let s = s.appendChar(97); + let s = s.appendChar(98); + let s = s.appendChar(99); + let s = s.appendChar(100); + let s = s.appendChar(101); + do Output.printString("new,appendChar: "); + do Output.printString(s); // new, appendChar: abcde + do Output.println(); + + let i = String.new(6); + do i.setInt(12345); + do Output.printString("setInt: "); + do Output.printString(i); // setInt: 12345 + do Output.println(); + + do i.setInt(-32767); + do Output.printString("setInt: "); + do Output.printString(i); // setInt: -32767 + do Output.println(); + + do Output.printString("length: "); + do Output.printInt(s.length()); // length: 5 + do Output.println(); + + do Output.printString("charAt[2]: "); + do Output.printInt(s.charAt(2)); // charAt[2]: 99 + do Output.println(); + + do s.setCharAt(2, 45); + do Output.printString("setCharAt(2,'-'): "); + do Output.printString(s); // setCharAt(2,'-'): ab-de + do Output.println(); + + do s.eraseLastChar(); + do Output.printString("eraseLastChar: "); + do Output.printString(s); // eraseLastChar: ab-d + do Output.println(); + + let s = "456"; + do Output.printString("intValue: "); + do Output.printInt(s.intValue()); // intValue: 456 + do Output.println(); + + let s = "-32123"; + do Output.printString("intValue: "); + do Output.printInt(s.intValue()); // intValue: -32123 + do Output.println(); + + do Output.printString("backSpace: "); + do Output.printInt(String.backSpace()); // backSpace: 129 + do Output.println(); + + do Output.printString("doubleQuote: "); + do Output.printInt(String.doubleQuote());// doubleQuote: 34 + do Output.println(); + + do Output.printString("newLine: "); + do Output.printInt(String.newLine()); // newLine: 128 + do Output.println(); + + do i.dispose(); + do s.dispose(); + + return; + } +} diff --git a/projects/12/StringTest/String.jack b/projects/12/StringTest/String.jack new file mode 100644 index 0000000..f1f6a93 --- /dev/null +++ b/projects/12/StringTest/String.jack @@ -0,0 +1,203 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/12/String.jack + +/** + * Represents character strings. In addition for constructing and disposing + * strings, the class features methods for getting and setting individual + * characters of the string, for erasing the string's last character, + * for appending a character to the string's end, and more typical + * string-oriented operations. + */ +class String { + + field int maxLength; + field int length; + field Array s; + + /** constructs a new empty string with a maximum length of maxLength + * and initial length of 0. */ + constructor String new(int maxStringLength) { + let maxLength = maxStringLength; + let length = 0; + // Only allocate memory for positive length. + if (maxLength > 0) { + let s = Array.new(maxLength); + } else { + let s = 0; + } + return this; + } + + /** Disposes this string. */ + method void dispose() { + // Only deAlloc for positive length. We do not alloc memory in constructor + // if length is not positive. + if (~(s = 0)) { + do s.dispose(); + } + return; + } + + /** Returns the current length of this string. */ + method int length() { + return length; + } + + /** Sets all fields to null and resets length. */ + method void clear() { + var int i; + let i = 0; + + while (i < maxLength) { + let s[i] = 0; + let i = i + 1; + } + let length = 0; + return; + } + + /** Returns the character at the j-th location of this string. */ + method char charAt(int j) { + if (j < maxLength) { + return s[j]; + } + return 0; // Out-of-bounds access. Consider raising an error. + } + + /** Sets the character at the j-th location of this string to c. */ + method void setCharAt(int j, char c) { + if (j < maxLength) { + let s[j] = c; + } else { + // Out-of-bounds access. Consider raising an error. + } + return; + } + + /** Appends c to this string's end and returns this string. */ + method String appendChar(char c) { + if (length < maxLength) { + let s[length] = c; + let length = length + 1; + } + return this; + } + + /** Erases the last character from this string. */ + method void eraseLastChar() { + if (length > 0) { + let length = length - 1; + let s[length] = 0; + } + return; + } + + /** Returns the integer value of this string, + * until a non-digit character is detected. */ + method int intValue() { + var int i, result, multiplier; + var boolean isNegative, continue; + var char c; + let i = 0; + let isNegative = false; + + if (charAt(0) = 45) { + let isNegative = true; + let i = i + 1; + } + + // First iterate up to the highest numerical character. + let continue = true; + while (continue) { + let c = charAt(i); + if ((c > 47) & (c < 58)) { + let i = i + 1; + } else { + let continue = false; + } + if (~(i < maxLength)) { + let continue = false; + } + } + + // Then iterate backwards and add the values to result. + // Checking if we are within the range allows us to not + // worry about a potential negative sign. + let continue = true; + let multiplier = 1; + let i = i - 1; + while (continue) { + let c = charAt(i); + if ((c > 47) & (c < 58)) { + let result = result + ((c - 48) * multiplier); + let multiplier = multiplier * 10; + } else { + let continue = false; + } + + if (i = 0) { + let continue = false; + } + let i = i - 1; + } + + if (isNegative) { + let result = -result; + } + + return result; + } + + /** Sets this string to hold a representation of the given value. */ + method void setInt(int val) { + var int digit, divisor; + var boolean firstDigitPrinted; + let divisor = 10000; + let firstDigitPrinted = false; + do clear(); + + if (val = 0) { + do appendChar(48); // 0 + return; + } + + if (val < 0) { + do appendChar(45); // 45 = '-' + let val = (~val) + 1; + } + + while (~(divisor = 0)) { + let digit = val / divisor; + + if (digit = 0) { + if (firstDigitPrinted) { + do appendChar(48 + 0); + } + } else { + do appendChar(48 + digit); + let firstDigitPrinted = true; + } + + let val = val - (digit * divisor); + let divisor = divisor / 10; + } + return; + } + + /** Returns the new line character. */ + function char newLine() { + return 128; + } + + /** Returns the backspace character. */ + function char backSpace() { + return 129; + } + + /** Returns the double quote (") character. */ + function char doubleQuote() { + return 34; + } +} diff --git a/projects/12/StringTest/StringTestOutput.gif b/projects/12/StringTest/StringTestOutput.gif new file mode 100644 index 0000000000000000000000000000000000000000..5c2932c07fc2fd63f3e73b9cb6ece86b71ccd4b3 GIT binary patch literal 8126 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≻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 YHZvr3!QZP7Z3t&zmuh42C}9160Cv8dQ~&?~ literal 0 HcmV?d00001 diff --git a/projects/12/Sys.jack b/projects/12/Sys.jack new file mode 100644 index 0000000..bee6f67 --- /dev/null +++ b/projects/12/Sys.jack @@ -0,0 +1,27 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/12/Sys.jack + +/** + * A library that supports various program execution services. + */ +class Sys { + + /** Performs all the initializations required by the OS. */ + function void init() { + } + + /** Halts the program execution. */ + function void halt() { + } + + /** Waits approximately duration milliseconds and returns. */ + function void wait(int duration) { + } + + /** Displays the given error code in the form "ERR", + * and halts the program's execution. */ + function void error(int errorCode) { + } +} diff --git a/projects/12/SysTest/Main.jack b/projects/12/SysTest/Main.jack new file mode 100644 index 0000000..a153b25 --- /dev/null +++ b/projects/12/SysTest/Main.jack @@ -0,0 +1,31 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/12/SysTest/Main.jack + +/** Test program for the OS Sys class. */ +class Main { + + /** Tests the wait method of the Sys class. */ + function void main() { + var char key; + + do Output.printString("Wait test:"); + do Output.println(); + do Output.printString("Press any key. After 2 seconds, another message will be printed:"); + + while (key = 0) { + let key = Keyboard.keyPressed(); + } + while (~(key = 0)) { + let key = Keyboard.keyPressed(); + } + + do Sys.wait(2000); + + do Output.println(); + do Output.printString("Time is up. Make sure that 2 seconds elapsed."); + + return; + } +} diff --git a/projects/12/SysTest/Sys.jack b/projects/12/SysTest/Sys.jack new file mode 100644 index 0000000..7120e78 --- /dev/null +++ b/projects/12/SysTest/Sys.jack @@ -0,0 +1,52 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/12/Sys.jack + +/** + * A library that supports various program execution services. + */ +class Sys { + + /** Performs all the initializations required by the OS. */ + function void init() { + do Math.init(); + do Memory.init(); + do Screen.init(); + do Keyboard.init(); + do Output.init(); + do Main.main(); + do Sys.halt(); + return; + } + + /** Halts the program execution. */ + function void halt() { + while (true) {} + return; + } + + /** Waits approximately duration milliseconds and returns. */ + function void wait(int duration) { + var int i, j; + let i = 0; + while (i < duration) { + let i = i + 1; + let j = 0; + while (j < 50) { + let j = j + 1; + } + } + return; + } + + /** Displays the given error code in the form "ERR", + * and halts the program's execution. */ + function void error(int errorCode) { + do Output.printString("ERR<"); + do Output.printInt(errorCode); + do Output.printString(">"); + do Sys.halt(); + return; + } +} diff --git a/projects/13/more fun to go.txt b/projects/13/more fun to go.txt new file mode 100644 index 0000000..a7f066e --- /dev/null +++ b/projects/13/more fun to go.txt @@ -0,0 +1,9 @@ +See Chapter 13. It's your call! + +And, if you develop something cool, please let us know about it. + +We hope that you enjoyed the course! + +-- Noam and Shimon + +www.nand2tetris.org \ No newline at end of file diff --git a/projects/demo/Xor.cmp b/projects/demo/Xor.cmp new file mode 100644 index 0000000..a1e07b2 --- /dev/null +++ b/projects/demo/Xor.cmp @@ -0,0 +1,5 @@ +| a | b | out | +| 0 | 0 | 0 | +| 0 | 1 | 1 | +| 1 | 0 | 1 | +| 1 | 1 | 0 | diff --git a/projects/demo/Xor.hdl b/projects/demo/Xor.hdl new file mode 100644 index 0000000..db49351 --- /dev/null +++ b/projects/demo/Xor.hdl @@ -0,0 +1,25 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/demo/Xor.hdl + +/** + * Exclusive-or gate: true if either a is true and b is false, or + * a is false and b is true; false otherwise. + * QUESTION: how can the simulator execute this program properly without + * HDL implementations of the underlying Not, And, and Or chip-parts? + * Answer: since the demo folder contains no Not.hdl, And.hdl and Or.hdl + * files, the simulator reverts to using their built-in implementations. + */ + +CHIP Xor { + IN a, b; + OUT out; + + PARTS: + Not (in=a, out=nota); + Not (in=b, out=notb); + And (a=a, b=notb, out=x); + And (a=nota, b=b, out=y); + Or (a=x, b=y, out=out); +} \ No newline at end of file diff --git a/projects/demo/Xor.out b/projects/demo/Xor.out new file mode 100644 index 0000000..e69de29 diff --git a/projects/demo/Xor.tst b/projects/demo/Xor.tst new file mode 100644 index 0000000..658cbe5 --- /dev/null +++ b/projects/demo/Xor.tst @@ -0,0 +1,29 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/01/Xor.tst + +load Xor.hdl, +output-file Xor.out, +compare-to Xor.cmp, +output-list a%B3.1.3 b%B3.1.3 out%B3.1.3; + +set a 0, +set b 0, +eval, +output; + +set a 0, +set b 1, +eval, +output; + +set a 1, +set b 0, +eval, +output; + +set a 1, +set b 1, +eval, +output; diff --git a/tools/.DS_Store b/tools/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..80fb89e80175bdd44cbf20268dcbbe421ae8eaf2 GIT binary patch literal 8196 zcmeHMTWl3Y7@qI6gpL-UNb#>gk>8Vb9r>u5Neh**z`V zRFC>*1dZ{QXf$|1gGOIeP~XH03HsKUK;k9Qca8d>zUV(YdrG19%`_zJBs2d%|7B+K z?YBE;<}k+4oj0~HR>v4qs0zu;srip0{Gu)?vCvXV5|q!psf_JrsP|W9YDsith!BVn zh!BVnh!BVnxEv6mJzErInSEb+qc%byLg0!-Kztt(RE122vLI#f>7XV!0+19(fS{1h zg+ekB%48@DQj&)XWGYFSitva5nNIdZ7?%uXK}wm<5FS1d&W!Mcf?#$UKM{m8B&Cen z2!RNJr3i@Er-Wsg#hlE{;`6(0d45~lImAjz%T}#c)HUVh+E|JnaefgT zTKuZ+p5EF%EzPUM^7c>pmg{&!X3is-<`o{{v?uF2;queGGOOF!ysi6Ymu;u4hfHrc z>)QEA#}m=noNL?tu4jp1Mn`<}urFekxJJf2H|O^Ri6a(`FQa(gGw(8KaBJG^r71iP zRXI^n*L2PGH?(zZ-!acCtE#mct#)`?U}&3zGXmaG-OHMeVL6A!2z1A{?zPOE%Fn0+ zjy`G1r22TH%0E=b4H|ZzYlsjd@Wkum2}L;|>^(V?T4~mrhQFLP#Qb6o0Uqmsv}uAp{ zkV~>BU{#Sd0dFs+>iYVI#`x7*Vmamy5-H8Y0n7O6`5>AYtnf1mS7diXyhWimfX9Na zwkf_@@SB%NZ@^na=Kj1^qxrP6z=wnMO*uae$oty@(&lbsFma`k^<=vm_DPsGkY z*x&3QtcHg5xE3vF!*(Rm6*96PcOr!WVr7~bnL!pN9JqJ@Irx|(W)|>hz|13f3Qyx1 zyo8tW3SPxAoWMJH7w_RDP7zx_!&%JZJITofrtU3rR7!k*fvMA}oMXGrA+i*CeQ|Kq zTX6(R(#}*HS?NhOn>vo4YdS6{JVuh4_H}E~~35Kx`rghkY zeNTkGu`FR*Jq}y`azOhDH3sRh$E@f@s_`hxjC6I?4;z;MOn-lU&?qj2+uTfoDH9eXX z;u(mzh)K(ElCNCuzS}wJRqDXq>55C!I?!#iGpJWfy6TZLKX;W|)^agUrR%~lfiyix z`P~4M4}$*pXg5rjk?k!uz|JI&evD$Q1KUuLAYZk3p7@4=@3^7${6OLq%f<7rFtpyE z=sQKC(nNBrfqt?o*_*3Pq_$?JwOiVNHrT+>$5W)67~X0^BY33PGuy!J%`+m&5Y;%5 G(DxT!i!EgU literal 0 HcmV?d00001 diff --git a/tools/bin/classes/HackAssemblerMain.class b/tools/bin/classes/HackAssemblerMain.class new file mode 100644 index 0000000000000000000000000000000000000000..b9123917e497a7915222bd03a2ac91be5fdda503 GIT binary patch literal 1098 zcmah|TTc@~7(LTgwk#`1xvD5dM7FK&D&DxM)C$_9^^yt(i4WT{l!d)C-9_NdKVss8 zNuTk7f+YL^f0Xf?t)Vm!ornE)X3lpzXTD#*e;xzSF)yPZL+!YR>ro8Lh+{;i%?$~o zVc-j7wBe?NF&XW+6~(v=6$uGR2`L$!7>eR{2ktlql+pOuB{!@mq znpk3pWZYFw#x_icpo-7=iAUhu1?Q=UmIDHy<@ga-;9;t|8xqGy!(bX*|g zuZ+@W+Vi+ww0JeXq8XkYcMO|q7u#9rfRi{WvprRx9VUr{#{Cvlxd=WJ(-o)TJsBGb*xRT4<&vQ@c&(NzT&W58T zqLCdvkV9Y0<_(9?RCK4u{ZmR1*Z+DFL_ZNgE&;_0ro~^=t7;qtq&ANx)!cs~&14H_ zD@`n61bsAWVuirOBd70W+I5ptq;Yc0PTn+DX1WN5gCRh!bSjPdB8X~zPbS~G?l}p7g9ilsg sR4jIgo)AQU6uGlHdh<2JPPvOLdz5|<<496jlQau+xQH~?VA7t}A4Y!~qW}N^ literal 0 HcmV?d00001 diff --git a/tools/bin/classes/HardwareSimulatorMain.class b/tools/bin/classes/HardwareSimulatorMain.class new file mode 100644 index 0000000000000000000000000000000000000000..5786077f36cc03c74fdac38e8e31074e7b9ac3c2 GIT binary patch literal 1182 zcma)5+fEZv6kP`jGmI5suqcXHyq1D93V5T$gb)ytq9&veLVP$(4=^yd%$!>M6%*e~ zc*X~7Y{CclQO12*q>z%xJj|Z6Z)?pyYybZ9>llEISp$O@?!g_5=(uYji%}i-4BW>9 z4G%RuGN5Bv!(#)6vN;`NI`TTk4Wu!l;fV&zfQexP{jfDW)$oj=d)5tH`G%o0H@3!* znh(o@jL+SGVKBE@+~c3P?eSp8UX`&M>=ee<(zt<}8Ya`2!Zd?jO8AbL$*Rok5|7JO z9*b4iuXtRB@d|ayZYECbMlu_4UwqW?JdGE4$uQ}JzLiu0OO;wlmD*d8$G0u|Du>m? zT5sB781Byn=M*>7*#?wN}s&vkf{)zFq3*v%Ovc3EumiYJ%WEqOpRGAgz!yvW|IHYRE9 zO5Z#0pW6y6vf)>=pJ5nj(3lVZF(iCvzjdTJT$ZP5SRk~vNvVrt=xa^+{nnmvi0~QL z>gPlXpTr~Ln0hqD;)eDIQi>$K2<}tw=1rYZWLJ-CJ2Ct(*FQsgV;k5k{!`yCx-=MSU~v6w&p0^98R ziS9$BigoB4HS~}*$X;2gBfT*(ZeBHe&1*IEy*osvj{c20ObQR=J11+nzJ5d?g9J4~ HAoTnNgNs@cU24{qaY{t1+gp&<$EgL#FFswzJd>g z_?m+2D)RVH!LouC1s^H+SeOh%K77=`S%v zlBqikQr@X?+FFKbGmIxUikrqmBWoFUBU|=e({3yXGtK2K=OHh*jVkvTrjy5*9TjPq z#*B=zhFiGJaPhWhG`QYTRXrA1GGHO(+zh2{(-mhOq;6p|reJ9{@>lXPrrI{-dlkaf$n zxtEer)ldVqdNQoq^c-8S8>ZE9xo+Blna;p+3};qM*Yp3!FR2S9ox85%>fbg++g$1b z@f6s58tRx~NaUT4RntWoRm<^ssHB_+f^)mZYr5B|5~W_fV_Dl88fa=Tv8mx}SQ=Wm ztHH*7YRVvA3?u(Guk>J(SN%hx^0w#m7L6FCNx6iBLAbF61Y?nCB-d5sxuVz0(9cbtjDUTzDeTM^$I&d80-*gO%ZqcCv!!|CYXwIVnWpq_7Za4g9a8(O* ztTqkzTCegv!;r`Qd`}cj7V@GSLRRddB)YyWoTX>vJiSUl1axsRLu-;wqqH;HqqBQp zPlO&rNMSZqvmfbQkpb42eI9*`Q%`Xs9_d0l@eEN`WUKp#RrVoQW+RvOpzL9&xQlaZ zWVMgs${w`%OI@5KC9PeY>H+&8sRvp;4kR50MdqXFE=DSAFYtZl8AjLU=#-Ntq~DNw ziuggiF^ZIkc5ynMI23ai%M%j8a#ChO>SFv6t_+}F?xSAmqez{hglQ9ipyHh<+x`1H z5%>kB2jCNZ_$h;)lKt#S)Oh^>#^`CJeouKUX5&b6&?MRgV ipHm6xF;1qZLPZy6cOop%{E?;%-XIw9bnX{12*5w$grw>K literal 0 HcmV?d00001 diff --git a/tools/bin/classes/VMEmulatorMain.class b/tools/bin/classes/VMEmulatorMain.class new file mode 100644 index 0000000000000000000000000000000000000000..aa6b7ff524757fcdab43088e9e2a8d7d48d801c9 GIT binary patch literal 1073 zcmZ`&TTc@~6#fPZyR5asVo@$)QPH;Gt|HzjF(C~oNvkBJC4~5}v;!>cExS{|zv8nA z&-h@CP51%+DC3zH-6A*-duGlzXTI-T_UEr3X8=qrY8b)90PbK?#a#^w@=S7k^P z{W>S(TDHe9lHDrpTZfkESl+I=E<)SeE##_6+`?@Ib4fhIJVUM$S-X58BX4GkYn5fU z;aI{C%k)NOE2@QdATpli@{bChC-DL=8RlxfYeWstkU>UtL=PK*W9=BUtNTZhvC*+5 z-#=LL>MNW(3SK4gS_TitnwF1iJP@`|VyD*abK>Z2W!0>f|L7?CZs2>|6Aa_;tlEJ@ zi@qm9-*I@@g-%PfE3j+36a?QthC58ZZM zj6LBx7yV1yenYhVvXTo7lWpQylPS;fkzwrr%H$IThE$xdtUJSCT%-@%`@BZlx?Jm@ zBEeniIuAn<*XgqDn`_i!L5=2?OOJL6ebLRJ1oDzY9O>*;<3WDOeQdVdYF1XumPZ3Z zJgJC_u8uMsWlR629;Z!xDsAWoHvPTa3{AFgTt_s5x()1U~ z)dME~0{V{9X^1Q%+m~;Gok|=77{mBEY(qhUe3krJ;tNt=(WCc%L*fK0`LoY3^}g@u zKS83@g1Xtn09lRfwQ>u|&Dk0Kx}MT+G%@)81nCxrHe1jM9?tj9HF0y}lt@O1YLZB3 F{RSOjDkA^@ literal 0 HcmV?d00001 diff --git a/tools/bin/help/asmAbout.html b/tools/bin/help/asmAbout.html new file mode 100644 index 0000000..919e539 --- /dev/null +++ b/tools/bin/help/asmAbout.html @@ -0,0 +1,96 @@ + + + + + + + + +About Assembler + + + + + + + +

+ +

Assembler, Version 2.5

+ +

 

+ +

This program is +part of www.nand2tetris.org

+ +

and +the book "The Elements of Computing Systems"

+ +

by +Nisan and Schocken, MIT Press.

+ +

 

+ +

Software Architects: Yaron Ukrainitz and Yannai A. Gonczarowski

+ +

 

+ +
+ + + + diff --git a/tools/bin/help/asmUsage.html b/tools/bin/help/asmUsage.html new file mode 100644 index 0000000..1e18db2 --- /dev/null +++ b/tools/bin/help/asmUsage.html @@ -0,0 +1,115 @@ + + + + + + + + +Usage instruction and tips can be found in: + + + + + + + +
+ +

Usage instruction and tips can be found in:

+ +

 

+ +

The Assembler Tutorial

+ +

 

+ +

Available in www.nand2tetris.org

+ +

 

+ +

And in relevant book chapters from

+ +

The Elements of Computing Systems,

+ +

by Noam Nisan and Shimon Schocken

+ +

MIT Press

+ +

 

+ +
+ + + + diff --git a/tools/bin/help/compiler.txt b/tools/bin/help/compiler.txt new file mode 100644 index 0000000..07bbba9 --- /dev/null +++ b/tools/bin/help/compiler.txt @@ -0,0 +1,9 @@ +Jack Compiler, Version 2.5 + +This program is part of www.nand2tetris.org +and the book "The Elements of Computing Systems" +by Nisan and Schocken, MIT Press. + +Software Architects: Yaron Ukrainitz and Yannai A. Gonczarowski + +Usage instruction and tips can be found in the relevant book chapters. diff --git a/tools/bin/help/cpuAbout.html b/tools/bin/help/cpuAbout.html new file mode 100644 index 0000000..f806d5e --- /dev/null +++ b/tools/bin/help/cpuAbout.html @@ -0,0 +1,96 @@ + + + + + + + + +About CPU Emulator + + + + + + + +
+ +

CPU Emulator, Version 2.5

+ +

 

+ +

This program is +part of www.nand2tetris.org

+ +

and +the book "The Elements of Computing Systems"

+ +

by +Nisan and Schocken, MIT Press.

+ +

 

+ +

Software Architects: Yaron Ukrainitz and Yannai A. Gonczarowski

+ +

 

+ +
+ + + + diff --git a/tools/bin/help/cpuUsage.html b/tools/bin/help/cpuUsage.html new file mode 100644 index 0000000..7e69482 --- /dev/null +++ b/tools/bin/help/cpuUsage.html @@ -0,0 +1,115 @@ + + + + + + + + +Usage instruction and tips can be found in: + + + + + + + +
+ +

Usage instruction and tips can be found in:

+ +

 

+ +

The CPU Emulator Tutorial

+ +

 

+ +

Available in www.nand2tetris.org

+ +

 

+ +

And in relevant book chapters from

+ +

The Elements of Computing Systems,

+ +

by Noam Nisan and Shimon Schocken

+ +

MIT Press

+ +

 

+ +
+ + + + diff --git a/tools/bin/help/hwAbout.html b/tools/bin/help/hwAbout.html new file mode 100644 index 0000000..67ad89b --- /dev/null +++ b/tools/bin/help/hwAbout.html @@ -0,0 +1,96 @@ + + + + + + + + +About Hardware Simulator + + + + + + + +
+ +

Hardware Simulator, Version 2.5

+ +

 

+ +

This program is +part of www.nand2tetris.org

+ +

and +the book "The Elements of Computing Systems"

+ +

by +Nisan and Schocken, MIT Press.

+ +

 

+ +

Software Architects: Yaron Ukrainitz and Yannai A. Gonczarowski

+ +

 

+ +
+ + + + diff --git a/tools/bin/help/hwUsage.html b/tools/bin/help/hwUsage.html new file mode 100644 index 0000000..4663f53 --- /dev/null +++ b/tools/bin/help/hwUsage.html @@ -0,0 +1,115 @@ + + + + + + + + +Usage instruction and tips can be found in: + + + + + + + +
+ +

Usage instruction and tips can be found in:

+ +

 

+ +

The Hardware Simulator Tutorial

+ +

 

+ +

Available in www.nand2tetris.org

+ +

 

+ +

And in relevant book chapters from

+ +

The Elements of Computing Systems,

+ +

by Noam Nisan and Shimon Schocken

+ +

MIT Press

+ +

 

+ +
+ + + + diff --git a/tools/bin/help/vmAbout.html b/tools/bin/help/vmAbout.html new file mode 100644 index 0000000..c5b296a --- /dev/null +++ b/tools/bin/help/vmAbout.html @@ -0,0 +1,110 @@ + + + + + + + + +About Virtual Machine Emulator + + + + + + + +
+ +

Virtual Machine Emulator, Version 2.5

+ +

 

+ +

This program is +part of www.nand2tetris.org

+ +

and +the book "The Elements of Computing Systems"

+ +

by +Nisan and Schocken, MIT Press.

+ +

 

+ +

Software Architects: Yaron Ukrainitz and Yannai A. +Gonczarowski

+ +

 

+ +
+ + + + diff --git a/tools/bin/help/vmUsage.html b/tools/bin/help/vmUsage.html new file mode 100644 index 0000000..611662b --- /dev/null +++ b/tools/bin/help/vmUsage.html @@ -0,0 +1,115 @@ + + + + + + + + +Usage instruction and tips can be found in: + + + + + + + +
+ +

Usage instruction and tips can be found in:

+ +

 

+ +

The VM Emulator Tutorial

+ +

 

+ +

Available in www.nand2tetris.org

+ +

 

+ +

And in relevant book chapters from

+ +

The Elements of Computing Systems,

+ +

by Noam Nisan and Shimon Schocken

+ +

MIT Press

+ +

 

+ +
+ + + + diff --git a/tools/bin/images/arrow2.gif b/tools/bin/images/arrow2.gif new file mode 100644 index 0000000000000000000000000000000000000000..c744eabbbb92a178b85e66ff3666976727741cfb GIT binary patch literal 1073 zcma)5dn}b<7=K)Lz7wmpuwqf1)8@!+xpb0T!a45DNvv?Rsn%`9@KQ@H6{+-(6>>|X zhKX#^NXMVq^1F=N~p*eLf1Ilq83>2)9_<|e6fDeR02!!J}gAq9b zWFUn|^kPs$z#Bb3jK$z70)Jr;1@;&V0EwoH5;@Wt<{?M_n}4oKWn+HubH?lEvNqp;ID%Yf2V(4 zSz9LG$R?({?ny`1RzYBqe|>q^-5pM6hq~*ZzJIXW=d!WzrSPz~Fr>;jJ83*HPZXPT z(^NJgEp)k%)L9@qEh#y4^_ad*vY@ZbZ;ypv;o@jSWr(TAEi;$VBUO=`)C-b<6{$3 zspQ*8YjZ~J-l2UnV+D5vjc!-c=UaM82XlLh_NPp}ei7AMyC&@U`K2vr%XZI_mgNQ2 N$7*?RT!I%I`~#3cMa2LB literal 0 HcmV?d00001 diff --git a/tools/bin/images/calculator2.gif b/tools/bin/images/calculator2.gif new file mode 100644 index 0000000000000000000000000000000000000000..834cb05e10bbfe36cff407fda164f2a0ceafb6b9 GIT binary patch literal 302 zcmZ?wbhEHbRA5kG*vtR|4Pe{=rW$~}1`s%K;J|;N_+{(pa>>4D^V8MBy@JNFdm9FG32;J)ttpXl^;%?}?a zNOgN0e%sC|HR1RQq2o;V1Xiu-%$i-9dZzpJM#br75nC*C3LC9BD%xWur@wC~sf*3M zcTc9UvA8xVJU+fe#L=d=w>7uD!?;VhEPY0reod?;!@LC<7SdCN@)`=7=1(X!Pg`Fx zd&!z^?)`>mKww>8ww^>PP o;;I$;EmF_d_Pw&6|3XyyV#9-X;-9}g|NdF|x6n^vK?VkE0M?p{i2wiq literal 0 HcmV?d00001 diff --git a/tools/bin/images/cancel.gif b/tools/bin/images/cancel.gif new file mode 100644 index 0000000000000000000000000000000000000000..a8509fac8f841102ed55b4b43d0d5f43a1dae656 GIT binary patch literal 1133 zcmZ?wbhEHbRA5kG_|5G|I?<^Pm9|K}|IzjW>YwQK)x-THs; z-v7sr{Xci^|FvuXuig7U3PwYK&LQyo!-54%8X6k@1Jn6`hW}s+NCR0wp!k!8k%8eC zgAPyaMTGv^7%K~)bvxuRDkngRz}xw%Ago@8upZs+%yTvxD@;jsS# zkBY!Gzr;Bfr@hMix*e9hZm zqIu4O$}SxYfm@x~`KoR*ef>S@NX%||r>q;drhYswSTa%SnZeApPn#Lo#HacEEIzq< zw)Jeb-d_gKF9|HqD%)H7_WV`bVyUHfXTHy3Xm9rRoAYpa>pscIt~*=}t1r(`zaO+^ zN8+cHy_rAjraEj%d3$b^viG*Ro|DxXc(N}q-@emUwS}EOC+>j5{<^jeYCGK8R8No8CazvE`^KEU~6dX@f4YDClRJkd-ehCkAx%Wvtqa4>-L@bH6*7=3 zLi;edk+@w3N~}(%-Z0lAv*xZ_X*-*2mUZHe59_WEwzR_yY7857O!Il$H8aN-bA7;9lM2EP?v1dayL1fvFvz`bN^VG%JOtsWu{G=U~# zEi5AIBkdvOATAI!YOsiE6}}J8gX2I57{N?ga?YkQS=3oru~j2XabB`yGjB4ZQ)o=0 zMwp_Kls0XXrcPa>R)d9ksuE?Mc7~>)o}|`sFBZyFbCim9k!FFqyDIGeSYVB?8Z1;Q zmBq!y+1c5dnVHGS$&rx}*L8EbTsE5>7#K*W)BXMZsZ=VFNW|muwzjrtG#U( z8X9=FJT&yBWm$n6FnDgIf)2JIPuy8|AMg*J32uWQ5d!L}xKqDTA0C?cuLSLNDEDj#Z9c{P4FPW6tB z*5wzb6ED2AeyZj4SJNM$I(4LU>x*CB+quxvHM^m`@caPZc`t1@}2}(fvaBUU%R>v$))Mx?ko4dxx?ApIX3wFjqhLI_V%w+hyUHw zH?_O5l-zi2S3`Yvf9yy&`Q2&rnCQ8DrhV{{lU{HBHF;qoy!n%Nd#}o#%g%3qzq530 zypP4c(FjiPqs{zbySM%N&+K}t@7VF%H`N2*zHwcgSzdZ}bVK9wPv;Iz|1ofW@bSI! N+}-7JmRQ*ef(~%&rPETQ%tyB%+5?N z4m#hv^^h&^c)+MVlL@9f;x zy7=u|>uou0v!wr*&6O&?^l(poz+%34A;sCRb{JllS!-MN_xpgVWw7~bEVf7`FU z^2eTp?HsnHVo`4;O=dVV&ovc|u)W!m;F05~`Y?o7DdIr5V`FHre}(1~g(ePNlK=+> G25SIPD1)2; literal 0 HcmV?d00001 diff --git a/tools/bin/images/equal.gif b/tools/bin/images/equal.gif new file mode 100644 index 0000000000000000000000000000000000000000..340255668f139b7614061fe5781fcdfdaca87857 GIT binary patch literal 1042 zcma)5YeU8F1C|W<3TJ|TA%0l1SkCH5ulJ#RF zM_At4G8LT8)&g^@73svw4>Kw;L&B+vnSnEvI`6)3RR22TaNcuy&-1+Jd`p!|#79nN zffQB&exU#-5;y*EObD=}KpCFPTg$A#nTZK^5C8^DL5$OHz<8~I0hwI@kM6G%8Rluf zBJ`(>8^pey0SjNtwRQtpe+alIK$SZNqUpUd9npUmfH+V~XwIQzVET&yG#Lg`v?2g? z*;`^y9e4IUi}kkaT4GmdNo=K-(EAiC1$$X|ZVF$<>5m07AjTXZ(2qHe9~;5(^PCqz zfAcsR?z!Wl_2#DW}>AR974hU3gY z_Wy1*&VN41VXP0T@NN1=fo`-{~uv{O%S3TOH`siX? zgVYdey(hjrKN)Th9c@e~|G6c-w{56dqH<4Z?>(2L%WAdVhoXu{*C%t8hcGb1r2lNK_1!zs;U}8W zD1*#(QEMerw$lB@S34>V@|zE0s(pql56z8wWeXQO{SPios0yvd(ksS=560q|k<7Tm e7c}YvOjoDLv^+DQiYy%Id$uw=*1F4wg}C3-12(4s literal 0 HcmV?d00001 diff --git a/tools/bin/images/find.gif b/tools/bin/images/find.gif new file mode 100644 index 0000000000000000000000000000000000000000..e3f4c9d8ebefe041d8c3cfd9ca05aa096e551f24 GIT binary patch literal 1014 zcmZwGO=uKJ7zW_iAKZvADhY%HJ!q(?s~|HT6!W8z-L+>FY}8~BMRWuY+eK~QiuAR@xN+moA_e23yID5!dP zzuFo9Wy|KHRj9%jl!_$MNTfGt>mVVOm)l z8ETRuNwfxt`)G0yl@K~=s0#GPX(<{*)N&Lq;RdjMm=01B2^}#i(jzU>AT?63h+=@i zhws3VkUI3aShNwC@KbOSkTK|Uu^30t1V0K#K-NGnV-c7wn~O!n12p-FIuH^y`dlo+ z4q*C7IY>yv^fDGvEFuWt`*0jc2|YYh@HlQ!8647>E2UKynBs)TVT)OV8I4jfiL$^H zl}FE_Wzf*535qfnCa8w#Wocz-NNP!n*4Zo+sK)6jT0=B))ZCfCzGsEwH(OT5!u0g? z)YR1I=x9El9~>O)>+5q}x4XOBw(ZW&PSZ5o+uKvAR9jnHB9UlrZjQxb_4W0&wY8B* zgx?B1JvY+nbeIhoUNS6t~>PbuT?lX zZ&|-_D?j$&;(XC|=7*)n(1Cw?jW5r-;;7r`R#w~}>p$^v>$S$O_SjZ?{k9hi1}e8V zp8e09-*a_SUHbRxcP*FKe!BkTY{knfyIx1JC%d;d_0uWY_2Aa>jM?FLOzl2*d?a#b z%ceC4|Ni;Fi({K3lOt&P&|jBWHra3kZx=g@_lW(c)0L~wyivW4w~_yIee(0KlaG!x w+-<1dw|3-d*S{B59$3C%$EC`a?yBFOpLqK!R{h7}9}m9Ydp@^h(Lyx*53-x}9RL6T literal 0 HcmV?d00001 diff --git a/tools/bin/images/hex.gif b/tools/bin/images/hex.gif new file mode 100644 index 0000000000000000000000000000000000000000..68a851b2d7aacbf14a139744febfa79a70a4b2b0 GIT binary patch literal 1422 zcmeHG>rY#C0R7#yaCwYT-mfbu1QjxvT?`vArY#gGf=MxK!GX%=W|)qoRb*YF$z?EL zk!j~6L*N54MMofZflwZn-M)ZA8LyT{DT7-|ftEtcqb-F}%YWeq&$n}Oa&mH#la-yB zbn!YFkb%_+TsS^Hb~>F7hXX~?!^6X)qay%NyWM_paA339tXAvZ-roNH{`R)XVA!pW?c4-M$t6v$7 zTY9}-r(0WET2`wU=jTGPJn(YI1T~CL5JXhlE1O z=B81vHz<`eLZNtI09#vI9~&E&N{0mktglb7vZ5Uskq-_I4-5$T{Jy!l`Tl-ER~KKQ zP>zkg6p19AoqQgzYhq$jCL8JM>gMq}J34qO)k0fa2ac}{4ap>uK@1ajclUO7cDJ|l zo;~YmZEaJj)KgQ_VzCs%L;}H!-rj$nKK=7#=>PHGTOjIy2m!zW@h8CDza~D^rSiUlPPxBZ8BL|+>+*hjyJqVSC5Wb|^=yrdEe3Hj z(6#;)s%iNw4UnQqm&w1y%X&S&Ny%T|F%msIqnYHw3T+0#FSwvU&Us$Q4LOdaQfZ>x zc6a~cBrZ){O+ZpOoH`h*@rKE{=Nk4}^@KB2l26nP;%(q_;cUT27qE&(uTX@XCz4bI z#D1W@YR0iD!j}nu+rBM^z9aZv>q(+$-0BwM>n}Nd3(K(gz5aR_{$_Z(J4g3e{A1!< z0ICj)Dd{nxE!B@A_+zN}YoDfa^prM{TX_cFtPw#@BdgFo8NtNRWrSQrpyP1(UHXBE zK;kDaV-Ss1PJNJERKEnJAtn(Cu470_W4ILc_bECK@Ier!1fqnpF+WBOyV3u>RCLil z=ZGOLN;@s9dQ4BmC8fU9>~!yh)a&;>k)J=j<&}}frUzy-&bvLy$&LGrn_ouy)UPBG zWCUGBSkk}(wdM7^b7d?PPV@i8?NOHH9vWP5hh6A>Q&hWN8F!NnLf$E3Qv*LPVuRpM zQ1(Iq!epztaR^2XfvdhSSBAnIyeb&3qh*Hi|44Zf)}TUHA*wu4T6C+4-RND?M7bZ9 zNQp`hWp47)!#{7w--syX;)4+^b>;&&L*mzgTs&gY!*9!JS+A9|3<*7V)!nlKo8<~K U>&Rl*esLU0G+{(S5D8rR7Y(KzssI20 literal 0 HcmV?d00001 diff --git a/tools/bin/images/keyboard.gif b/tools/bin/images/keyboard.gif new file mode 100644 index 0000000000000000000000000000000000000000..823aaf868cd4e59fc747f96434c944f081d9f601 GIT binary patch literal 1017 zcmZ?wbhEHbRA5kG_|Cxa9|##3_V3?cUtj59+S0VPidjGnwVX&dk(%e5^{{KkU?WqsRlT gbCb+!c5Tk?30QqfP3!a5*YkE1zrJ_YT7khD0F&VAO8@`> literal 0 HcmV?d00001 diff --git a/tools/bin/images/ok.gif b/tools/bin/images/ok.gif new file mode 100644 index 0000000000000000000000000000000000000000..fe6ed8d753d58607bb0041ddeded23df4013d6b3 GIT binary patch literal 988 zcmZ?wbhEHbRA5kG_|52S|Ig6Fz%Ye@VGaYsQU-># z49AWgWBAVi6dwhnAuu#T;P;0G3zjrAH2epqb5PO+Q9v4!h!uabFfuR*GUxzBfjL5f zfq`QugEEJV$A$$5n>mEFVon4oHn($&ndJP~@Q8^)ST-zWLj&Wn9(MDvKOCDDoM>0^ z=CgSjxYUzfDR@^3L-AstsV4H*_CyM$`A*@sG@~jy1_JSN!RipyWD{-@c7! zLeS$=)5PK@P084#e0rvl=d+MV;iqm42AQ+IR9;9qJ(n%p&Sh4JW^l7i_AQ=Wfv--^ Zwy93KYFVOvZl$p!6R-ESHOCqltO2v`IX3_R literal 0 HcmV?d00001 diff --git a/tools/bin/images/open.gif b/tools/bin/images/open.gif new file mode 100644 index 0000000000000000000000000000000000000000..f69a024197318aa70fff927d760c14627d438536 GIT binary patch literal 930 zcmZvbPe>GD7{(t>!a6J(cv$IB!Y2tGbnsw=(#d8AiV0ioP*6kEVM>CJ2=>y7;&B#6 zn2JJ#{=sad)4_HQ!Mc@89u}C`5{R*QsR;II^p@)b-}~^ryzuhl;XR)k9yoKO z4Q=>^U1j%PcF(f$FPkmKii)pRYOJZ>)!@5wR=?OE3;G9NeD*Q#VkQI2f?+_@zzxN6 zz`VnpO{sHCFpVgMa1dS}q=1nGFVII(gbT>XKrN zNJmJ881&F5AxtExY7DA$6zyf|1qz?=Be)?l9xMsNghoXMq(j=IP72mhj}V0jJ$Mq* zgjrLp22>80Z5DL;fEVdo`6ikY``M0pX?wkA{AjUM4tyC zku(p&BHRd>5S9l+LNgn%h(6MRj)CENY7B;BL4Dxhxv?cX1iu8Ug)TpWq6rE+-1?v7@ zVEVi)=Or3q-l>9`wTL>tih5Qkci>kD&5 zxwY1F=Y3^;X$oD<_a6Lwwj{UFZx-8&rQCLJv$;Mukve>8WEdyho2i-J3vVw!T75b7 zbU+MTdD4!H&bf{sSC6buOg`6Vh6~9{x4*tlJigU`w4-O_{!qT_+RCx~r}^tmEydP% SZ%UIL-~9B}!rk37Jo^vWfy|Ep literal 0 HcmV?d00001 diff --git a/tools/bin/images/open2.gif b/tools/bin/images/open2.gif new file mode 100644 index 0000000000000000000000000000000000000000..2b94682b19d1cb5cf5c6aad7c7ed1af371fabe39 GIT binary patch literal 969 zcmZwGO-K}B7zgmbWFi$CMTd4vsKaPU7bhzFP%O%3C!#4(yF@wAp@u|y>#}s%KClik z)=JaG#Gnjjp`1Q!hX_PTvkyynyU0YjhIJ_xJ5&VwZ}gVyb9i_jc;S72JkPr~USGYX zc?DMB7iNMal1L`QGE6g7e;7f3&#N4B@^{wzB<-;gYcQidca;||9;DEbfN4V4p{n4d zb7k|fhU zVW^Um9*1qFEw*bE3Y$Cc;rpCv|M@L5o1_t{2`druT>gr0RQf+N*iA18MrNuPO z#>Pfn*K2EQRaGr7FOS7ykw}DpbKTu{lF4K^8!)_XcI9WQaP!yxDGqyJ!%Uj_6LqCM zSWvoJ>piyf?02kd?KdtAUS3+Z8}EN~Zo|rrCxa`VIZ(1_S0z5*zctcP@vi7vfA8Jb zHzVsys-H%VKRf$%$?_dHTW?=1sf(7DRh}^qT(3R4`RbbU**%VaL%p%}XXl6X;YU+) zh($ literal 0 HcmV?d00001 diff --git a/tools/bin/images/opendoc.gif b/tools/bin/images/opendoc.gif new file mode 100644 index 0000000000000000000000000000000000000000..e84f0d69d646eab20c3c8d0d0dc0588207790a37 GIT binary patch literal 1094 zcmZvbZ)h8J9LAs4>N;`7R$tgyYjnG)RMehMC)ywmy2}m6ZP;ewoHSr%JzM|W7&R|6 zbgsC87s=$Lbd>QBx%7cA&+p6c zdGY)3@Y@z@-tu&tAAbCU{}fxD*s8_6Ef&joaxo086$!q+Cg zOyFn~kqBfNq6p?4PFhUrjH}cnh6T334Z&`L(Fjd|QVTi`EsMHNRiz|R5Q=~c*nk0O zfC4X*r!`4ENi|MMqYx%qT!d^i8EDiXD5#}Vpp~QUP@SNZqF@rHi-e7+frtiKfk=n6 zNS#zki4<5w(S>WnHehJb6etCUIg5_Y36&{{ra%)+z>UI=z>uMdP}ag?2yPSXMi>IL zS|}x01a2f-3yTQ3XtL30K+sUDtc67+Ttsa|49FTpr38y87U8MB)`T4oIxv{aa;o)J^GzSI- z5{X1_Z*Mdj?ds}^L?W%Nt+Ff!gF#Ug1A&0g=c}r!;`PGu_F@8s#e zYZYa{I3D&cy&vHRDvLP0zHZCyvC)H-)iryjPWm@V8|y>I?uzd@ec(@D$DNf6ZR3Y) z8jfUBJ2%F(rRGl>p4xG2rkhhQRVazJZ6Er#7B7bM_Sp~WwP4S=3ro$|;CoPcOZ;ux zc;r!ebBB1M=av^*hW0W6Eh>s1Uf(dadFq#n#Tuke)rRpzhv8I`;I+9<}M>by`t9yBC@AlJAc1~B{FFkha!styGGY7M?uk@XI^Vg|;cYOX$|2xY| zRY#J4Y`DkX|3f;tF1=Uj`FmkJyQ#cT{P{q4zkMP3>iOVG#Thj}6W;yR*_G>8|N8yX N`E>gIm9jEC^Dl{qCS3pk literal 0 HcmV?d00001 diff --git a/tools/bin/images/redflag.gif b/tools/bin/images/redflag.gif new file mode 100644 index 0000000000000000000000000000000000000000..1b1a6b1881b227026310fe680ea692d0e7c0e004 GIT binary patch literal 1100 zcmZwGe`p(J7zgmL(6Oz$2$gkBrr64^V^a!=Iy*{Z>yP%5Ik-vFDps8LhvH7^@B~LF zcteRlSTB;1lXVd4EVEohcZ`Lcwb)jhY#ml7HyPd0x)cgyFhbdwPRZ9>|8waB@B8q+ zJn-`2%iA64YTf;MBN}lFcS>7b+G^9hlcr62GpSG&*(WdtHv+pIMi8n1$qzaXEsMHNMWHBC5GsHR*nk13 zfCO)5iB^$%mP(SMN}-R4xro?kHxN`INbu7s(<)JSs1zvXDVT)mB4s0PKvofz5TZj` zq)sZNND8c=;=;9I8!%L;5~Q-jl0`>nL1A8`DbNH{aO1FL7*VJpNNceef!hu{2t$DC zhg8KPaJOtN77=mLZX;+wP~n%>Vi749aT~IMsEUwO#Ud&dxGroPh5=QD6B&*$Sm<&lw5P1C$=K<~Lb&FkLgRny-! z_W-x?n0M>_h(=&T1vfW7D4rUb`f$So^)-{Hz6`(b+r0DbOTRtzT;lq+x}M^N($Ll? zo>|zR-``o2sB7ERZ#~j=B>8Zp<#VmBsXKk&%in*ryRIWL44*lEwwyTM(0XvNXUh5d z+|l}b7q-<-j-4OfbKE$B^vF!2_tnJc;hw9THU~fWz2~X&iO;@jQqE2c$JRx@ZI}oR zK58V~zp2ji*oV zosD(MU2QAdpUu@iovr_6eus3a_T$-;V#9$qhi)GX|Ipw^_n(=4FSh7g?apJ{H??(( zgUi>huFozOS}yKb7<1R}eD}t}lY_5(a$xBAma*#tHx{p4zBM-F@eqNmXygK_m5VZhN@%NtM|D#|u1ZWfjzdtNku%w}(;Xg2)|7Z9Qrhqh%1q6ye zSr{1@elh3(C4o6Yfq{YJAH!Eh36Bj64mNXq)nxhb(3zb+`Y-pNyRO0N>dK2e5|bXaaBN+DeZ2-lg2d|5%*(&YuG zJ9k%nezli7e4THbeB72%6#3o`uoRZ;d!17 z|8gWh$4`i{beH=$!<6&-I!2!vb0eSLJh$Hc#l5rDEjb)QV)@5zSG8~m9_v@O=VNI4 zd~0Rrem6NMmyTE0*P7SY&C)yco?Y>{MMFR}a~MydzV?g_FgE}D|MPl$rR0t2_fp?j9=~7DW9AXxDBi$+kBNDnSVV2)%_ofPGG!|cwll~m zC^3i_eNd>161<|wuFzG%&?%}_n%F3L&ty@%ZePTsPQibr%6*EjB$N}R6INX9*V!cT zq}#e|x=@(ytshE#QaYTEYsADnle?JL&QPBGUsYAW>)FB;54&Wt7A)yz_|dNF&E%=E d+)+wv$-}u7&sM6><9fOI`TT}WA_5Ey)&Tg%d;I_a literal 0 HcmV?d00001 diff --git a/tools/bin/images/scroll.gif b/tools/bin/images/scroll.gif new file mode 100644 index 0000000000000000000000000000000000000000..e00a9a1bd4c3fe363b7f3cbcfdc2e4c38c98ae77 GIT binary patch literal 949 zcmdUt-Aj{U7{-6^yP3|Mxy|ael(Za-O39BvvtpFg6stiA8jDs3%g7F@!CFMCBpcL$ zNe5adeF%{eSV#p6StO;fBD7*eLiDu>B?ZO1LV9{$`YXB*pO5SM-Pe6@ZrW5=zei&c z`dnny)YLRKHnz651_FUlC=`uG`}_L`2M1%ZSfW3WNF=7FreGs@a_l87sA8M4%1qFux+ZhYZwOl*qwlZAtdQek*~b*YG@n?T_O5V@e7*zm>yT|Q}Lb%?ROp9sdSsO3!2;zc(h+K$e1W|Q>9|ghnx)%$so!sqN-@Z++zqROjl8|1Hyth z6+VQ6bhDxemZ$J14WTp)mul%!9#Sl@rzso;g{8(_fm6}ZLU4e}S>qI=X9tY1#E+6z zydC8{r?l9DRinI!hdl zG6>|tERqY+%fcM9d+5ret~pux!T8YC$7l0#dGVKxp38G?9eBXir(KKdm%r5R4va^0 z8!q{Z?4La6SM93&q1oI|PFFWP8EyOSd~|uv;`d+nA4+Y!wx;X#tfltGmg}3hzZn>> zbxqvxo@u^qDcm=CtG(oO>tOKaGD7{;H_LL($JjI|Dhjg*Mw&|hj7A;{UKU#$Lp63yBi z=1^clkuhEz2yu)+_pnC9g76(gCa7K7Q-{S%MX^t_-g5UnygV;_@V-Bu=j)4}KXr0& z5BA_EDn$}0q*8$lT171d6H)7lz#fp+FCTQqpy4nlub*8Wp7s_<#r4fB^L13|XMNLUWcznwp?8K*W7S zJ%nxa2q-#2lqI@(nvzDA+5#1aaC}%Ek~R_oF&!!;>5?XCkQ%A5jIs~kgJ;7Q5IXc) zShV0L;U!?lAXMnJuo#6OhSvjIfe1mb!XmJhtQHm#^%3^aV?z-L>9w#3%SX~f!bVI$ z)vK_Gav8o4&x37428^vOAeSJNb z%Vjc|`T2Rrai*rGEXx`j8%rjWLqkJ}M54dHKNgEcA`w+pJ32br+S;0$n)s(QJ^ebB zN(J74!Me@JZ>k{q2Y=TGGtgCOl|RwjkVaj@er;}g`9YA;x65%(tW=nb>Qsi z@xwdocfT6kHNLI;&W&G_*D}vSd)2>JRuA<}wqBk0$A`a1A0KU8EUe9C`|j?zZPkAr znu)zU-ID7X89s7xrtZb!kB@3ce6l&*{AJ>Dd**rMeNi@^XkUGJ?9$EAPT95Q?7Nrz UF!C;YVdDC^&d*O;Z}sBLKay(KfdBvi literal 0 HcmV?d00001 diff --git a/tools/bin/images/smallequal.gif b/tools/bin/images/smallequal.gif new file mode 100644 index 0000000000000000000000000000000000000000..a1db606b601fe57d8fa08e1d272b5706496f90f2 GIT binary patch literal 898 zcma)5Ur1A76#s4B?!9TfWc3iu()G~9M&QdbD`j(YF>y@F9!4$*g6Kgb_~w&gg+BQZ z!v_7qm0J#axVi`*%9bFMBt+O-#2$)nQBWFq!$qBQ?;Y7&XB^IV{(R^6`_8!wg@e9B zXZFH{HQ+Z1ED1X7!?7A*$LTRok8O(|Wi!+4F$ADsc8_BEwa9)nx_ej4=hJ4>Hn`f=H~&NDaIZ zdT80~dzR`KhqFRYW<|?jR`7ks>Y!dln_IG0G5uHd3Vf6U0sZ)7@lzWue$rYPl{27<=L3;?${i9S{k-sP4>4Yv&`ZdIwCVc*GlEjg}nswSD{sU%-=OO?A literal 0 HcmV?d00001 diff --git a/tools/bin/images/smallminus.gif b/tools/bin/images/smallminus.gif new file mode 100644 index 0000000000000000000000000000000000000000..06492f570f9595a21b693ed5ffa2581f742854d8 GIT binary patch literal 863 zcmZ?wbhEHb3KSM#o1R!-H;LVMe z8*c(`+_2bjLnQ{RW0V*TfngE?ia%Kx85kHDbU^+AZ&W%e?Pd7+DB_kogU=093 C7BtrY literal 0 HcmV?d00001 diff --git a/tools/bin/images/smallnew.gif b/tools/bin/images/smallnew.gif new file mode 100644 index 0000000000000000000000000000000000000000..c3137e5ed50c4eb006a246d389f319cc067c5841 GIT binary patch literal 1000 zcmZwGUr19?90%}kB>nM0iZa-qD!VHpO7~DwIeJ)mw_a|PTJ(=rL3T;1(?15%5H*On zi-9)?6QhW_gW^J|x4>+X3n>XXPjbQ9$X+6r1QEf$-T9XD_i*?fIB?E~@9#85_SA1X zu@Wos8>J$N1QH3a^_EgM;*~q{Xsp13WX`5EII43as>ihv6^fC&gd^PVB|w6iqQ)RR;Nl@_AO zMZ`gai8=vAgO9R6J4ZuOAEi1(#Ud;hDF<;AF@dOtASG#&2C0)Osj!Hm3)g{T!W0l1 zwE0*}!HvU-!Hhx#q0Pr)1a1SII+zNC4_X7@6 z)K#hql`udgqaN_BU4$K&y~wzgO-*4*42jYdPEP%sz_1Ok4)zpAQ=e+&Kn z4-<)mmksD$H#_pPoj3Vw{#1B-U{h%+{fS*m-eF-y{kQR>ogGV-_pNxZ^}kv4*B`zX zw%6{)k5$_%3THasC6l#hZ{hyo!RvuF;SGyFPrbhQJsiBWcy&kkcJ=A)&wUqiHD>MQ z%5|+5kB{{rwee&93UszFJAdrdOZ$O*;$Qgbz}Snlc6V#dwd%3kkN5TD4-VgoROg1< zH%|?p`!u2KwHAE1vcGk(ck0!l)=*b%TkqaGUD@`_l|8**-m-E_XmH|Z{_V}56FawM co_)>SSbueMJy>9Lk<@C=q(t zXv7sggj&Ux4gM_Jl068qhXg$IG^er`6DfF+P!JIzubbX%@*Re6U|{Cq{pNyx{`j$5 zLm0wubc-bN$mhd0T)JH?tf2PhYnyG!rblVBZnCP;Rp=rp!MEUKA(AjuuqD~>Sg~0& zDKusjrV!}x6L8`X3XB*iB|VR}P1B^NQBgWT0Qi6d2*3!RAzSnsv@0}=)C83bkqV&u zNH~ZKClOj3IEY}zJGjhaHG zhlLhpgI+9=lYip~k zt1BxjuIrY|oGBOg4M)|irKmR(P&xhH7 z;dNUhztx44fAG(aa1V@km+qgKj93_mjA|clo}EGN$K64cCuiU0K3jv8mtP)Y{CY66 zZ{gisbl|}3k*ROz9*thzm0OJ0PR{<^ZJpj(+kdh2emGqjetcVdj{6JO^iNAuPa`*$ sFP(UDDE|!U!}sRYJ9?qLbb0y3$JCX@GkYKW(sSR9S4WHPo(N9;1Fp2ohX4Qo literal 0 HcmV?d00001 diff --git a/tools/bin/images/smallplus.gif b/tools/bin/images/smallplus.gif new file mode 100644 index 0000000000000000000000000000000000000000..9030b0b323d21671c1dcca90bf03a818ffbbbfdb GIT binary patch literal 873 zcmZ?wbhEHb#=yuSEs?|&!BLoee71t(K9{a5EBspo6fHU!Otl&ohZ;u2S_wCtnk^LNv}V>p zjq|J7H<$5p2Cj+N;3Xc#U~oM(c9py5q`#aF8K>upUu$~$a;j#-H08=;F&j2-x^*x@ zT&9gPfiZQ)^wZ0DErT4>FDXeU>)J>ed7oG)`0nj%(Xux?(k^OwSeG#6-&vL`y_~fx#L8 D>|#zc literal 0 HcmV?d00001 diff --git a/tools/bin/images/vcrforward.gif b/tools/bin/images/vcrforward.gif new file mode 100644 index 0000000000000000000000000000000000000000..b58d649fdf4ceb25b1558a9ada96747266845a22 GIT binary patch literal 1021 zcmZ?wbhEHbRA5kG_|5sNxf_fPvv?7rVaO428yI)_w)vxE6!N#Z6r5_RB;#CZ?R6ZV-5G31`C+&lzGR z?^-H^(^$D3Q_r>h`23=k+i5z}ftO!0uS^l>joPun^rhcChlyQ#xr7$AF3u>{I(q8B zirX`s8TXiaZBq>HtFXLQYhkK?Z!dTDwksY*ObM-~sv2=R4-1?+1P$C~*xWQc#LBIZ zac|AdPmUdPEUWomF4*$&(qhl~ZhOsC8`w4^FW;wA_~?4mkD}N6&hFlxf1i<&!5RQ5 C{4RO` literal 0 HcmV?d00001 diff --git a/tools/bin/images/vcrrewind.gif b/tools/bin/images/vcrrewind.gif new file mode 100644 index 0000000000000000000000000000000000000000..e55b4d67df125da7a480a9cea0de193024c97c23 GIT binary patch literal 1122 zcmZ?wbhEHbRA5kG_|5;j~Wdn^S3^)W$6_Ppo%^gVUu6d^4ohNN!#2yDC(D56{Z231=5d70tVbfj@ z4#B&}bu?{P{FxYebNBzwiMF1TejNQSU;j5UWkDlf2S|IZNA!jL?Lp?WXFlzSXo z{~tSc3@A7XMnho8guw3)3l=PCXlVEkOy~a@fGHYC0cjus1d2ad7#SFTG3WqAfjL5f zfq`Qs!&gojj|~eBHggDT#hlo%@Nm0;vKfoR#zjZFCB&I34s2X}ykAzF;lhstjVC8- z1Y0F2Oj^>+W{`Yp&dH)BhkEtXU-d*@etK@cZT_@BJB>4(=D3tfxptVWJhPO2wpAF$5+t=UQ h9VpHr=d;5gakjgmR+!GljgOB{Q1+f@W2wMk4FH+FE0F*I literal 0 HcmV?d00001 diff --git a/tools/bin/scripts/defaultCPU.txt b/tools/bin/scripts/defaultCPU.txt new file mode 100644 index 0000000..43b2720 --- /dev/null +++ b/tools/bin/scripts/defaultCPU.txt @@ -0,0 +1,3 @@ +repeat { + ticktock; +} \ No newline at end of file diff --git a/tools/bin/scripts/defaultHW.txt b/tools/bin/scripts/defaultHW.txt new file mode 100644 index 0000000..bdb2261 --- /dev/null +++ b/tools/bin/scripts/defaultHW.txt @@ -0,0 +1,4 @@ +repeat { + tick, + tock; +} \ No newline at end of file diff --git a/tools/bin/scripts/defaultVM.txt b/tools/bin/scripts/defaultVM.txt new file mode 100644 index 0000000..dbc64c4 --- /dev/null +++ b/tools/bin/scripts/defaultVM.txt @@ -0,0 +1,3 @@ +repeat { + vmstep; +} \ No newline at end of file diff --git a/tools/builtInChips/ALU.class b/tools/builtInChips/ALU.class new file mode 100644 index 0000000000000000000000000000000000000000..03f95dca8c34632f9f1752ac76ebdca0cb366bb2 GIT binary patch literal 1754 zcmah~Uvm>x6#w03H=Ar0yA7taO{*yiCJ~Jmt=g7iTWX00sD=~^ir%D4SWGuHyTSO@ z@1QR@KKRC~%t+di8GYlyafTN@fFFTRziMMJ^${x=lpi_*VEts0Fc8C z6O%Y);tjmXB4^+&6B}my@ebZ)-7JguOuUZ|*f19Yo`9|M5iFQEgGJK( zLmCZd4SZ-~3CkR^!Xf7jtVZyWi7~7hIBy^?5UMs^fyqMA-EP)oP;dBarF?FwP+F;P z@66wbhQr%tKw&0@ZOB^FSqdmsI-e<$Znaf$ zb^^EV`Lyu|9Q1U)nAxx}jpGJBw(toG7B1kTz{KHqwlIa4EL_66g->-b7w`nmS>TGOl5z}FTe$`&dpS=a*IZcIh3 z$-wb*EPKuZDH=dJ={s8~>8E7swrseP#>2OygY9zDtp#~+<)*vi^DG6X z2C^=9tepIc8{DJ`2pk)*tFtdiPgb3VK#aPb_xwP56{;>t13JW&rZnRE>P$+x>Ty9^ zYU0$J7>%S*uSlMd0L>)NJkT2s=><-zl)e5OMkImk!SVm=%bamNBFwtWl!#v&Ec+tS zj~s>vZo(>l8n_%HDN)KIyxQ7X{=P%jM7r4JW=(q4Trp_4UX_yAimwAYV!QKgQ`YFz zM7qOfWxZ6sP;UmkdxuniHL87sxRIon4KPGsqBkLp`An-0Vk?f5e1&#r5h4Vf&hA0% zW2lYL9ZY8*K-=7dejnlNZwTA#BjRxz2IDp&*?mOs!@Ngfpx{?=qMK}lR!*j~DkiY~u(6ZIZy09cv{t+idM7bUR8iY)42Mwm~vthg-X|QF1mD(fA9yKeRDCXO5e3 zyN!`Mh<6R~u7Q(2gvHCa*~Zbk(C5tLBb5Pib|3&;8a3W!>0cMy~7#h8#Q^pcB(Myyxd9ILQLxW)fvVlbhgr0_=> zcMA#&Gs&BoH*Yc@-#@E0fDp$%7;06N!7JGDv5P$i`wVr42BCbVv@+KOFX#>l#VC7` z92HbK4sb{)3@#a(94)jtj?f{ro)>CjVjYduEDs0wGF7>ebHeGL!j^whW_i5QV?nq>YKu+G^`hyU|tKg~2Y|SOv{O1redpjT@^CdZ{MGBv0a#2vWg? z58y+Ib1f8+3o~c#nKN_d>-*yq2xxjZ_%0=uJeDaNv|>=jq3W=zDD`x#vm=GoY7Z24 zn2aKY`y7SI(HEIrZpLI5THmUh+(NI)xbN!f|$KivXq`~oMw70LQpAGNE z!RauI(%@vqn?k1QSVmsyI2Gmf#hP&GmTVKK_5u}0( zAHata6AMKokn^4V=bZfK>-*yqh-iiQsDKhHA*+-fRUB1)YCda%QeP+9913K+GZJ`% zbP@}Kr+AP)PID70mIxH<)O{L?4K@{9)D_z_1(oYuKbW&*aHpqPbd*d4jnnbXeRMK5 zaTXoVRhQVAI*+Q&zs`n&FwM=PUuI75+QZI>9lMin zw}k@2xwUs_v#O24#$xv!@#=IumKX9K(jM6DzEP098M5!lb97+Ilf7o^`DI3N-pdb9 CxIR4q literal 0 HcmV?d00001 diff --git a/tools/builtInChips/And.hdl b/tools/builtInChips/And.hdl new file mode 100644 index 0000000..d2c48b5 --- /dev/null +++ b/tools/builtInChips/And.hdl @@ -0,0 +1,16 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: tools/builtIn/And.hdl + +/** + * And gate: out = 1 if {a == 1 and b == 1}, 0 otherwise + */ + +CHIP And { + + IN a, b; + OUT out; + + BUILTIN And; +} diff --git a/tools/builtInChips/And16.hdl b/tools/builtInChips/And16.hdl new file mode 100644 index 0000000..4c71874 --- /dev/null +++ b/tools/builtInChips/And16.hdl @@ -0,0 +1,17 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: tools/builtIn/And16.hdl + +/** + * 16-bit-wise And gate: for i = 0..15: out[i] = a[i] and b[i] + */ + +CHIP And16 { + + IN a[16], b[16]; + OUT out[16]; + + BUILTIN And; +} + diff --git a/tools/builtInChips/Bit.class b/tools/builtInChips/Bit.class new file mode 100644 index 0000000000000000000000000000000000000000..1e5a3c457c0abbb4801757bbcfb53e08bad62590 GIT binary patch literal 416 zcmZ8d!A`bz;GjHC!o!!r`_YVLO+8#>qT{x(EsA0pPO;ffEtvlFuutTsjJ=PNf4GG1* zN|Zh#Sed<@>m?QVrq7Dw!|zl}a)~?dIao*d<3eBvk&jIO6?;H*!$U z?WGHy`>o6fqB9IfX!CPR{2PRViO0xd%+a~7Gpq7ReA?YN&@%%-pq$Ggj~BSt?7pBN ldP`XShIoSCHQX}%72?-c$!!6f%+@lG*;bFMSfaR^!#7^oMs5HA literal 0 HcmV?d00001 diff --git a/tools/builtInChips/Bit.hdl b/tools/builtInChips/Bit.hdl new file mode 100644 index 0000000..a0a76bb --- /dev/null +++ b/tools/builtInChips/Bit.hdl @@ -0,0 +1,19 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: tools/builtIn/Bit.hdl + +/** + * 1-bit register. + * If load[t] == 1 then out[t+1] = in[t] + * else out[t+1] = out[t] (no change) + */ + +CHIP Bit { + + IN in, load; + OUT out; + + BUILTIN Bit; + CLOCKED in, load; +} diff --git a/tools/builtInChips/DFF.class b/tools/builtInChips/DFF.class new file mode 100644 index 0000000000000000000000000000000000000000..49efcf1ae7958520030cafe649d65bfb433bf2e7 GIT binary patch literal 401 zcmZ8d%SyvQ6g@YOrio+vP^-pgcWpL-ZWR}{R0R>C*o~_iiw-SGArt&AK`XfM1Nozpyr{D4UIN++0wM(VB5hC!Oql3jR`a$lul(L z)fvHTwTA?&n?ADQ#M3mM+|3AXfqLmnBCrM_u#3RKp1?j11YCFmhX@3Ya7?H^Bl{qy++AVR~3g7#3xvX2#199nfKP^c=b5z0N28oN&r&DMY* z%u(R(=@&}qdYo1FJ1`sli|%n zbUd_49v#eN*RZKc+40h(IiY%W_Gj#ZKiwr%{!tw2F0s>SeS)7AcD^riC&*^MHNXxZ zrTAQ+1afit^|=eU64!$cxf5}gS|&mrm19wR9_jaR5}%xJhL(FhXqr literal 0 HcmV?d00001 diff --git a/tools/builtInChips/DMux.hdl b/tools/builtInChips/DMux.hdl new file mode 100644 index 0000000..80153d7 --- /dev/null +++ b/tools/builtInChips/DMux.hdl @@ -0,0 +1,20 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: tools/builtIn/DMux.hdl + +/** + * Dmultiplexor. + * {a,b} = {in,0} if sel == 0 + * {0,in} if sel == 1 + */ + + +CHIP DMux { + + IN in, sel; + OUT a, b; + + BUILTIN DMux; +} + diff --git a/tools/builtInChips/DMux4Way.class b/tools/builtInChips/DMux4Way.class new file mode 100644 index 0000000000000000000000000000000000000000..ab72a174054b6a3d615a62427e3bb128d111e293 GIT binary patch literal 408 zcmZ8cO-sW-5PjR-BqpxbR#QKki?_CyK=5YuU<4IZghD-dv1-tzH7RBT`d2)8^DIaO z5B>mulsIdl)UvSi=FQBTH{U;>UjRY`9vny)HWoZAqHNHTK@|s82g?k0Tct|xGVn&T z%OK+HCShAdf@Fg}-XYj8IHPAwb99(@7rgjay7Y!YU=zGnM8H)r;e)wo_WX%}}19$k=V7|Lk=bysXfZd7hhs zXmpxgY|>#4oeY$~jAi;g$|@8YMXU7z_Gao3n4gpf;PimY);mf(8iBVB5(e!M50Z3Gy#)3oSUp%l1r?!C51yh14c4@n1oTxrdGo3u z6-0ahA4;6HP-3Kvs>C9L-HGBT-Dcp; zR-Zw1hnFEk=`QRJZ%0`gx+tRLVhJ^gx{GD3xL8Ha#Tpt6weu_*qz7^LIvOSZ?ooEX zaT+`@)c1pn8-FiI!^Gd2l$d}TM=^ChiQUuQzL+Y=U2`y;*|* literal 0 HcmV?d00001 diff --git a/tools/builtInChips/DMux8Way.hdl b/tools/builtInChips/DMux8Way.hdl new file mode 100644 index 0000000..c5536b8 --- /dev/null +++ b/tools/builtInChips/DMux8Way.hdl @@ -0,0 +1,22 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: tools/builtIn/DMux8Way.hdl + +/** + * 8-way demultiplexor. + * {a,b,c,d,e,f,g,h} = {in,0,0,0,0,0,0,0} if sel == 000 + * {0,in,0,0,0,0,0,0} if sel == 001 + * etc. + * {0,0,0,0,0,0,0,in} if sel == 111 + */ + + +CHIP DMux8Way { + + IN in, sel[3]; + OUT a, b, c, d, e, f, g, h; + + BUILTIN DMux8Way; +} + diff --git a/tools/builtInChips/DRegister.class b/tools/builtInChips/DRegister.class new file mode 100644 index 0000000000000000000000000000000000000000..74a713d010fd8f6e39ea4d2b8bfcbc497026feef GIT binary patch literal 339 zcmZ{gJ5K^p5QV?twLI3xqM)daRzTtQVr(GMO^Ag?tXJGDSK%&!i~q}nU_xPO;g2%j zEhsF^Bxh#MoXI@Cf7YLX&runNN{Iq)k*zY@?4+>k;5k%xaM&h!;vY z?%#yNS4;RCK{uI96CG*O5gPv%1!o?a+i(&IwPyb%d<*??sAK=$%#@Bh>GBn;=qJO_ zs6-3-W)QRnoZ8bJ`w9?i_ArZOo1K%j5uCL@koJW_26Idmk3h9 zgFnC@B~C09kwE6XyqPyM`TG9&1Q4PXz=QHp#(IDaR2{%M!n`s^n1w zGsXdL=JC!z3FKzxJ78AjNE}zX@1R$wLtoLCQptmjPL_Cn?u9^ literal 0 HcmV?d00001 diff --git a/tools/builtInChips/HalfAdder.hdl b/tools/builtInChips/HalfAdder.hdl new file mode 100644 index 0000000..1591b96 --- /dev/null +++ b/tools/builtInChips/HalfAdder.hdl @@ -0,0 +1,18 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: tools/builtIn/HalfAdder.hdl + +/** + * Half adder. Computes sum, the least significnat bit of a + b, + * and carry, the most significnat bit of a + b. + */ + +CHIP HalfAdder { + + IN a, b; + OUT sum, // LSB of a + b + carry; // MSB of a + b + + BUILTIN HalfAdder; +} diff --git a/tools/builtInChips/Inc16.class b/tools/builtInChips/Inc16.class new file mode 100644 index 0000000000000000000000000000000000000000..b5b2aebe7bb4d4e7e8ec8d59b79b8302b123e9c7 GIT binary patch literal 333 zcmZ9H!A`95K1O-vtn79BojV#f$<3_|r8>J=o^-KH`6N8Bh zKfsSNP9-76&CH#-b7$^+eSdrc0ee0!#-qfV&pPECZRDupQgzu>lzLGd*%O6swMPo4 zpWKBC?>X!z(^+Oi!wQ~Zi<(Q_uua3TL(Q;DQ&GLmq9;3u`w!794F>V#@JLZVA5R{G zv#|}+;B>*~g=~#tS$P%3sVJ{6{)}D9)ni5ZUrSuwhxXUoP~j(;UFvn36HaT`9aWJapPaPPVIJm)$0ylwva`?uc#RPank9#?f-!*yOh z)bNpxG_Ib&yZD%;8@zm?<5S#Z=`$U3xW&uo47ttA7dpPgyiU>rD;61dhnFhfeWhV3 zgJm5#)H1lM;hu)NhWi4k9d#fe8YH#4mcUHCVeNKp8MvOmv|g*+QwQ6w^vp$fx8pj> z3FZVwZdr~M+$NJ^X+t2r=$cAkyrlxNNPq&9#Zvv5+>;ggJg6l1M4*$?RZsc8G6l{Q zk3edVJh0Cy3vS9F#SJCFmMjj1{!#1U>zG89vS!s zn+6^;)fQ8IYv2jKGjIlH4SbIuG)M#6Xc{mvV?g1lffm{ZEIxjK%L1pDWpk&pBm?D# zYZ8pWMaoH7heBKW1;;H|9M+Y>x~~fJYpP}Wf%3MVa4ccwRI?hl#RPFvlwqGNOUJa? zVLooS{fhtGa$1$UgH1QdLHt`Ia8jBkQ5{7zeOyQO)nQW(Q}ZfnyL=eXdSKaBU{TfX zsHZ#{QU9Im2Yjra#~_L!8lV3f1MY0M8+5wCs>Pi>u{D^<6&gQc8y`q6Us3+TH>Qi! zSJQ2QV5Sso{B>opL&6@*T`*7OdjIY c9}(@5iNF>5>FGO2krAMW@Y4)u{s9O02gQw$Gynhq literal 0 HcmV?d00001 diff --git a/tools/builtInChips/Keyboard.hdl b/tools/builtInChips/Keyboard.hdl new file mode 100644 index 0000000..26ca5ed --- /dev/null +++ b/tools/builtInChips/Keyboard.hdl @@ -0,0 +1,23 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: tools/builtIn/Keyboard.hdl + +/** + * The keyboard (memory map). + * Outputs the code of the currently pressed key. + * + * The built-in chip implementation has two side effects supplied + * by the simulator. First, the keyboard memory map is continuously + * being refreshed from the physical keyboard unit. Second, it + * displays a keyboard icon and data entry GUI. + */ + +CHIP Keyboard { + + OUT out[16]; // The ASCII code of the pressed key, + // or 0 if no key is currently pressed, + // or one the special codes listed in Figure 5.5. + + BUILTIN Keyboard; +} diff --git a/tools/builtInChips/Mux.class b/tools/builtInChips/Mux.class new file mode 100644 index 0000000000000000000000000000000000000000..75c66452bb093e5fcab3b770331d2b3cc81b6af4 GIT binary patch literal 356 zcmZ9HzfJ-{5XQgZ_E_#*<&T1Yz`_n_F477VUZEyxOh{;~P&c|!?})dT@GQQ7wTZ#R z!Uyo7jI)vuW3%&{`DVVI`TG9&1Q4MWLP7;7Vl~7X%8n|IsuDGcbwaUk5@Ux1uiY6F zM4aAeLhz*H^l_S7tx!Usuz|WnLtztJ3frhF?4U`gT;=A$o+R;|nP$;hJ|i@aC)fAU z(ZuR3I$WqOVNa8=;e|;uLhbVOPun^Fc|a)tEAdXZ+Wu}fB7|vfm-Alc1koOK#@OSV zBwq^@KyF)pL(ZxkiKE|r2faES0xL^-!0m!-``tGbyxtsM-;r=MaO680G6}D@`wZE9 LfoRR)FRbtbHwHlH literal 0 HcmV?d00001 diff --git a/tools/builtInChips/Mux.hdl b/tools/builtInChips/Mux.hdl new file mode 100644 index 0000000..a0eefbc --- /dev/null +++ b/tools/builtInChips/Mux.hdl @@ -0,0 +1,16 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: tools/builtIn/Mux.hdl + +/** + * Multiplexor. If sel == 1 then out = b else out = a. + */ + +CHIP Mux { + + IN a, b, sel; + OUT out; + + BUILTIN Mux; +} diff --git a/tools/builtInChips/Mux16.hdl b/tools/builtInChips/Mux16.hdl new file mode 100644 index 0000000..676d1f4 --- /dev/null +++ b/tools/builtInChips/Mux16.hdl @@ -0,0 +1,16 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: tools/builtIn/Mux16.hdl + +/** + * 16 bit multiplexor. If sel == 1 then out = b else out = a. + */ + +CHIP Mux16 { + + IN a[16], b[16], sel; + OUT out[16]; + + BUILTIN Mux; +} diff --git a/tools/builtInChips/Mux4Way16.class b/tools/builtInChips/Mux4Way16.class new file mode 100644 index 0000000000000000000000000000000000000000..b2e2ed773d8437a2fd7f69d81ca6300eac2b0702 GIT binary patch literal 435 zcmZ9H%}T>S5Xb-9O?GWet!+*HXhl2-Z9Rk*&BfY-J*c1}6zaiK)u2I5i%CFz0AEG$ zCP)PjK7bD;&O|8UVP<}_^RfT=`u_L?;G$|l!_Gn>XJH0;rdg(fMp2_ApxQwg#2o=y ztM>(r?(o7F$lm$g;q54ieH&BA+L(i*QMNIU1sjWSY%HN7P(Dk7n|MF$UInAbJxuO5 zP6iK6j|zK(^J{l^5c`q4^V`D-Z4N?OdmMz3K=Jh8Pumgwyd{wT_e9Dr{W#Uv6R?I! zJeijf7mQl3-p49krs-xN1HqcfTa* zW-^&NOp3`f78i@&n>gpj^Qa*9DGUX)l63YT+Js1UH zLqIE6dIEZDeCZ2V_kL@9H<^XLgCr~mD^L;z2dh|funy&514V(ta2DK#?NRGGm`vT1 z*~4Cc@VM(y<7jYk;~ow|f9f{l3@_;BU_{q;g3(kUe|G#Qc1kbr3uOLn(PUSC7|que zu*b7-abBBpLoatLJ#5j>B>fpkK=8~|ZCd5X1-VgugLvUSbfgyTZ;GdA@2mQXgjSnF zt260L2TTT2gUMv_bVeDW!I+HDWX#418F3s*MjU4>&9jyD9F2fsY|+R%?mYLeQd t4yjK%FM9S9+!EKyCf9AHvz3&=rj*H+R+3Gsq-WEUx>i&697gYwnJ2vWg= zKfoU)&RQtqW#+wk^YP~E`{NTpgiZht%0~@r0oGA>Xv3kA{r%GN@$%Yw-3=- zVs#OnE@Ve|smXZbmB|W1K0oF0 zyFdlx>~aj4g`A0Vwf_!!bvh(gm+~Pq!L@__8!BQjhZs5}9Xe(t#Xz<@&*{q?)x|V^ E070NX82|tP literal 0 HcmV?d00001 diff --git a/tools/builtInChips/Nand.hdl b/tools/builtInChips/Nand.hdl new file mode 100644 index 0000000..ae0204e --- /dev/null +++ b/tools/builtInChips/Nand.hdl @@ -0,0 +1,16 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: tools/builtIn/Nand.hdl + +/** + * Nand gate: out = a Nand b. + */ + +CHIP Nand { + + IN a, b; + OUT out; + + BUILTIN Nand; +} diff --git a/tools/builtInChips/Not.class b/tools/builtInChips/Not.class new file mode 100644 index 0000000000000000000000000000000000000000..4726b678408f6fb87b2a44060bdcb07ce67d8fa0 GIT binary patch literal 331 zcmZ9H%}N775QM+UZnEw=njcM!#*5$~$z>r|g9md^L4pv-#Zxqk4(e`jXP?9;5hQ{K zAHatadk6&a(p^2(Ra5=_^Z5nD97Y7_kP2H7+f*H@IaCj51nej(Lz5bNs_?qKslp#+ z^F$H8B%|zkQP@PYL8#fK8PL+~(bnwK)Ev-J)NTv&WG~avgIVP9IJ1h@#q91eKA+hn zkIz=D8^qJ3Vt8%RT+z6>`m;8cKTj0Ze@~L>J`qPrHc>=bVb^*ucZA=a^rjriO@Uks wC6r4mHIk_=T}dzZKTvOu$7gd*ALEGt+WmJ*-e8G06y$pYzcYVbQeG+e1^K-^2mk;8 literal 0 HcmV?d00001 diff --git a/tools/builtInChips/Not.hdl b/tools/builtInChips/Not.hdl new file mode 100644 index 0000000..5b9d897 --- /dev/null +++ b/tools/builtInChips/Not.hdl @@ -0,0 +1,16 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: tools/builtIn/Not.hdl + +/** + * Not gate: out = not in + */ + +CHIP Not { + + IN in; + OUT out; + + BUILTIN Not; +} \ No newline at end of file diff --git a/tools/builtInChips/Not16.class b/tools/builtInChips/Not16.class new file mode 100644 index 0000000000000000000000000000000000000000..ff3e68f6b9766669c35db54e79cc853dc9a3628c GIT binary patch literal 327 zcmZ9H%}T>S6otRZq>YKu{%EyYH-d|{n_w4iEN-$;K}0BY@rp<{!c6(!i zpXO5~2%lA&Kg~*`Vpa%aHfaTH#cb1#*`XD)OGnVWDfOc{&(eE6E0W9H93Bbk%S(Gt zXZF~Y&I-$1Uz|;DACl9FQI46aV?k|cW%JxA^OtHQi1N}bcv(2Z?~Zz7_U%7`{S-We uOKNLmr-tpq_DcT)@#cJdRu}dG(gM)#zvIcl967YgmxGS?@;ayTPw)$doI11s literal 0 HcmV?d00001 diff --git a/tools/builtInChips/Not16.hdl b/tools/builtInChips/Not16.hdl new file mode 100644 index 0000000..c50dab9 --- /dev/null +++ b/tools/builtInChips/Not16.hdl @@ -0,0 +1,16 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: tools/builtIn/Not16.hdl + +/** + * 16-bit Not gate: for i = 0..15: out[i] = not in[i] + */ + +CHIP Not16 { + + IN in[16]; + OUT out[16]; + + BUILTIN Not16; +} \ No newline at end of file diff --git a/tools/builtInChips/Or.class b/tools/builtInChips/Or.class new file mode 100644 index 0000000000000000000000000000000000000000..a5b64f9419c5dcbf1a9b30e44d7d32cfd0cda243 GIT binary patch literal 340 zcmZ9H%}&Bl5QV=>3$^tsf`UJ=(G{?;30u*HU8sps6B0JAP#e8b3Zd=ZckoF}3??po z03XUYR}x~(O=iyAGjrz5*Z0RK5Yi0r&^{$r0#+$ov}RGoqw2A)DD_NYvLl7lY7Z1{ zG`@=!{xpupqe-5{nk9VA1~remW|J+=HZ{!-4Mq7TH&5AF5Y5Pg%~WW94WCNc3NBG@I@9HbHq7G9x(s1S&S)v1Rrn!AwOEBqaH{sC)2 zB3SqX{88epfgmni`vE6B<{Ad9cT6bZ5qScsAL+h#v{9 zqxkwhJdACUhX*r(D|oF*dFQ!Fb3*;{&+ZYb|5|M8HnG3v1_VDV?0jD2j*y)} zcZeN+OYy@%3FHiO^tq~WCeG#H9rWsWNG#6jfaN9bZ3k~CiQW{V&q#`1`x#2SK+2~n I%CkBA0C(m+`Tzg` literal 0 HcmV?d00001 diff --git a/tools/builtInChips/Or8Way.hdl b/tools/builtInChips/Or8Way.hdl new file mode 100644 index 0000000..dccd61d --- /dev/null +++ b/tools/builtInChips/Or8Way.hdl @@ -0,0 +1,16 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: tools/builtIn/Or8Way.hdl + +/** + * 8-way Or gate: out = in[0] or in[1] or ... or in[7]. + */ + +CHIP Or8Way { + + IN in[8]; + OUT out; + + BUILTIN Or8Way; +} diff --git a/tools/builtInChips/PC.class b/tools/builtInChips/PC.class new file mode 100644 index 0000000000000000000000000000000000000000..1e6ada1389a15401a6a660b935e8cc6a7f5d8f92 GIT binary patch literal 1899 zcma)7-%}e^6#gzr2rLU}LV=b*n_AG2R??zUEkCrRK%*2R2$f=Mm(4cW5_U1Wq4mi> z!l#ZeJ~-1CA9SV-PCKJ-eejP`zq9!Pb*4^-;oNi1J?Go+oO|xgUw=RU13(s44QFsg z!-x1t#MLNfG=y=b8>5)*!kifMB0d)JiHK_=79=32;W`#YTN2;0Xg9={*YGJm(`c@A z;ijysB0d*U5b;G6Yh75^FpMvw*oa~?idzbi1EW&26x6yxs8q8Rk}Ee1b9Z?opIx&` zw&z>boV&O0I+o+lD0I%+j_uDgI6bkc5YD+pW=GA6Ywm9BD|83ib@!p85Gz?eaoXt$ zgXxKt2gZSsH6Hrewx6(iKqFT+oRU>km`DdCf{+>+6pX6xy<#mM2p^%)Q`;{ZzO~t? zBb;6rXCF&hHf+Z#F1cpSQ_#pI2)X8ybvi%6dbPzzrnT?et|I|v*)n(YPSJYQ2q22) z9ZQO&^MuwhhVdxA(y@ixI=1n(!s*vGOvhU|&t4UBS9RRMT^-+GT*o~aI(A^{D8kZl zAEhYDI&3`9k-|A0A7EO?E=oEon2cgiha-C~#uWzgm5Nm|Dk-B_tXiIz3RgXp8}H$Lg;T;TyUg}@fovB{(uG{AY*c9knwqNEkD_jirF<@ry}FS*}To6R$_@yf3IRof{AqZ48O zEY3p@<%(+>G77vB>3lvIEH?Ov?d3Nc$yP#ue}V{$)v8-}xW0Y=yZ^d1i&My3%1eoJd~MD^;Ve4%$9d+n*C7{yt42RB5arvn))1lwEM*R% zen&?gp~slXyg+#C5Rqr-%sfSBB3eh6D0Otp5?5wiJ+DI(BU49DbJc$%68I>-)5iCS zAEB?zklxT#9euN+g+-eaEh5^yXq}=>hX=yppNJTGhS(FNMgk)l82zI(`Z8Nj5ewh@ zfi7lszHBTZ>ajXbv>2q@42D^`RM^Lecxb8-muSTCnM0=8i8xn@iwNqkR6z3rE;hFp zSV)Mz=?iuA&#~x}BR@hLiGTmk&p4Y&4Ae0wi7zoEON-7E_HE=4LygaM$m7t&yF|1O z;*DjbIOdRBvW^6iPc?w_0EoV3QHsA@tz+vA*pXqYj!U>qI62Wlt^%xOl7~1=jMy)< zfGPfm`Elt7U#4bsvPmPBe2m@~7~V=SYvj)c>`{u6_pq5V#8o=c)A+zqc}L;+7lp^H AdjJ3c literal 0 HcmV?d00001 diff --git a/tools/builtInChips/PC.hdl b/tools/builtInChips/PC.hdl new file mode 100644 index 0000000..f102d99 --- /dev/null +++ b/tools/builtInChips/PC.hdl @@ -0,0 +1,22 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: tools/builtIn/PC.hdl + +/** + * 16-bit counter with load and reset controls. + * + * If reset(t-1) then out(t) = 0 + * else if load(t-1) then out(t) = in(t-1) + * else if inc(t-1) then out(t) = out(t-1) + 1 (integer addition) + * else out(t) = out(t-1) + */ + +CHIP PC { + + IN in[16], load, inc, reset; + OUT out[16]; + + BUILTIN PC; + CLOCKED in, load, inc, reset; +} diff --git a/tools/builtInChips/RAM.class b/tools/builtInChips/RAM.class new file mode 100644 index 0000000000000000000000000000000000000000..e17050f0cbbb0bd207174db146fedf32ee3c7ce2 GIT binary patch literal 1928 zcma)6-B%k`5dYnLbjfllfl7;nP_UpOMPpI?0-`jfG#Y9oLZ#G?WwVAYVK?q>p#CWy zU-ZQ%AM_j>daS3u^}#>N0FFE@C3ic~2Bz3(@+%L3DtTZVZ^YN6`d zPGHqHm969+wOq$?f@M0qVmo$F6iDRC^E>n_xphlGGn=k?xZM(n=Xg8iS$wJ;kS(Qb zH{26PV7Orggx^CHxR{%-+&7Mmf^iZQdixYfsx(UnhSRX>0`obQoN^&puWERK|IBLr zm{a8FgY8z`2&^6EDUi&SYrK2D(Y7}X+p+35U9(O6bxKD0tOX$-x(3{kGi<%1-IPZuy0+wM~KS8HnqlmGSP_!GY?O1!a#) z{JdIJY(KCZ%M-YC22SO*X*foMErV2pvf~GaV^XOy)C|vYrH&Y}eU&0*uPTn zx4VQwwJEvOu}(l`OXl{%f^)@e-zLv3_k;}WR&h;(%d7fAweX-(ulG~E_F{e3J)rt6 zO$h6r=X%{;fh!S=YD&MLtV-{?sDmlnp&6;#+-#$JXQ|(&u_DUDXKsVHh%jB4qFtkw zblXAie4NN}8!PJEtl=OX;}EJ*+tUTp%W%PLT88%wM@m_@Xhvxe>DmRx za^V~|XK@|c161>;5c$ks zsfUO?LcD{-4=CmzBe{Eua}S~A|4?77g8^3410AGT8Nn}Uy#rm@I~a`q@^`}In6Duh zMcSZ93EEpGm!bG#2j^EHOj-t@4{Z%P=!Z3^@n-#=Ci3>!mrQ z0#op=X%TNx<+z69^yeDNeC8A{hs=MaHSjil2?{+yc6y~E|Jmr$#xp-cX4wD9&lq}) eiQQ2GnEX48&_65qS&Yt(M+Bl+nLf?FKmG$iD6ZiE literal 0 HcmV?d00001 diff --git a/tools/builtInChips/RAM16K.class b/tools/builtInChips/RAM16K.class new file mode 100644 index 0000000000000000000000000000000000000000..2f1e3feaaf03e35f6ada3dbd8d47cccfc5272dbd GIT binary patch literal 390 zcmaJ-%Sr=55Ue(j*-h4%hw*KQC)Xe>UPO$Dl7lWLA`x@nBtsm{&V=l!_*sHP@Ziyd zA0^Is^dJq@)!jvP(_i239{>W>a&X|eV3>DM$YB9R3ndF>h6=+XA$ugG(8q+7ztbb6 zTWZKXxTtzq!ZN|>o_6Yc`xl1{D;`#{=3(6qH?T>l^dH1nhq84mCP`qFMo1|B?HXG@ zwC--qV>Nv~y9o*P_IWh8H#E3XLTWzj{LWe`o+!zsZW3z$D+ny%`Z9_+q3XBqqQ@v0 zM{*Qg>#2~VrrlUDik?VBf6Tk;DIw%dqpb#!7D^H_erOKEmidumeg=>U7deA@Qym~> l7_i$Yo!|}Bc*Wc&>Nb^AGo&pkvKca#uo7+0kbSW>zz>IXREPio literal 0 HcmV?d00001 diff --git a/tools/builtInChips/RAM16K.hdl b/tools/builtInChips/RAM16K.hdl new file mode 100644 index 0000000..7031bf9 --- /dev/null +++ b/tools/builtInChips/RAM16K.hdl @@ -0,0 +1,24 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: tools/builtIn/RAM16K.hdl + +/** + * Memory of 16K registers, each 16-bit wide. + * The chip facilitates read and write operations, as follows: + * Read: out(t) = RAM16K[address(t)](t) + * Write: If load(t-1) then RAM16K[address(t-1)](t) = in(t-1) + * In words: the chip always outputs the value stored at the memory + * location specified by address. If load=1, the in value is loaded + * into the memory location specified by address. This value becomes + * available through the out output starting from the next time step. + */ + +CHIP RAM16K { + + IN in[16], load, address[14]; + OUT out[16]; + + BUILTIN RAM16K; + CLOCKED in, load; +} diff --git a/tools/builtInChips/RAM4K.class b/tools/builtInChips/RAM4K.class new file mode 100644 index 0000000000000000000000000000000000000000..164ebf8cf730b99edbb8eb31c57b188e120d958c GIT binary patch literal 309 zcmaJ+u}T9$5Pg%x+uXUD%W2d~B3N9~Y?I1}AXn&-L_{(DYL>W~+YQMo_*sG|SXf&4 zQR1GZg$&HRnK$#8_x1h$0YG3oLVzg53Rdgj5!SHI&|ruO!J#(V9TBQ&XH2MNcA_{K znj8r>2<+l`)b0%q7&bXt*dip?4|?Wulilk1Qh2&IAjE%%UMkH?#jsF?T|Av!<%IU| zRNmZsD9)`mPEAI?TxN^8HOja?VfX(H|IkvoGg&A?D;?g+M=55~OvR;JXfy41#@O>V n18*B39}IP$L*MPA;t{aZZN_*5bze~V1TRZceMRlLJOO?HRV71e literal 0 HcmV?d00001 diff --git a/tools/builtInChips/RAM4K.hdl b/tools/builtInChips/RAM4K.hdl new file mode 100644 index 0000000..8f1b211 --- /dev/null +++ b/tools/builtInChips/RAM4K.hdl @@ -0,0 +1,24 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: tools/builtIn/RAM4K.hdl + +/** + * Memory of 4K registers, each 16-bit wide. + * The chip facilitates read and write operations, as follows: + * Read: out(t) = RAM4K[address(t)](t) + * Write: If load(t-1) then RAM4K[address(t-1)](t) = in(t-1) + * In words: the chip always outputs the value stored at the memory + * location specified by address. If load == 1, the in value is loaded + * into the memory location specified by address. This value becomes + * available through the out output starting from the next time step. + */ + +CHIP RAM4K { + + IN in[16], load, address[12]; + OUT out[16]; + + BUILTIN RAM4K; + CLOCKED in, load; +} diff --git a/tools/builtInChips/RAM512.class b/tools/builtInChips/RAM512.class new file mode 100644 index 0000000000000000000000000000000000000000..69bff7ae05671ed0795b54349ef09eeab52db15b GIT binary patch literal 311 zcmaJ+Jxc>Y5Pfrrw|D1izKmK)1dB_WMZw01AXn%?BBGdnHA`I0?S^C({8@r1SXf&4 zqr^Q+3mKSsGw;oV_x1h$0YG3QL5L*A5|$(I1S?o&s4>(D;h{F#9T6&NcSNXWcC0uU z8XQfu2+_syu(Q9rcfhd5(Z)KVb^V~HE;re&o-KsuJx!?py?V1WFFoTz6?Xn~a+MQ0 zgHw5P@1Z!i+Bh{H{&JZuX4WX<`h>0j6$G|W?o1Yn&`t+;@==PZG!t>@=Gsj9-4V8Z n(9j15$QMK8d+fIz1RepKy+(jHQ11o7CwMuUl~+`s%NO7WoCHIV literal 0 HcmV?d00001 diff --git a/tools/builtInChips/RAM512.hdl b/tools/builtInChips/RAM512.hdl new file mode 100644 index 0000000..2a2f433 --- /dev/null +++ b/tools/builtInChips/RAM512.hdl @@ -0,0 +1,24 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: tools/builtIn/RAM512.hdl + +/** + * Memory of 512 registers, each 16-bit wide. + * The chip facilitates read and write operations, as follows: + * Read: out(t) = RAM512[address(t)](t) + * Write: If load(t-1) then RAM512[address(t-1)](t) = in(t-1) + * In words: the chip always outputs the value stored at the memory + * location specified by address. If load == 1, the in value is loaded + * into the memory location specified by address. This value becomes + * available through the out output starting from the next time step. + */ + +CHIP RAM512 { + + IN in[16], load, address[9]; + OUT out[16]; + + BUILTIN RAM512; + CLOCKED in, load; +} diff --git a/tools/builtInChips/RAM64.class b/tools/builtInChips/RAM64.class new file mode 100644 index 0000000000000000000000000000000000000000..a1fe78ab90af4332d0a4dae904dd6f871d6cad28 GIT binary patch literal 308 zcmaJ+u}T9$5Pg%x+uXUD^E9TDh|MLW~+YQMo_*sG|SXf&4 zQR1GZg$&HRnK$#8_x1h$0YIP?AwU#j1*>)N2y0kpXfVWt;6NMg4hhw?GbYqBJ5d}A z8ypEX3GCu{)b9888MZi@*d`>`4|?Wulilk1Qh2)GBgB7)UMkH?#jsF?T|Av!<%IU| zRNmZsD9)`mPEAI?TxN^8HOjaFVdwu1|IkvoGg&A?GacT^M=55~OvR;JXfqvj#@O{X m18*B39}IP$L*MP8;t|m5#z$|U?h7iP;AKgwuc$qj7r+nqJVR{& literal 0 HcmV?d00001 diff --git a/tools/builtInChips/RAM64.hdl b/tools/builtInChips/RAM64.hdl new file mode 100644 index 0000000..6f32f47 --- /dev/null +++ b/tools/builtInChips/RAM64.hdl @@ -0,0 +1,24 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: tools/builtIn/RAM64.hdl + +/** + * Memory of 64 registers, each 16-bit wide. + * The chip facilitates read and write operations, as follows: + * Read: out(t) = RAM64[address(t)](t) + * Write: If load(t-1) then RAM64[address(t-1)](t) = in(t-1) + * In words: the chip always outputs the value stored at the memory + * location specified by address. If load == 1, the in value is loaded + * into the memory location specified by address. This value becomes + * available through the out output starting from the next time step. + */ + +CHIP RAM64 { + + IN in[16], load, address[6]; + OUT out[16]; + + BUILTIN RAM64; + CLOCKED in, load; +} diff --git a/tools/builtInChips/RAM8.class b/tools/builtInChips/RAM8.class new file mode 100644 index 0000000000000000000000000000000000000000..88f106e2b625bb9699c2850f6b131f6542b2a24a GIT binary patch literal 306 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 Qh)-eto+P=F{bi2uAI7bI+W-In literal 0 HcmV?d00001 diff --git a/tools/builtInChips/ROM32K.hdl b/tools/builtInChips/ROM32K.hdl new file mode 100644 index 0000000..929f824 --- /dev/null +++ b/tools/builtInChips/ROM32K.hdl @@ -0,0 +1,30 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: tools/builtIn/ROM32K.hdl + +/** + * Read-Only memory (ROM) of 16K registers, each 16-bit wide. + * The chip is designed to facilitate data read, as follows: + * out(t) = ROM32K[address(t)](t) + * In words: the chip always outputs the value stored at the + * memory location specified by address. + * + * The built-in chip implementation has a GUI side-effect, + * showing an array-like component that displays the ROM's + * contents. The ROM32K chip is supposed to be pre-loaded with + * a machine language program. To that end, the built-in chip + * implementation also knows how to handle the "ROM32K load Xxx" + * script command, where Xxx is the name of a text file containing + * a program written in the Hack machine language. When the + * simulator encounters such a command in a test script, the code + * found in the file is loaded into the simulated ROM32K unit. + */ + +CHIP ROM32K { + + IN address[15]; + OUT out[16]; + + BUILTIN ROM32K; +} diff --git a/tools/builtInChips/Register.class b/tools/builtInChips/Register.class new file mode 100644 index 0000000000000000000000000000000000000000..3958fcd4ecd31f6dc560c2c6bbc0a9594988cc26 GIT binary patch literal 423 zcmZ8d!A`EpaP2A01r*LiXOy7O^h)Txp+csU_;Y3cB{YRFPJDM9{d15 z$~X(LF*fq7|(7(LT-Uhf+t^K1wvpORSPwNI(7tdumyHe6=-0OP`-<$ zr_TNURECjr?M`H*+y_GCY&4!Zrz7P?&hb*B32&Ev7^^GkM}*St#UI%v=Qtn~{ylNd ziK`ZAIlLXjD)AeU9+<5`dx$3AoaHZJt}`++7;}EEtIUeriF>;94tik#7Uq-jK2mG| s8l6|9jP4vpPa{*K!@Bv5Y^U}H^Ve8Nj8!)3y?K_WjV@Pnj?7YrAGG*L>;M1& literal 0 HcmV?d00001 diff --git a/tools/builtInChips/Register.hdl b/tools/builtInChips/Register.hdl new file mode 100644 index 0000000..3b81e46 --- /dev/null +++ b/tools/builtInChips/Register.hdl @@ -0,0 +1,19 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: tools/builtIn/Register.hdl + +/** + * 16-Bit register. + * If load[t-1]=1 then out[t] = in[t-1] + * else out does not change (out[t] = out[t-1]) + */ + +CHIP Register { + + IN in[16], load; + OUT out[16]; + + BUILTIN Register; + CLOCKED in, load; +} diff --git a/tools/builtInChips/RegisterWithGUI.class b/tools/builtInChips/RegisterWithGUI.class new file mode 100644 index 0000000000000000000000000000000000000000..c80208ce3124d2af6d0181ede434262dfba8d24a GIT binary patch literal 1769 zcma)7U3U{z6x}x;opw5H+9LfRRf8>>1SC+!k5Z}-LWzc2s0B+!oleGNXgZUXnH2sC zZ~g!ubS+3+vX;E@z>jjd&m@_K2V6Yl-ZSU!yU#xNo^$i+-@pF>P{5&%MO@PH89tZc z3k_fDNZ`^K(pVkEW%*c>;ff6FGJGY&*8;ez;~I)$T^CKP_ZH45K*=XAeigvu#b`;W;o2GTJu~RPGv1^VW*sY>>*z{c6 z4K6E;tU0a|tP`Bg-Bm~wy()KWR>QLncA5%fp>^GRB4bH9{H1y6M*JszNRsiU=WXD%dhxf&bc9=}7d5gzY6kY*ULJ|;wm2u5%7*E< zcJ+p5wS5JhT0+RxfU2|Q9P`ynk1e|yIG!s2t8QBdWw&ZS?g7Z6`$L1SLo<4Ahv zGdsSW87%ERkd*E#Ebh0RMo@N(b*Je^cYn_b>bygRcZb4U>mem(w0;tnyifTrpm4#n6AajO0#0#0A<-sJANpa3QMlJ-;mm2VKN(ySGQ>% zlHp{wS8@&3R$)76Ic}|2H$+rC%ar?PA7smADV$`>rk^UzYV}y{#kZ@+!G@53iVUSz z%WDn13QK*Ouz3AKxEk66NVsv#ae0PYj#TB$-f;GtY&K?{8afbhN#}}YW-e9jwS#DX zJWS?<)v(RhYhuW~{5ChHFgoZQQrm1(_99ykr}?HVf^~ryA0QSjAGL&(J7=AKwh6~& ze%(f#7EsD}q5eXwgZLAy=AR?6+ePvjM)FTFGNW}cD#kRPPU#(tiQR!NQ@(@o{%rh7 zA_;URqF*O{oW2!8CgLj{Os1Rj@!OPwhr=99xYQXhj#C3|vh}20U zrsKj$+)NLr@DZ~8l%_cgE-9>k&;UPk$oH2QNE4%Pg33?i&vx)m7bklxF=^jE>;iQQ zY`5{681`ubWGK900bgh3g2An!c?RAS+Y&-UZ%`E(a^lEv=?0~h#9 yF!(&z`F8Zt>As9q`UxhUV}5sLp^H;5dbGz|lsroPEpwdZ%*T5H7Nhiz;rI_~p literal 0 HcmV?d00001 diff --git a/tools/builtInChips/Screen.class b/tools/builtInChips/Screen.class new file mode 100644 index 0000000000000000000000000000000000000000..100ed03dc68a20edc3acb9b47e7f9458a680de3e GIT binary patch literal 1322 zcmaJ=U31e`5Ixr)2#Xt12S^NZAf+kThGGbxZ9-@WA&3S@>mdx~NhlgeL`WW62L4K? zFZ8_+?M$&dr2}s~^hb4iR#J?oGwpc1cX#jZIeT|kfBpT(I{;0zOibfU2}f|}Xx zqG{l~iDK%$AliZiTr_bBm&Lpy=2bDTnbf`%@s)^0155jH-9#D7V&5?EwSg6de7o-} zoY-jj&-;NBN8R4~L%Z2>yPg-WM$bD@=!Nm3!oC+y(D!-@xhE}JOMd9b%S^A;w-gGi z(YB{xxIyIZKI|xzx}GHWV|q)8_g3^WRG4ggG4V&h3e&av#xv)I({x_O&5@sk2l}0D zC-%04R-st4Tf$@#AaSk4q^;R?7Gtixa=lLMM~ky-|{eg{sC; z95ZlJV->eF)^J;4_J13oF@uW6I__xLxNG1WjSbw>XkcFBKJIEfz^29t0smG+4RwXe z9mm~muJakaM2-qon6QJuYdgW5FQrOZ-)Ve?d4)qy`+gAH;p&dx>1C5(ePd8J(*VJJ z$#$bbji|IPiUL1OX?Qd<7s{?IsQ1FMB`w2mcWOiN;ymGD)Q8TGmRls zqdbQ{OK*_-9r*zYKVYWu7RARy?0W;F@f!@IIKcj284eV1d<3#ikOF;+j49<81~8XI zD~NVow4!Ls)xv8WqnVqvws;sHpyimg1~{+>$|cDvJ4MhOK_w#v5Kx_8pv+m92bkE) znH%MlnJcd;HU>DDUMsfZWCr>1nzX+#PWr>W%C66nF;CxI!cZNr(Wn`K>RZAx%OH7eD=1A^&_+;@$Y`Z#9NdfPfZPR=zYrY WF;~gAl;u{kDl;ytI>h0B$KxM|eg%&J literal 0 HcmV?d00001 diff --git a/tools/builtInChips/Screen.hdl b/tools/builtInChips/Screen.hdl new file mode 100644 index 0000000..5e7837b --- /dev/null +++ b/tools/builtInChips/Screen.hdl @@ -0,0 +1,35 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: tools/builtIn/Screen.hdl + +/** + * The Screen (memory map). + * Functions exactly like a 16-bit 8K RAM: + * 1. out(t)=Screen[address(t)](t) + * 2. If load(t-1) then Screen[address(t-1)](t)=in(t-1) + * + * The built-in chip implementation has the side effect of continuously + * refreshing a visual 256 by 512 black-and-white screen, simulated + * by the simulator. Each row in the visual screen is represented + * by 32 consecutive 16-bit words, starting at the top left corner + * of the visual screen. Thus the pixel at row r from the top and + * column c from the left (0<=r<=255, 0<=c<=511) reflects the c%16 + * bit (counting from LSB to MSB) of the word found in + * Screen[r*32+c/16]. + */ + +CHIP Screen { + + IN in[16], // what to write + load, // write-enable bit + address[13]; // where to read/write + OUT out[16]; // Screen value at the given address + + BUILTIN Screen; + CLOCKED in, load; +} + + + + \ No newline at end of file diff --git a/tools/builtInChips/Xor.class b/tools/builtInChips/Xor.class new file mode 100644 index 0000000000000000000000000000000000000000..d99ad18728a943b0ae43ad1eb503cac8c766638e GIT binary patch literal 341 zcmZ9HOG*Pl5Qe`_Pcmj~%|jC($wpU677k=xi9913FeCj@Hg3>@I+8hdGr#ljO zQFok0tiVZduTQn5gv;@`bTtAxAB)Zp=EWAvog67Hi<{>;D zn>Y)P=Bi8VOr6+)7dpuV^{cZ#W#{(KeL>~lll62Ln_p)`L6GKV(JwP6c%5N)#E#v` zx7$Ji;oRCguvyJUVPmoPj(BxC9?J`P4`~nV_TDJS{tP*A zz>hL+fyDT-li8U$yJx?DKED8%*w>(-s>0AvLQO?o#g2l8f?bBvsUP{t8AHC^aTp4H zG4+UC55`2=cE@JW2G6cHPka%@3icS3sUOcpOt#G6=ulB+DBEe=^`sP1M-wdu-SR>q z(=HDJ;WAX#bn5k1joM`42gxvUtZb&)lai+l&Hvp??mpbu{eZ_Y!|??%)3FBOBH)RT z=E#$wAMwOn@kKV!FGM%Ii=*TVQ1Hw!;S})LyT=4_>u~BFdye_?)R14&& WP-+X?>r{Q6QjKC}9k1T~^Wqnv;8#ol literal 0 HcmV?d00001 diff --git a/tools/builtInVMCode/JackOSClass.class b/tools/builtInVMCode/JackOSClass.class new file mode 100644 index 0000000000000000000000000000000000000000..25df72a4693f8cfdac9990c7b9c0483bac190cd7 GIT binary patch literal 1782 zcmaKsTXWk)6vxlTcI+4@aoi>)P2Hv~mt5L9+zO>>K$X|_7Tqeza@`l9I3h7Paz>G9 zzek_o1(;!`FL~jm?Z6BlfCs(?--2+Cou*62@F3~@cK`c7yJwI6$KSvH4geKsQfymk-6N7H=OH0`QGvMhs(l1vi@AEU}KxGJe^uDXg**TzYw7%WRt zRoJSmnQmb-XpTX*;HUy6;gJnFg7jWiYwfjk?JegVf5Z z#~`itcS3BEuY+#`CyBe!uG_yCbiNtI%|jgUbO!S)8YwEhAlj{r=5DWI7w7roPI!=X zv6r*(1%p}HM?^^hK7yNB&fD4#&?!+WGI0&O1(vw%S03OXQZV$S>L`0rWC#%p|Oh@enhlhA=4Wx>v z^Zh}OtSfgjF27_q$P$gr082{oOd&clYA{qhPy-MJv8u60B}7jCPZ~VRZ$A zLMQ0;YJ;dl6~cxXQ$;~#99v$zoy=F=_%Io|sSL86K^%t>^0{$FL#K3vrG#btKboN? zf<>5xB4E*wCWd@Q;syUX=Je(vrj%kjoNZM7|{PGV*1KuOMHQ_$}nO zC4L9_U5QtaS0!FUUYGb9@^y)CAXg;bKz>i+_mMx4_(Pyy1-2+w=wpoL@XPR_6#PzhkPlOegWyDQi>R(&EFu?#-)?`wP%oR;VV~~`T-V7 z`6Y^9z#BAHXgxjtYw3v0;ZuClnDRE}*~C1fZA6$QgEQMN{j_!ROWnawu6X@N$fqeR zv{G9%LOCiF+)NJz8$ZGFe7bn+XPA5n3*};d4{2lPOA=G^KQDX-*>dvasQhHK3-||c CBy+j| literal 0 HcmV?d00001 diff --git a/tools/builtInVMCode/Keyboard.class b/tools/builtInVMCode/Keyboard.class new file mode 100644 index 0000000000000000000000000000000000000000..7366f75b8cacf7fd20daf679e331af171e618a94 GIT binary patch literal 1362 zcmaJ=OH&g;5dMY)HpJzT7*O)SCmKMBZ^Zxt5hOr_Dj*a$mt=s*vYXm$RBn3nY6{TzIGHqvsc|3n*c{2Mm;wO~FnHD+*PdxJwv{uM1zMX~PE-gvgbOfU+9$`#H65}c+Fe%WwSj_2m(nzOR#@K{hUot)?ia?P~XS>`0mtY$P_A1xXgJ{IaCTCJdii|{PvDOmN)YWaJvK+>mEEPiz%^EVx? zbB?pQq6+m!9SPJHbSd-P(>PzGI$ave_KI_DlGI{W>e7~cUPE*pLezNGUS(zDRIBCl z(jd-IH1Qvp$2Rv*DG;s3#c___L96pLJP>?^$hOhiM_!Px?b?C(>;UQ!JV-Y<5mZui zJ5b|P2An#;<9mV+i zE==QpKu`BJeD3T(1eN4DXg-`xFvTt2*wla&8>G*8rlPt?odUhx;H C%px`b literal 0 HcmV?d00001 diff --git a/tools/builtInVMCode/Math.class b/tools/builtInVMCode/Math.class new file mode 100644 index 0000000000000000000000000000000000000000..71aef914e8bb27f1170510b1a57819bea5c904e3 GIT binary patch literal 650 zcmZ`#%TC)s6g`tTc4EvUf%33vDLV%w`~j`H0jg3p0?8;{PlA<9nb~x&YjJLS&neXU2YN;A);6W$I#bbpqR5o%q}|$6Sx@o7eqUuLydx=}*X2^aAEsRs zkzqdk^o5UjBzfA4Vy#5ld$VJ9oO*=sB3R*8a|^5VZ8rTRPz5ua&|RZfohqYRS^EX{ z)9?hl5A@_1!6P*RuTU-)O3(j}ny)XeVEI3a0h5?2y6Py=q4|E$zqqHTi7t)pmkW9( z_y)I8vaeD8><6;woFSn_gX+}Vco?}*XeRvN5>D{1@9ck?d}<2r-REe9JNFf;X8BoK Qf!v+3`}sAjug?PDFF62g&;S4c literal 0 HcmV?d00001 diff --git a/tools/builtInVMCode/Memory.class b/tools/builtInVMCode/Memory.class new file mode 100644 index 0000000000000000000000000000000000000000..e9bb7ad3ff815685aab0771a85044a2f062fc3e5 GIT binary patch literal 788 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 Z4AZPoRKsAstMg>m|MAfx@h^){Ow#}W literal 0 HcmV?d00001 diff --git a/tools/builtInVMCode/String.class b/tools/builtInVMCode/String.class new file mode 100644 index 0000000000000000000000000000000000000000..98c7f58149fb27f35a7a0503ff584ecd25d717fc GIT binary patch literal 1630 zcmZ`&U31$+6g{dWOL3IMapHbhQGt{Xxp8ACG*FVbq$Z^?z!jgKKtkKQvem*$zl#= z9T&35V_8QYbbKlfp9yn0i_ftt%$kOE4OI!5HOF%z z+Q@dPEkUXIJx+(4o7;4-TcwtS?B@4f-j5vL3pHGkp!J-v?}wBo66jLK<=$?zN1N^* z3pOGNs@-apY7!j{6FNkyi3z(U?&VVo~Pcf6?0+yPa|5J=rS zLZy0|#}68gCwSU%l^xdouGME<@=W&p!H&!C4E%^2m`8y~wC;z?JP7>2z!%t%U^Mx@ zAKYJNuIqOVTm>IQD$ zYY7mZhA>SHHw{?0W#BAsOPJpoI4;p|H-)k(ii9)&ci*4}ZnbJI3quJ@*XdMgH#heO zE{pu2vc-da$72z1H*W|2Zou}p_5%NaQJ>UIm)f{C@Va6^#Mo}U&Uv*irZ{;JI1x{} z6tdUrVszPnv)++YvE$54G9L-1T`P^DB?_$4gd#uDgqpO+^C)9RFiCQ@{CI+eW7r9D z<>UNsE^QLgH%D`?3lP7Px_GYjQVs9Wub89%1WbXbqd@i~on~pJNkTpU2-4pojtQK? zX`G0|709#$&J};dWd1~M`VjJVUMZ>_+N_zyL#U?Gk;U>?eEAGng%FDbV`3qNnWt4$ z(eoL)B5x;!{+nx!O3tOZT2Y}Q+Boc4yp_T((<&3}Vv@RU{tDe(_#hPgC)N+9?;*AxIqcflB3{kLzorL=Q(i)Li_4=yA>BhlJk* V&L0>3@hG}9iq52W<=kQt#4D3PGtK}2 literal 0 HcmV?d00001 diff --git a/tools/builtInVMCode/Sys.class b/tools/builtInVMCode/Sys.class new file mode 100644 index 0000000000000000000000000000000000000000..0c15f1b9fb855912121996b6ab5892b4b3bb8bea GIT binary patch literal 1885 zcmZ`(%X1V(82?S!WIJIKk~TnCAU5(a??pvaf+%@l0=t0OkO)4YceXbfn3-OBX7ZrQ zljXsaCr^6ulq#z{P*y?IDm__c`S*CX{CYN<5D16gucyEF_jULD^WSfO04P9rU>N5a z-s!*)-eq`?;R3@r!$pSo87^7z2MizD^>PO$Fqy>^!!*McEBeUN48ttLRfcN}MTQc? zb%q-ZHyJ)=m}4k2%ro3#SYTLW_=Mp$!<{TX?Z9c9{4=|LZt06G?q+e%LEA+y^x{hn z_6-a!ILJ)us-ndT9dt~uxvCy}I*hWABwm(2i8HIxYBK|6>(Z)>(I$rxj5^p~Qh_$> zW7a>13S0;6B^fWL0#cVoF`IVN7BAx+QC<>0}!z1??k;8`PzhyvTZ1*2N=bw1dK=3_~3YR|hmFC8CFkG)fpvGF=l=gldVB zttb&DK}8t{XD<7`b|tkUg7hR_maTI}$-2-h%G7+lN_EfrJ_Ykd-CI*WWz?qXg*K3b zzNXIiLiLO)a&WwI_KIXr-$LjdyXsU)5s&xQ*n z`?d<@b*l2nZrN4oKDbey^kqc4;ThT$7E04W;>%c@!n`s;dK3$#tvvI~Mz6|>Pj@Qk zO5eYdgs#1F4h{|!pD%KJuuNuNXdg7)--_scER<+QdlWEhD`=DTx(X@a$Q~AhFI3$a?YILL>qZI(y#p`WjpGFU z8Hec~3$%iwW0ZJ|c0IH@Ryy<)&SR@bJN<}9(UPjqr%GUmw`^kHBG07UnsQsp*_2tz z?VIRm#5hZFGUWRPMSF8Q8sCc6#`o`O`4-M?^Rc z622mQL->|p?Jd3|d{6k1utE5l@C)Hr!k>h{cyDn7HGYuz9zR5UhaV=M=Y7Q2`4Qq7 zo+qB*M~N@;W5nnAapJSQpLmGBN_>h7;{KHT_zC*v{59enKS|uiPZfX1>Dy0nhQIy< N1H*(T7~Es3_#fsb;cfr` literal 0 HcmV?d00001