From 4363a50662ba21907bacf371c606b2db22f044c1 Mon Sep 17 00:00:00 2001 From: k0rrluna Date: Fri, 20 Dec 2024 21:28:15 +0300 Subject: [PATCH] subtraction & multiplier --- gowin/bibp/bibp.gprj | 10 - gowin/bibp/bibp.gprj.user | 13 - gowin/bibp/impl/bibp_process_config.json | 88 - gowin/bibp/impl/gwsynthesis/bibp.log | 14 - gowin/bibp/impl/gwsynthesis/bibp.prj | 19 - gowin/bibp/impl/temp/rtl_parser_arg.json | 17 - gowin/bibp/src/bibp.v | 21 - gowin/fpga_project/fpga_project.gprj | 14 - gowin/fpga_project/fpga_project.gprj.user | 24 - .../impl/fpga_project_process_config.json | 88 - .../impl/gwsynthesis/fpga_project.log | 38 - .../impl/gwsynthesis/fpga_project.prj | 22 - .../impl/gwsynthesis/fpga_project.vg | 50 - .../gwsynthesis/fpga_project_syn.rpt.html | 170 - .../fpga_project_syn_resource.html | 46 - .../impl/gwsynthesis/fpga_project_syn_rsc.xml | 2 - gowin/fpga_project/impl/pnr/cmd.do | 13 - gowin/fpga_project/impl/pnr/device.cfg | 21 - gowin/fpga_project/impl/pnr/fpga_project.bin | Bin 577178 -> 0 bytes gowin/fpga_project/impl/pnr/fpga_project.binx | Bin 577699 -> 0 bytes gowin/fpga_project/impl/pnr/fpga_project.db | Bin 480 -> 0 bytes gowin/fpga_project/impl/pnr/fpga_project.fs | 1378 -- gowin/fpga_project/impl/pnr/fpga_project.log | 29 - .../impl/pnr/fpga_project.pin.html | 3573 ---- .../impl/pnr/fpga_project.power.html | 272 - .../impl/pnr/fpga_project.rpt.html | 3819 ----- .../impl/pnr/fpga_project.rpt.txt | 345 - .../impl/pnr/fpga_project.timing_paths | 0 .../impl/pnr/fpga_project.tr.html | 10 - .../impl/pnr/fpga_project_tr_cata.html | 132 - .../impl/pnr/fpga_project_tr_content.html | 257 - .../fpga_project/impl/temp/rtl_parser.result | 82 - .../impl/temp/rtl_parser_arg.json | 29 - gowin/fpga_project/src/bit3adder.v | 13 - gowin/fpga_project/src/fpga_project.cst | 15 - gowin/fpga_project/src/fulladder.v | 13 - gowin/fpga_project/src/halfadder.v | 9 - gowin/fpga_project/src/ledTest.v | 31 - .../impl/gwsynthesis/seq_light_test.log | 25 - .../impl/gwsynthesis/seq_light_test.prj | 19 - .../impl/gwsynthesis/seq_light_test.vg | 275 - .../gwsynthesis/seq_light_test_syn.rpt.html | 1295 -- .../seq_light_test_syn_resource.html | 46 - .../gwsynthesis/seq_light_test_syn_rsc.xml | 2 - gowin/seq_light_test/impl/pnr/cmd.do | 13 - gowin/seq_light_test/impl/pnr/device.cfg | 21 - .../impl/pnr/seq_light_test.bin | Bin 577178 -> 0 bytes .../impl/pnr/seq_light_test.binx | Bin 577699 -> 0 bytes .../seq_light_test/impl/pnr/seq_light_test.db | Bin 2200 -> 0 bytes .../seq_light_test/impl/pnr/seq_light_test.fs | 1378 -- .../impl/pnr/seq_light_test.log | 29 - .../impl/pnr/seq_light_test.pin.html | 3537 ---- .../impl/pnr/seq_light_test.power.html | 276 - .../impl/pnr/seq_light_test.rpt.html | 3793 ----- .../impl/pnr/seq_light_test.rpt.txt | 345 - .../impl/pnr/seq_light_test.timing_paths | 941 -- .../impl/pnr/seq_light_test.tr.html | 10 - .../impl/pnr/seq_light_test_tr_cata.html | 132 - .../impl/pnr/seq_light_test_tr_content.html | 13983 ---------------- .../impl/seq_light_test_process_config.json | 88 - .../impl/temp/rtl_parser.result | 10 - .../impl/temp/rtl_parser_arg.json | 17 - gowin/seq_light_test/impl/temp/style.css | 0 gowin/seq_light_test/seq_light_test.gprj | 12 - gowin/seq_light_test/seq_light_test.gprj.user | 24 - gowin/seq_light_test/src/seqBlink.v | 36 - gowin/seq_light_test/src/seqBlinkTB.v | 24 - gowin/seq_light_test/src/seq_light_test.cst | 19 - iverilog/tobb/lab2/HammingDistance/ham.vcd | 38 - iverilog/tobb/lab2/HammingDistance/hamming | 83 - iverilog/tobb/lab2/HammingDistance/hamming.v | 17 - iverilog/tobb/lab2/HammingDistance/htb.v | 20 - iverilog/tobb/lab2/hadmp.vcd | 40 - iverilog/tobb/lab2/halfadder | 59 - iverilog/tobb/lab2/halfadder.v | 9 - iverilog/tobb/lab2/halfaddertb.v | 18 - iverilog/tobb/lab7tetris/a.out | 202 - iverilog/tobb/lab7tetris/obj_dir/Vtb | Bin 164304 -> 0 bytes iverilog/tobb/lab7tetris/obj_dir/Vtb.cpp | 92 - iverilog/tobb/lab7tetris/obj_dir/Vtb.h | 72 - iverilog/tobb/lab7tetris/obj_dir/Vtb.mk | 65 - iverilog/tobb/lab7tetris/obj_dir/Vtb__ALL.a | Bin 25372 -> 0 bytes iverilog/tobb/lab7tetris/obj_dir/Vtb__ALL.cpp | 10 - iverilog/tobb/lab7tetris/obj_dir/Vtb__ALL.d | 12 - iverilog/tobb/lab7tetris/obj_dir/Vtb__ALL.o | Bin 22592 -> 0 bytes .../tobb/lab7tetris/obj_dir/Vtb__Syms.cpp | 26 - iverilog/tobb/lab7tetris/obj_dir/Vtb__Syms.h | 37 - .../tobb/lab7tetris/obj_dir/Vtb___024root.h | 52 - .../Vtb___024root__DepSet_ha183790c__0.cpp | 201 - ...b___024root__DepSet_ha183790c__0__Slow.cpp | 165 - .../Vtb___024root__DepSet_hfe20aad3__0.cpp | 31 - ...b___024root__DepSet_hfe20aad3__0__Slow.cpp | 25 - .../obj_dir/Vtb___024root__Slow.cpp | 26 - .../tobb/lab7tetris/obj_dir/Vtb__main.cpp | 34 - iverilog/tobb/lab7tetris/obj_dir/Vtb__ver.d | 1 - .../tobb/lab7tetris/obj_dir/Vtb__verFiles.dat | 20 - .../tobb/lab7tetris/obj_dir/Vtb_classes.mk | 54 - iverilog/tobb/lab7tetris/obj_dir/verilated.d | 12 - iverilog/tobb/lab7tetris/obj_dir/verilated.o | Bin 197480 -> 0 bytes .../lab7tetris/obj_dir/verilated_threads.d | 7 - .../lab7tetris/obj_dir/verilated_threads.o | Bin 30832 -> 0 bytes .../lab7tetris/obj_dir/verilated_timing.d | 7 - .../lab7tetris/obj_dir/verilated_timing.o | Bin 8664 -> 0 bytes iverilog/tobb/lab7tetris/run.sh | 5 - iverilog/tobb/lab7tetris/tb.v | 45 - iverilog/tobb/lab7tetris/tetris.v | 41 - .../tobb/labs/lab2/impl/gwsynthesis/lab2.log | 24 - .../tobb/labs/lab2/impl/gwsynthesis/lab2.prj | 19 - .../tobb/labs/lab2/impl/gwsynthesis/lab2.vg | 76 - .../lab2/impl/gwsynthesis/lab2_syn.rpt.html | 167 - .../impl/gwsynthesis/lab2_syn_resource.html | 46 - .../lab2/impl/gwsynthesis/lab2_syn_rsc.xml | 2 - .../labs/lab2/impl/lab2_process_config.json | 88 - .../labs/lab2/impl/temp/rtl_parser.result | 36 - .../labs/lab2/impl/temp/rtl_parser_arg.json | 29 - iverilog/tobb/labs/lab2/lab2.gprj | 13 - iverilog/tobb/labs/lab2/lab2.gprj.user | 17 - iverilog/tobb/labs/lab2/src/BitM.v | 19 - iverilog/tobb/labs/lab2/src/BitM_tb.v | 26 - iverilog/tobb/labs/lab2/src/bdmp.vcd | 58 - iverilog/tobb/labs/lab2/src/blab2 | 70 - iverilog/tobb/labs/lab2/src/dmp.vcd | 43 - iverilog/tobb/labs/lab2/src/fdmp.vcd | 75 - iverilog/tobb/labs/lab2/src/flab2 | 106 - iverilog/tobb/labs/lab2/src/ftb.v | 29 - iverilog/tobb/labs/lab2/src/fullAdder.v | 20 - iverilog/tobb/labs/lab2/src/halfAdder.v | 11 - iverilog/tobb/labs/lab2/src/lab2 | 61 - iverilog/tobb/labs/lab2/src/tb.v | 24 - .../labs/lab2_prep/impl/gwsynthesis/lab2.log | 40 - .../labs/lab2_prep/impl/gwsynthesis/lab2.prj | 20 - .../labs/lab2_prep/impl/gwsynthesis/lab2.vg | 25 - .../impl/gwsynthesis/lab2_syn.rpt.html | 144 - .../impl/gwsynthesis/lab2_syn_resource.html | 46 - .../impl/gwsynthesis/lab2_syn_rsc.xml | 2 - .../lab2_prep/impl/lab2_process_config.json | 88 - .../lab2_prep/impl/temp/rtl_parser.result | 20 - .../lab2_prep/impl/temp/rtl_parser_arg.json | 21 - iverilog/tobb/labs/lab2_prep/lab2.gprj | 12 - iverilog/tobb/labs/lab2_prep/lab2.gprj.user | 17 - iverilog/tobb/labs/lab2_prep/src/dmp.vcd | 77 - iverilog/tobb/labs/lab2_prep/src/lab | 126 - iverilog/tobb/labs/lab2_prep/src/lab2 | 43 - iverilog/tobb/labs/lab2_prep/src/lab2.v | 24 - iverilog/tobb/labs/lab2_prep/src/labwave | 43 - iverilog/tobb/labs/lab2_prep/src/tb.v | 32 - .../tobb/labs/lab3/impl/gwsynthesis/lab3.log | 27 - .../tobb/labs/lab3/impl/gwsynthesis/lab3.prj | 21 - .../tobb/labs/lab3/impl/gwsynthesis/lab3.vg | 144 - .../lab3/impl/gwsynthesis/lab3_syn.rpt.html | 173 - .../impl/gwsynthesis/lab3_syn_resource.html | 66 - .../lab3/impl/gwsynthesis/lab3_syn_rsc.xml | 5 - .../labs/lab3/impl/lab3_process_config.json | 88 - iverilog/tobb/labs/lab3/impl/pnr/cmd.do | 12 - iverilog/tobb/labs/lab3/impl/pnr/device.cfg | 21 - iverilog/tobb/labs/lab3/impl/pnr/lab3.bin | Bin 577178 -> 0 bytes iverilog/tobb/labs/lab3/impl/pnr/lab3.binx | Bin 577680 -> 0 bytes iverilog/tobb/labs/lab3/impl/pnr/lab3.db | Bin 580 -> 0 bytes iverilog/tobb/labs/lab3/impl/pnr/lab3.fs | 1378 -- iverilog/tobb/labs/lab3/impl/pnr/lab3.log | 27 - .../tobb/labs/lab3/impl/pnr/lab3.pin.html | 3591 ---- .../tobb/labs/lab3/impl/pnr/lab3.power.html | 266 - .../tobb/labs/lab3/impl/pnr/lab3.rpt.html | 3837 ----- iverilog/tobb/labs/lab3/impl/pnr/lab3.rpt.txt | 346 - .../tobb/labs/lab3/impl/pnr/lab3.timing_paths | 0 iverilog/tobb/labs/lab3/impl/pnr/lab3.tr.html | 10 - .../tobb/labs/lab3/impl/pnr/lab3_tr_cata.html | 132 - .../labs/lab3/impl/pnr/lab3_tr_content.html | 249 - .../labs/lab3/impl/temp/rtl_parser.result | 54 - .../labs/lab3/impl/temp/rtl_parser_arg.json | 25 - iverilog/tobb/labs/lab3/impl/temp/style.css | 0 iverilog/tobb/labs/lab3/lab3.gprj | 14 - iverilog/tobb/labs/lab3/lab3.gprj.user | 24 - iverilog/tobb/labs/lab3/src/3bit | 217 - iverilog/tobb/labs/lab3/src/3dmp.vcd | 142 - iverilog/tobb/labs/lab3/src/Adder3Bit | 140 - iverilog/tobb/labs/lab3/src/Adder3Bit.v | 15 - iverilog/tobb/labs/lab3/src/Admp.vcd | 100 - iverilog/tobb/labs/lab3/src/dmp.vcd | 234 - iverilog/tobb/labs/lab3/src/fullAdder.v | 12 - iverilog/tobb/labs/lab3/src/halfAdder.v | 9 - iverilog/tobb/labs/lab3/src/mtb.v | 23 - iverilog/tobb/labs/lab3/src/mult2 | 169 - iverilog/tobb/labs/lab3/src/mult2bit.v | 17 - iverilog/tobb/labs/lab3/src/tb.v | 31 - iverilog/tobb/labs/lab3_solution/adder3bit.v | 13 - iverilog/tobb/labs/lab3_solution/fa.v | 12 - iverilog/tobb/labs/lab3_solution/ha.v | 9 - iverilog/tobb/labs/lab3_solution/run.sh | 3 - iverilog/tobb/labs/lab3_solution/tb.v | 31 - iverilog/tobb/labs/lab4/lab4.v | 22 - iverilog/tobb/labs/lab4/lab4o | 114 - iverilog/tobb/labs/lab4/lab4tb.v | 22 - iverilog/tobb/labs/lab4/lab4v.vcd | 41 - iverilog/tobb/labs/lab5/1.v | 28 - iverilog/tobb/labs/lab5/lab5 | 68 - iverilog/tobb/labs/lab5/lab5t.vcd | 122 - iverilog/tobb/labs/lab5/lab5v.vcd | 98 - iverilog/tobb/labs/lab5/seqBlink.v | 36 - iverilog/tobb/labs/lab5/seqBlinkTB.v | 24 - iverilog/tobb/labs/lab5/timer.v | 30 - iverilog/tobb/labs/lab5/timerTB.v | 27 - iverilog/tobb/labs/lab5/vlab5 | 137 - iverilog/tobb/labs/lab6/bibp.v | 35 - iverilog/tobb/labs/lab6/bibpTB.v | 16 - iverilog/tobb/labs/lab6/obj_dir/Vbibp | Bin 164136 -> 0 bytes iverilog/tobb/labs/lab6/obj_dir/Vbibp.cpp | 92 - iverilog/tobb/labs/lab6/obj_dir/Vbibp.h | 72 - iverilog/tobb/labs/lab6/obj_dir/Vbibp.mk | 65 - iverilog/tobb/labs/lab6/obj_dir/VbibpTB.cpp | 92 - iverilog/tobb/labs/lab6/obj_dir/VbibpTB.h | 72 - iverilog/tobb/labs/lab6/obj_dir/VbibpTB.mk | 65 - .../tobb/labs/lab6/obj_dir/VbibpTB__Syms.cpp | 26 - .../tobb/labs/lab6/obj_dir/VbibpTB__Syms.h | 37 - .../labs/lab6/obj_dir/VbibpTB___024root.h | 39 - ...VbibpTB___024root__DepSet_h31122c8e__0.cpp | 180 - ...B___024root__DepSet_h31122c8e__0__Slow.cpp | 117 - ...VbibpTB___024root__DepSet_h7f8acf28__0.cpp | 43 - ...B___024root__DepSet_h7f8acf28__0__Slow.cpp | 25 - .../lab6/obj_dir/VbibpTB___024root__Slow.cpp | 26 - .../tobb/labs/lab6/obj_dir/VbibpTB__main.cpp | 34 - .../tobb/labs/lab6/obj_dir/VbibpTB_classes.mk | 54 - iverilog/tobb/labs/lab6/obj_dir/Vbibp__ALL.a | Bin 25518 -> 0 bytes .../tobb/labs/lab6/obj_dir/Vbibp__ALL.cpp | 10 - iverilog/tobb/labs/lab6/obj_dir/Vbibp__ALL.d | 12 - iverilog/tobb/labs/lab6/obj_dir/Vbibp__ALL.o | Bin 22848 -> 0 bytes .../tobb/labs/lab6/obj_dir/Vbibp__Syms.cpp | 26 - iverilog/tobb/labs/lab6/obj_dir/Vbibp__Syms.h | 37 - .../tobb/labs/lab6/obj_dir/Vbibp___024root.h | 39 - .../Vbibp___024root__DepSet_h1791c79f__0.cpp | 43 - ...p___024root__DepSet_h1791c79f__0__Slow.cpp | 25 - .../Vbibp___024root__DepSet_h1fed60c4__0.cpp | 163 - ...p___024root__DepSet_h1fed60c4__0__Slow.cpp | 117 - .../lab6/obj_dir/Vbibp___024root__Slow.cpp | 26 - .../tobb/labs/lab6/obj_dir/Vbibp__main.cpp | 34 - iverilog/tobb/labs/lab6/obj_dir/Vbibp__ver.d | 1 - .../labs/lab6/obj_dir/Vbibp__verFiles.dat | 20 - .../tobb/labs/lab6/obj_dir/Vbibp_classes.mk | 54 - iverilog/tobb/labs/lab6/obj_dir/verilated.d | 12 - iverilog/tobb/labs/lab6/obj_dir/verilated.o | Bin 197480 -> 0 bytes .../labs/lab6/obj_dir/verilated_threads.d | 7 - .../labs/lab6/obj_dir/verilated_threads.o | Bin 30832 -> 0 bytes .../tobb/labs/lab6/obj_dir/verilated_timing.d | 7 - .../tobb/labs/lab6/obj_dir/verilated_timing.o | Bin 8664 -> 0 bytes iverilog/tobb/labs/lab6/vbibp.vcd | 26 - iverilog/tobb/labs/lab6/vvbibp | 129 - project0.2/ALU | 1451 ++ project0.2/ALU.v | 57 + project0.2/ALU.vcd | 1656 ++ project0.2/ALUTB.v | 36 + project0.2/addition.v | 20 + project0.2/arithmeticUnit.v | 29 + project0.2/fulladder.v | 12 + project0.2/fullsubtraction.v | 12 + project0.2/halfadder.v | 9 + project0.2/halfsubtraction.v | 12 + project0.2/logicUnit | 288 + project0.2/logicUnit.v | 39 + project0.2/logicUnit.vcd | 150 + project0.2/logicUnitTB.v | 37 + project0.2/multiplier | 957 ++ project0.2/multiplier.v | 76 + project0.2/multiplier.vcd | 769 + project0.2/multiplierTB.v | 22 + project0.2/opCode | 111 + project0.2/opCode.v | 25 + project0.2/opCode.vcd | 92 + project0.2/opCodeTB.v | 26 + project0.2/overflowDetect.v | 29 + project0.2/subtraction | 331 + project0.2/subtraction.v | 27 + project0.2/subtraction.vcd | 312 + project0.2/subtractionTB.v | 42 + tests/a.out | 60 - tests/dmp.vcd | 40 - tests/hello.v | 9 - tests/hello_tb.v | 17 - tests/obj_dir/Vtest2.cpp | 92 - tests/obj_dir/Vtest2.h | 72 - tests/obj_dir/Vtest2.mk | 65 - tests/obj_dir/Vtest2__Syms.cpp | 26 - tests/obj_dir/Vtest2__Syms.h | 37 - tests/obj_dir/Vtest2___024root.h | 36 - .../Vtest2___024root__DepSet_h3c5fcca7__0.cpp | 105 - ...2___024root__DepSet_h3c5fcca7__0__Slow.cpp | 62 - .../Vtest2___024root__DepSet_hef21559d__0.cpp | 43 - tests/obj_dir/Vtest2___024root__Slow.cpp | 26 - tests/obj_dir/Vtest2__main.cpp | 34 - tests/obj_dir/Vtest2__ver.d | 1 - tests/obj_dir/Vtest2__verFiles.dat | 19 - tests/obj_dir/Vtest2_classes.mk | 53 - tests/test/a.out | 65 - tests/test/dmp.vcd | 48 - tests/test/tb.v | 29 - tests/test/test.v | 20 - tests/test2 | 51 - tests/test2.v | 8 - tests/test2Tb.v | 16 - tests/test2v.vcd | 26 - 299 files changed, 6627 insertions(+), 55786 deletions(-) delete mode 100644 gowin/bibp/bibp.gprj delete mode 100644 gowin/bibp/bibp.gprj.user delete mode 100644 gowin/bibp/impl/bibp_process_config.json delete mode 100644 gowin/bibp/impl/gwsynthesis/bibp.log delete mode 100644 gowin/bibp/impl/gwsynthesis/bibp.prj delete mode 100644 gowin/bibp/impl/temp/rtl_parser_arg.json delete mode 100644 gowin/bibp/src/bibp.v delete mode 100644 gowin/fpga_project/fpga_project.gprj delete mode 100644 gowin/fpga_project/fpga_project.gprj.user delete mode 100644 gowin/fpga_project/impl/fpga_project_process_config.json delete mode 100644 gowin/fpga_project/impl/gwsynthesis/fpga_project.log delete mode 100644 gowin/fpga_project/impl/gwsynthesis/fpga_project.prj delete mode 100644 gowin/fpga_project/impl/gwsynthesis/fpga_project.vg delete mode 100644 gowin/fpga_project/impl/gwsynthesis/fpga_project_syn.rpt.html delete mode 100644 gowin/fpga_project/impl/gwsynthesis/fpga_project_syn_resource.html delete mode 100644 gowin/fpga_project/impl/gwsynthesis/fpga_project_syn_rsc.xml delete mode 100644 gowin/fpga_project/impl/pnr/cmd.do delete mode 100644 gowin/fpga_project/impl/pnr/device.cfg delete mode 100644 gowin/fpga_project/impl/pnr/fpga_project.bin delete mode 100644 gowin/fpga_project/impl/pnr/fpga_project.binx delete mode 100644 gowin/fpga_project/impl/pnr/fpga_project.db delete mode 100644 gowin/fpga_project/impl/pnr/fpga_project.fs delete mode 100644 gowin/fpga_project/impl/pnr/fpga_project.log delete mode 100644 gowin/fpga_project/impl/pnr/fpga_project.pin.html delete mode 100644 gowin/fpga_project/impl/pnr/fpga_project.power.html delete mode 100644 gowin/fpga_project/impl/pnr/fpga_project.rpt.html delete mode 100644 gowin/fpga_project/impl/pnr/fpga_project.rpt.txt delete mode 100644 gowin/fpga_project/impl/pnr/fpga_project.timing_paths delete mode 100644 gowin/fpga_project/impl/pnr/fpga_project.tr.html delete mode 100644 gowin/fpga_project/impl/pnr/fpga_project_tr_cata.html delete mode 100644 gowin/fpga_project/impl/pnr/fpga_project_tr_content.html delete mode 100644 gowin/fpga_project/impl/temp/rtl_parser.result delete mode 100644 gowin/fpga_project/impl/temp/rtl_parser_arg.json delete mode 100644 gowin/fpga_project/src/bit3adder.v delete mode 100644 gowin/fpga_project/src/fpga_project.cst delete mode 100644 gowin/fpga_project/src/fulladder.v delete mode 100644 gowin/fpga_project/src/halfadder.v delete mode 100644 gowin/fpga_project/src/ledTest.v delete mode 100644 gowin/seq_light_test/impl/gwsynthesis/seq_light_test.log delete mode 100644 gowin/seq_light_test/impl/gwsynthesis/seq_light_test.prj delete mode 100644 gowin/seq_light_test/impl/gwsynthesis/seq_light_test.vg delete mode 100644 gowin/seq_light_test/impl/gwsynthesis/seq_light_test_syn.rpt.html delete mode 100644 gowin/seq_light_test/impl/gwsynthesis/seq_light_test_syn_resource.html delete mode 100644 gowin/seq_light_test/impl/gwsynthesis/seq_light_test_syn_rsc.xml delete mode 100644 gowin/seq_light_test/impl/pnr/cmd.do delete mode 100644 gowin/seq_light_test/impl/pnr/device.cfg delete mode 100644 gowin/seq_light_test/impl/pnr/seq_light_test.bin delete mode 100644 gowin/seq_light_test/impl/pnr/seq_light_test.binx delete mode 100644 gowin/seq_light_test/impl/pnr/seq_light_test.db delete mode 100644 gowin/seq_light_test/impl/pnr/seq_light_test.fs delete mode 100644 gowin/seq_light_test/impl/pnr/seq_light_test.log delete mode 100644 gowin/seq_light_test/impl/pnr/seq_light_test.pin.html delete mode 100644 gowin/seq_light_test/impl/pnr/seq_light_test.power.html delete mode 100644 gowin/seq_light_test/impl/pnr/seq_light_test.rpt.html delete mode 100644 gowin/seq_light_test/impl/pnr/seq_light_test.rpt.txt delete mode 100644 gowin/seq_light_test/impl/pnr/seq_light_test.timing_paths delete mode 100644 gowin/seq_light_test/impl/pnr/seq_light_test.tr.html delete mode 100644 gowin/seq_light_test/impl/pnr/seq_light_test_tr_cata.html delete mode 100644 gowin/seq_light_test/impl/pnr/seq_light_test_tr_content.html delete mode 100644 gowin/seq_light_test/impl/seq_light_test_process_config.json delete mode 100644 gowin/seq_light_test/impl/temp/rtl_parser.result delete mode 100644 gowin/seq_light_test/impl/temp/rtl_parser_arg.json delete mode 100644 gowin/seq_light_test/impl/temp/style.css delete mode 100644 gowin/seq_light_test/seq_light_test.gprj delete mode 100644 gowin/seq_light_test/seq_light_test.gprj.user delete mode 100644 gowin/seq_light_test/src/seqBlink.v delete mode 100644 gowin/seq_light_test/src/seqBlinkTB.v delete mode 100644 gowin/seq_light_test/src/seq_light_test.cst delete mode 100644 iverilog/tobb/lab2/HammingDistance/ham.vcd delete mode 100644 iverilog/tobb/lab2/HammingDistance/hamming delete mode 100644 iverilog/tobb/lab2/HammingDistance/hamming.v delete mode 100644 iverilog/tobb/lab2/HammingDistance/htb.v delete mode 100644 iverilog/tobb/lab2/hadmp.vcd delete mode 100644 iverilog/tobb/lab2/halfadder delete mode 100644 iverilog/tobb/lab2/halfadder.v delete mode 100644 iverilog/tobb/lab2/halfaddertb.v delete mode 100644 iverilog/tobb/lab7tetris/a.out delete mode 100644 iverilog/tobb/lab7tetris/obj_dir/Vtb delete mode 100644 iverilog/tobb/lab7tetris/obj_dir/Vtb.cpp delete mode 100644 iverilog/tobb/lab7tetris/obj_dir/Vtb.h delete mode 100644 iverilog/tobb/lab7tetris/obj_dir/Vtb.mk delete mode 100644 iverilog/tobb/lab7tetris/obj_dir/Vtb__ALL.a delete mode 100644 iverilog/tobb/lab7tetris/obj_dir/Vtb__ALL.cpp delete mode 100644 iverilog/tobb/lab7tetris/obj_dir/Vtb__ALL.d delete mode 100644 iverilog/tobb/lab7tetris/obj_dir/Vtb__ALL.o delete mode 100644 iverilog/tobb/lab7tetris/obj_dir/Vtb__Syms.cpp delete mode 100644 iverilog/tobb/lab7tetris/obj_dir/Vtb__Syms.h delete mode 100644 iverilog/tobb/lab7tetris/obj_dir/Vtb___024root.h delete mode 100644 iverilog/tobb/lab7tetris/obj_dir/Vtb___024root__DepSet_ha183790c__0.cpp delete mode 100644 iverilog/tobb/lab7tetris/obj_dir/Vtb___024root__DepSet_ha183790c__0__Slow.cpp delete mode 100644 iverilog/tobb/lab7tetris/obj_dir/Vtb___024root__DepSet_hfe20aad3__0.cpp delete mode 100644 iverilog/tobb/lab7tetris/obj_dir/Vtb___024root__DepSet_hfe20aad3__0__Slow.cpp delete mode 100644 iverilog/tobb/lab7tetris/obj_dir/Vtb___024root__Slow.cpp delete mode 100644 iverilog/tobb/lab7tetris/obj_dir/Vtb__main.cpp delete mode 100644 iverilog/tobb/lab7tetris/obj_dir/Vtb__ver.d delete mode 100644 iverilog/tobb/lab7tetris/obj_dir/Vtb__verFiles.dat delete mode 100644 iverilog/tobb/lab7tetris/obj_dir/Vtb_classes.mk delete mode 100644 iverilog/tobb/lab7tetris/obj_dir/verilated.d delete mode 100644 iverilog/tobb/lab7tetris/obj_dir/verilated.o delete mode 100644 iverilog/tobb/lab7tetris/obj_dir/verilated_threads.d delete mode 100644 iverilog/tobb/lab7tetris/obj_dir/verilated_threads.o delete mode 100644 iverilog/tobb/lab7tetris/obj_dir/verilated_timing.d delete mode 100644 iverilog/tobb/lab7tetris/obj_dir/verilated_timing.o delete mode 100644 iverilog/tobb/lab7tetris/run.sh delete mode 100644 iverilog/tobb/lab7tetris/tb.v delete mode 100644 iverilog/tobb/lab7tetris/tetris.v delete mode 100644 iverilog/tobb/labs/lab2/impl/gwsynthesis/lab2.log delete mode 100644 iverilog/tobb/labs/lab2/impl/gwsynthesis/lab2.prj delete mode 100644 iverilog/tobb/labs/lab2/impl/gwsynthesis/lab2.vg delete mode 100644 iverilog/tobb/labs/lab2/impl/gwsynthesis/lab2_syn.rpt.html delete mode 100644 iverilog/tobb/labs/lab2/impl/gwsynthesis/lab2_syn_resource.html delete mode 100644 iverilog/tobb/labs/lab2/impl/gwsynthesis/lab2_syn_rsc.xml delete mode 100644 iverilog/tobb/labs/lab2/impl/lab2_process_config.json delete mode 100644 iverilog/tobb/labs/lab2/impl/temp/rtl_parser.result delete mode 100644 iverilog/tobb/labs/lab2/impl/temp/rtl_parser_arg.json delete mode 100644 iverilog/tobb/labs/lab2/lab2.gprj delete mode 100644 iverilog/tobb/labs/lab2/lab2.gprj.user delete mode 100644 iverilog/tobb/labs/lab2/src/BitM.v delete mode 100644 iverilog/tobb/labs/lab2/src/BitM_tb.v delete mode 100644 iverilog/tobb/labs/lab2/src/bdmp.vcd delete mode 100644 iverilog/tobb/labs/lab2/src/blab2 delete mode 100644 iverilog/tobb/labs/lab2/src/dmp.vcd delete mode 100644 iverilog/tobb/labs/lab2/src/fdmp.vcd delete mode 100644 iverilog/tobb/labs/lab2/src/flab2 delete mode 100644 iverilog/tobb/labs/lab2/src/ftb.v delete mode 100644 iverilog/tobb/labs/lab2/src/fullAdder.v delete mode 100644 iverilog/tobb/labs/lab2/src/halfAdder.v delete mode 100644 iverilog/tobb/labs/lab2/src/lab2 delete mode 100644 iverilog/tobb/labs/lab2/src/tb.v delete mode 100644 iverilog/tobb/labs/lab2_prep/impl/gwsynthesis/lab2.log delete mode 100644 iverilog/tobb/labs/lab2_prep/impl/gwsynthesis/lab2.prj delete mode 100644 iverilog/tobb/labs/lab2_prep/impl/gwsynthesis/lab2.vg delete mode 100644 iverilog/tobb/labs/lab2_prep/impl/gwsynthesis/lab2_syn.rpt.html delete mode 100644 iverilog/tobb/labs/lab2_prep/impl/gwsynthesis/lab2_syn_resource.html delete mode 100644 iverilog/tobb/labs/lab2_prep/impl/gwsynthesis/lab2_syn_rsc.xml delete mode 100644 iverilog/tobb/labs/lab2_prep/impl/lab2_process_config.json delete mode 100644 iverilog/tobb/labs/lab2_prep/impl/temp/rtl_parser.result delete mode 100644 iverilog/tobb/labs/lab2_prep/impl/temp/rtl_parser_arg.json delete mode 100644 iverilog/tobb/labs/lab2_prep/lab2.gprj delete mode 100644 iverilog/tobb/labs/lab2_prep/lab2.gprj.user delete mode 100644 iverilog/tobb/labs/lab2_prep/src/dmp.vcd delete mode 100644 iverilog/tobb/labs/lab2_prep/src/lab delete mode 100644 iverilog/tobb/labs/lab2_prep/src/lab2 delete mode 100644 iverilog/tobb/labs/lab2_prep/src/lab2.v delete mode 100644 iverilog/tobb/labs/lab2_prep/src/labwave delete mode 100644 iverilog/tobb/labs/lab2_prep/src/tb.v delete mode 100644 iverilog/tobb/labs/lab3/impl/gwsynthesis/lab3.log delete mode 100644 iverilog/tobb/labs/lab3/impl/gwsynthesis/lab3.prj delete mode 100644 iverilog/tobb/labs/lab3/impl/gwsynthesis/lab3.vg delete mode 100644 iverilog/tobb/labs/lab3/impl/gwsynthesis/lab3_syn.rpt.html delete mode 100644 iverilog/tobb/labs/lab3/impl/gwsynthesis/lab3_syn_resource.html delete mode 100644 iverilog/tobb/labs/lab3/impl/gwsynthesis/lab3_syn_rsc.xml delete mode 100644 iverilog/tobb/labs/lab3/impl/lab3_process_config.json delete mode 100644 iverilog/tobb/labs/lab3/impl/pnr/cmd.do delete mode 100644 iverilog/tobb/labs/lab3/impl/pnr/device.cfg delete mode 100644 iverilog/tobb/labs/lab3/impl/pnr/lab3.bin delete mode 100644 iverilog/tobb/labs/lab3/impl/pnr/lab3.binx delete mode 100644 iverilog/tobb/labs/lab3/impl/pnr/lab3.db delete mode 100644 iverilog/tobb/labs/lab3/impl/pnr/lab3.fs delete mode 100644 iverilog/tobb/labs/lab3/impl/pnr/lab3.log delete mode 100644 iverilog/tobb/labs/lab3/impl/pnr/lab3.pin.html delete mode 100644 iverilog/tobb/labs/lab3/impl/pnr/lab3.power.html delete mode 100644 iverilog/tobb/labs/lab3/impl/pnr/lab3.rpt.html delete mode 100644 iverilog/tobb/labs/lab3/impl/pnr/lab3.rpt.txt delete mode 100644 iverilog/tobb/labs/lab3/impl/pnr/lab3.timing_paths delete mode 100644 iverilog/tobb/labs/lab3/impl/pnr/lab3.tr.html delete mode 100644 iverilog/tobb/labs/lab3/impl/pnr/lab3_tr_cata.html delete mode 100644 iverilog/tobb/labs/lab3/impl/pnr/lab3_tr_content.html delete mode 100644 iverilog/tobb/labs/lab3/impl/temp/rtl_parser.result delete mode 100644 iverilog/tobb/labs/lab3/impl/temp/rtl_parser_arg.json delete mode 100644 iverilog/tobb/labs/lab3/impl/temp/style.css delete mode 100644 iverilog/tobb/labs/lab3/lab3.gprj delete mode 100644 iverilog/tobb/labs/lab3/lab3.gprj.user delete mode 100644 iverilog/tobb/labs/lab3/src/3bit delete mode 100644 iverilog/tobb/labs/lab3/src/3dmp.vcd delete mode 100644 iverilog/tobb/labs/lab3/src/Adder3Bit delete mode 100644 iverilog/tobb/labs/lab3/src/Adder3Bit.v delete mode 100644 iverilog/tobb/labs/lab3/src/Admp.vcd delete mode 100644 iverilog/tobb/labs/lab3/src/dmp.vcd delete mode 100644 iverilog/tobb/labs/lab3/src/fullAdder.v delete mode 100644 iverilog/tobb/labs/lab3/src/halfAdder.v delete mode 100644 iverilog/tobb/labs/lab3/src/mtb.v delete mode 100644 iverilog/tobb/labs/lab3/src/mult2 delete mode 100644 iverilog/tobb/labs/lab3/src/mult2bit.v delete mode 100644 iverilog/tobb/labs/lab3/src/tb.v delete mode 100644 iverilog/tobb/labs/lab3_solution/adder3bit.v delete mode 100644 iverilog/tobb/labs/lab3_solution/fa.v delete mode 100644 iverilog/tobb/labs/lab3_solution/ha.v delete mode 100644 iverilog/tobb/labs/lab3_solution/run.sh delete mode 100644 iverilog/tobb/labs/lab3_solution/tb.v delete mode 100644 iverilog/tobb/labs/lab4/lab4.v delete mode 100644 iverilog/tobb/labs/lab4/lab4o delete mode 100644 iverilog/tobb/labs/lab4/lab4tb.v delete mode 100644 iverilog/tobb/labs/lab4/lab4v.vcd delete mode 100644 iverilog/tobb/labs/lab5/1.v delete mode 100644 iverilog/tobb/labs/lab5/lab5 delete mode 100644 iverilog/tobb/labs/lab5/lab5t.vcd delete mode 100644 iverilog/tobb/labs/lab5/lab5v.vcd delete mode 100644 iverilog/tobb/labs/lab5/seqBlink.v delete mode 100644 iverilog/tobb/labs/lab5/seqBlinkTB.v delete mode 100644 iverilog/tobb/labs/lab5/timer.v delete mode 100644 iverilog/tobb/labs/lab5/timerTB.v delete mode 100644 iverilog/tobb/labs/lab5/vlab5 delete mode 100644 iverilog/tobb/labs/lab6/bibp.v delete mode 100644 iverilog/tobb/labs/lab6/bibpTB.v delete mode 100644 iverilog/tobb/labs/lab6/obj_dir/Vbibp delete mode 100644 iverilog/tobb/labs/lab6/obj_dir/Vbibp.cpp delete mode 100644 iverilog/tobb/labs/lab6/obj_dir/Vbibp.h delete mode 100644 iverilog/tobb/labs/lab6/obj_dir/Vbibp.mk delete mode 100644 iverilog/tobb/labs/lab6/obj_dir/VbibpTB.cpp delete mode 100644 iverilog/tobb/labs/lab6/obj_dir/VbibpTB.h delete mode 100644 iverilog/tobb/labs/lab6/obj_dir/VbibpTB.mk delete mode 100644 iverilog/tobb/labs/lab6/obj_dir/VbibpTB__Syms.cpp delete mode 100644 iverilog/tobb/labs/lab6/obj_dir/VbibpTB__Syms.h delete mode 100644 iverilog/tobb/labs/lab6/obj_dir/VbibpTB___024root.h delete mode 100644 iverilog/tobb/labs/lab6/obj_dir/VbibpTB___024root__DepSet_h31122c8e__0.cpp delete mode 100644 iverilog/tobb/labs/lab6/obj_dir/VbibpTB___024root__DepSet_h31122c8e__0__Slow.cpp delete mode 100644 iverilog/tobb/labs/lab6/obj_dir/VbibpTB___024root__DepSet_h7f8acf28__0.cpp delete mode 100644 iverilog/tobb/labs/lab6/obj_dir/VbibpTB___024root__DepSet_h7f8acf28__0__Slow.cpp delete mode 100644 iverilog/tobb/labs/lab6/obj_dir/VbibpTB___024root__Slow.cpp delete mode 100644 iverilog/tobb/labs/lab6/obj_dir/VbibpTB__main.cpp delete mode 100644 iverilog/tobb/labs/lab6/obj_dir/VbibpTB_classes.mk delete mode 100644 iverilog/tobb/labs/lab6/obj_dir/Vbibp__ALL.a delete mode 100644 iverilog/tobb/labs/lab6/obj_dir/Vbibp__ALL.cpp delete mode 100644 iverilog/tobb/labs/lab6/obj_dir/Vbibp__ALL.d delete mode 100644 iverilog/tobb/labs/lab6/obj_dir/Vbibp__ALL.o delete mode 100644 iverilog/tobb/labs/lab6/obj_dir/Vbibp__Syms.cpp delete mode 100644 iverilog/tobb/labs/lab6/obj_dir/Vbibp__Syms.h delete mode 100644 iverilog/tobb/labs/lab6/obj_dir/Vbibp___024root.h delete mode 100644 iverilog/tobb/labs/lab6/obj_dir/Vbibp___024root__DepSet_h1791c79f__0.cpp delete mode 100644 iverilog/tobb/labs/lab6/obj_dir/Vbibp___024root__DepSet_h1791c79f__0__Slow.cpp delete mode 100644 iverilog/tobb/labs/lab6/obj_dir/Vbibp___024root__DepSet_h1fed60c4__0.cpp delete mode 100644 iverilog/tobb/labs/lab6/obj_dir/Vbibp___024root__DepSet_h1fed60c4__0__Slow.cpp delete mode 100644 iverilog/tobb/labs/lab6/obj_dir/Vbibp___024root__Slow.cpp delete mode 100644 iverilog/tobb/labs/lab6/obj_dir/Vbibp__main.cpp delete mode 100644 iverilog/tobb/labs/lab6/obj_dir/Vbibp__ver.d delete mode 100644 iverilog/tobb/labs/lab6/obj_dir/Vbibp__verFiles.dat delete mode 100644 iverilog/tobb/labs/lab6/obj_dir/Vbibp_classes.mk delete mode 100644 iverilog/tobb/labs/lab6/obj_dir/verilated.d delete mode 100644 iverilog/tobb/labs/lab6/obj_dir/verilated.o delete mode 100644 iverilog/tobb/labs/lab6/obj_dir/verilated_threads.d delete mode 100644 iverilog/tobb/labs/lab6/obj_dir/verilated_threads.o delete mode 100644 iverilog/tobb/labs/lab6/obj_dir/verilated_timing.d delete mode 100644 iverilog/tobb/labs/lab6/obj_dir/verilated_timing.o delete mode 100644 iverilog/tobb/labs/lab6/vbibp.vcd delete mode 100644 iverilog/tobb/labs/lab6/vvbibp create mode 100644 project0.2/ALU create mode 100644 project0.2/ALU.v create mode 100644 project0.2/ALU.vcd create mode 100644 project0.2/ALUTB.v create mode 100644 project0.2/addition.v create mode 100644 project0.2/arithmeticUnit.v create mode 100644 project0.2/fulladder.v create mode 100644 project0.2/fullsubtraction.v create mode 100644 project0.2/halfadder.v create mode 100644 project0.2/halfsubtraction.v create mode 100644 project0.2/logicUnit create mode 100644 project0.2/logicUnit.v create mode 100644 project0.2/logicUnit.vcd create mode 100644 project0.2/logicUnitTB.v create mode 100644 project0.2/multiplier create mode 100644 project0.2/multiplier.v create mode 100644 project0.2/multiplier.vcd create mode 100644 project0.2/multiplierTB.v create mode 100644 project0.2/opCode create mode 100644 project0.2/opCode.v create mode 100644 project0.2/opCode.vcd create mode 100644 project0.2/opCodeTB.v create mode 100644 project0.2/overflowDetect.v create mode 100644 project0.2/subtraction create mode 100644 project0.2/subtraction.v create mode 100644 project0.2/subtraction.vcd create mode 100644 project0.2/subtractionTB.v delete mode 100644 tests/a.out delete mode 100644 tests/dmp.vcd delete mode 100644 tests/hello.v delete mode 100644 tests/hello_tb.v delete mode 100644 tests/obj_dir/Vtest2.cpp delete mode 100644 tests/obj_dir/Vtest2.h delete mode 100644 tests/obj_dir/Vtest2.mk delete mode 100644 tests/obj_dir/Vtest2__Syms.cpp delete mode 100644 tests/obj_dir/Vtest2__Syms.h delete mode 100644 tests/obj_dir/Vtest2___024root.h delete mode 100644 tests/obj_dir/Vtest2___024root__DepSet_h3c5fcca7__0.cpp delete mode 100644 tests/obj_dir/Vtest2___024root__DepSet_h3c5fcca7__0__Slow.cpp delete mode 100644 tests/obj_dir/Vtest2___024root__DepSet_hef21559d__0.cpp delete mode 100644 tests/obj_dir/Vtest2___024root__Slow.cpp delete mode 100644 tests/obj_dir/Vtest2__main.cpp delete mode 100644 tests/obj_dir/Vtest2__ver.d delete mode 100644 tests/obj_dir/Vtest2__verFiles.dat delete mode 100644 tests/obj_dir/Vtest2_classes.mk delete mode 100644 tests/test/a.out delete mode 100644 tests/test/dmp.vcd delete mode 100644 tests/test/tb.v delete mode 100644 tests/test/test.v delete mode 100644 tests/test2 delete mode 100644 tests/test2.v delete mode 100644 tests/test2Tb.v delete mode 100644 tests/test2v.vcd diff --git a/gowin/bibp/bibp.gprj b/gowin/bibp/bibp.gprj deleted file mode 100644 index 6df6571..0000000 --- a/gowin/bibp/bibp.gprj +++ /dev/null @@ -1,10 +0,0 @@ - - - - - 5 - gw2a18c-011 - - - - diff --git a/gowin/bibp/bibp.gprj.user b/gowin/bibp/bibp.gprj.user deleted file mode 100644 index cd10636..0000000 --- a/gowin/bibp/bibp.gprj.user +++ /dev/null @@ -1,13 +0,0 @@ - - - - 1.0 - - - - - - - - 000000ff00000001fd00000002000000000000018e000003e5fc0200000001fc00000063000003e50000000000fffffffaffffffff0200000003fb00000030004600700067006100500072006f006a006500630074002e00500061006e0065006c002e00440065007300690067006e0100000000ffffffff0000000000000000fb00000032004600700067006100500072006f006a006500630074002e00500061006e0065006c002e00500072006f00630065007300730100000000ffffffff0000000000000000fb00000036004600700067006100500072006f006a006500630074002e00500061006e0065006c002e0048006900650072006100720063006800790100000000ffffffff00000000000000000000000300000ab00000027efc0100000001fc0000000000000ab0000000da00fffffffa000000010100000002fb00000032004600700067006100500072006f006a006500630074002e00500061006e0065006c002e00470065006e006500720061006c0100000000ffffffff0000009e00fffffffb0000002e004600700067006100500072006f006a006500630074002e00500061006e0065006c002e004900730073007500650100000000ffffffff000000da00ffffff0000091a000003e500000004000000040000000800000008fc000000010000000200000003000000220043006f00720065002e0054006f006f006c006200610072002e00460069006c00650100000000ffffffff0000000000000000000000220043006f00720065002e0054006f006f006c006200610072002e004500640069007401000000bdffffffff0000000000000000000000240043006f00720065002e0054006f006f006c006200610072002e0054006f006f006c007301000001a5ffffffff0000000000000000 - diff --git a/gowin/bibp/impl/bibp_process_config.json b/gowin/bibp/impl/bibp_process_config.json deleted file mode 100644 index cb7d044..0000000 --- a/gowin/bibp/impl/bibp_process_config.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "BACKGROUND_PROGRAMMING" : "off", - "COMPRESS" : false, - "CPU" : false, - "CRC_CHECK" : true, - "Clock_Route_Order" : 0, - "Correct_Hold_Violation" : true, - "DONE" : false, - "DOWNLOAD_SPEED" : "default", - "Disable_Insert_Pad" : false, - "ENABLE_CTP" : false, - "ENABLE_MERGE_MODE" : false, - "ENCRYPTION_KEY" : false, - "ENCRYPTION_KEY_TEXT" : "00000000000000000000000000000000", - "ERROR_DECTION_AND_CORRECTION" : false, - "ERROR_DECTION_ONLY" : false, - "ERROR_INJECTION" : false, - "EXTERNAL_MASTER_CONFIG_CLOCK" : false, - "Enable_DSRM" : false, - "FORMAT" : "binary", - "FREQUENCY_DIVIDER" : "", - "Generate_Constraint_File_of_Ports" : false, - "Generate_IBIS_File" : false, - "Generate_Plain_Text_Timing_Report" : false, - "Generate_Post_PNR_Simulation_Model_File" : false, - "Generate_Post_Place_File" : false, - "Generate_SDF_File" : false, - "Generate_VHDL_Post_PNR_Simulation_Model_File" : false, - "Global_Freq" : "default", - "GwSyn_Loop_Limit" : 2000, - "HOTBOOT" : false, - "I2C" : false, - "I2C_SLAVE_ADDR" : "00", - "IncludePath" : [ - - ], - "Incremental_Compile" : "", - "Initialize_Primitives" : false, - "JTAG" : false, - "MODE_IO" : false, - "MSPI" : false, - "MSPI_JUMP" : false, - "MULTIBOOT_ADDRESS_WIDTH" : "24", - "MULTIBOOT_MODE" : "Normal", - "MULTIBOOT_SPI_FLASH_ADDRESS" : "00000000", - "MULTIJUMP_ADDRESS_WIDTH" : "24", - "MULTIJUMP_MODE" : "Normal", - "MULTIJUMP_SPI_FLASH_ADDRESS" : "000000", - "Multi_Boot" : true, - "OUTPUT_BASE_NAME" : "bibp", - "POWER_ON_RESET_MONITOR" : true, - "PRINT_BSRAM_VALUE" : true, - "PROGRAM_DONE_BYPASS" : false, - "PlaceInRegToIob" : true, - "PlaceIoRegToIob" : true, - "PlaceOutRegToIob" : true, - "Place_Option" : "0", - "Process_Configuration_Verion" : "1.0", - "Promote_Physical_Constraint_Warning_to_Error" : true, - "READY" : false, - "RECONFIG_N" : false, - "Ram_RW_Check" : false, - "Replicate_Resources" : false, - "Report_Auto-Placed_Io_Information" : false, - "Route_Maxfan" : 23, - "Route_Option" : "0", - "Run_Timing_Driven" : true, - "SECURE_MODE" : false, - "SECURITY_BIT" : true, - "SEU_HANDLER" : false, - "SEU_HANDLER_CHECKSUM" : false, - "SEU_HANDLER_MODE" : "auto", - "SSPI" : false, - "STOP_SEU_HANDLER" : false, - "Show_All_Warnings" : false, - "Synthesize_tool" : "GowinSyn", - "TclPre" : "", - "TopModule" : "", - "USERCODE" : "default", - "Unused_Pin" : "As_input_tri_stated_with_pull_up", - "VCCAUX" : 3.3, - "VCCX" : "3.3", - "VHDL_Standard" : "VHDL_Std_1993", - "Verilog_Standard" : "Vlg_Std_2001", - "WAKE_UP" : "0", - "show_all_warnings" : false, - "turn_off_bg" : false -} \ No newline at end of file diff --git a/gowin/bibp/impl/gwsynthesis/bibp.log b/gowin/bibp/impl/gwsynthesis/bibp.log deleted file mode 100644 index 004a5ee..0000000 --- a/gowin/bibp/impl/gwsynthesis/bibp.log +++ /dev/null @@ -1,14 +0,0 @@ -GowinSynthesis start -Running parser ... -Analyzing Verilog file '\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bibp\src\bibp.v' -ERROR (EX3812) : 'buyruk' is not a constant("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bibp\src\bibp.v":7) -ERROR (EX3812) : 'buyruk' is not a constant("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bibp\src\bibp.v":8) -ERROR (EX3900) : Procedural assignment to a non-register 'sonuc' is not permitted("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bibp\src\bibp.v":12) -ERROR (EX3900) : Procedural assignment to a non-register 'sonuc' is not permitted("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bibp\src\bibp.v":13) -ERROR (EX3900) : Procedural assignment to a non-register 'sonuc' is not permitted("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bibp\src\bibp.v":14) -ERROR (EX3900) : Procedural assignment to a non-register 'sonuc' is not permitted("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bibp\src\bibp.v":15) -ERROR (EX3900) : Procedural assignment to a non-register 'sonuc' is not permitted("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bibp\src\bibp.v":16) -ERROR (EX3900) : Procedural assignment to a non-register 'sonuc' is not permitted("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bibp\src\bibp.v":17) -ERROR (EX3928) : Module 'bibp' is ignored due to previous errors("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bibp\src\bibp.v":21) -Verilog file '\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bibp\src\bibp.v' ignored due to errors -GowinSynthesis finish diff --git a/gowin/bibp/impl/gwsynthesis/bibp.prj b/gowin/bibp/impl/gwsynthesis/bibp.prj deleted file mode 100644 index fb85cee..0000000 --- a/gowin/bibp/impl/gwsynthesis/bibp.prj +++ /dev/null @@ -1,19 +0,0 @@ - - - - beta - - - - - - - diff --git a/gowin/bibp/impl/temp/rtl_parser_arg.json b/gowin/bibp/impl/temp/rtl_parser_arg.json deleted file mode 100644 index b4cbe3d..0000000 --- a/gowin/bibp/impl/temp/rtl_parser_arg.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "Device" : "GW2A-18C", - "Files" : [ - { - "Path" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bibp/src/bibp.v", - "Type" : "verilog" - } - ], - "IncludePath" : [ - - ], - "LoopLimit" : 2000, - "ResultFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bibp/impl/temp/rtl_parser.result", - "Top" : "", - "VerilogStd" : "verilog_2001", - "VhdlStd" : "vhdl_93" -} \ No newline at end of file diff --git a/gowin/bibp/src/bibp.v b/gowin/bibp/src/bibp.v deleted file mode 100644 index 2aeee0c..0000000 --- a/gowin/bibp/src/bibp.v +++ /dev/null @@ -1,21 +0,0 @@ -module bibp #(parameter UZUNLUK = 8)( - input [UZUNLUK + 2:0] buyruk, - output [UZUNLUK:0] sonuc -); - - localparam halfUZUNLUK = UZUNLUK / 2; - localparam v1 = buyruk[UZUNLUK + 2 - 1 : halfUZUNLUK]; - localparam v2 = buyruk[halfUZUNLUK - 1 : 0]; - -always@(*) begin - case(buyruk[UZUNLUK + 2: UZUNLUK -1]) - 3'b000: sonuc = v1 + v2; - 3'b001: sonuc = v1 - v2; - 3'b010: sonuc = v1 & v2; - 3'b011: sonuc = v1 | v2; - 3'b100: sonuc = v1 ^ v2; - default: sonuc = v1 + v2; - endcase -end - -endmodule \ No newline at end of file diff --git a/gowin/fpga_project/fpga_project.gprj b/gowin/fpga_project/fpga_project.gprj deleted file mode 100644 index 4e7bcc7..0000000 --- a/gowin/fpga_project/fpga_project.gprj +++ /dev/null @@ -1,14 +0,0 @@ - - - - - 5 - gw2a18c-011 - - - - - - - - diff --git a/gowin/fpga_project/fpga_project.gprj.user b/gowin/fpga_project/fpga_project.gprj.user deleted file mode 100644 index 795eff6..0000000 --- a/gowin/fpga_project/fpga_project.gprj.user +++ /dev/null @@ -1,24 +0,0 @@ - - - - 1.0 - - - - - - - - - - - - - - - - - - - 000000ff00000001fd00000002000000000000018e0000051efc0200000001fc000000630000051e0000000000fffffffaffffffff0200000003fb00000030004600700067006100500072006f006a006500630074002e00500061006e0065006c002e00440065007300690067006e0100000000ffffffff0000000000000000fb00000032004600700067006100500072006f006a006500630074002e00500061006e0065006c002e00500072006f00630065007300730100000000ffffffff0000000000000000fb00000036004600700067006100500072006f006a006500630074002e00500061006e0065006c002e0048006900650072006100720063006800790100000000ffffffff00000000000000000000000300000ab000000145fc0100000001fc0000000000000ab0000000da00fffffffa000000000100000002fb00000032004600700067006100500072006f006a006500630074002e00500061006e0065006c002e00470065006e006500720061006c0100000000ffffffff0000009e00fffffffb0000002e004600700067006100500072006f006a006500630074002e00500061006e0065006c002e004900730073007500650100000000ffffffff000000da00ffffff0000091a0000051e00000004000000040000000800000008fc000000010000000200000003000000220043006f00720065002e0054006f006f006c006200610072002e00460069006c00650100000000ffffffff0000000000000000000000220043006f00720065002e0054006f006f006c006200610072002e004500640069007401000000bdffffffff0000000000000000000000240043006f00720065002e0054006f006f006c006200610072002e0054006f006f006c007301000001a5ffffffff0000000000000000 - diff --git a/gowin/fpga_project/impl/fpga_project_process_config.json b/gowin/fpga_project/impl/fpga_project_process_config.json deleted file mode 100644 index 8cc5bbc..0000000 --- a/gowin/fpga_project/impl/fpga_project_process_config.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "BACKGROUND_PROGRAMMING" : "off", - "COMPRESS" : false, - "CPU" : false, - "CRC_CHECK" : true, - "Clock_Route_Order" : 0, - "Correct_Hold_Violation" : true, - "DONE" : false, - "DOWNLOAD_SPEED" : "default", - "Disable_Insert_Pad" : false, - "ENABLE_CTP" : false, - "ENABLE_MERGE_MODE" : false, - "ENCRYPTION_KEY" : false, - "ENCRYPTION_KEY_TEXT" : "00000000000000000000000000000000", - "ERROR_DECTION_AND_CORRECTION" : false, - "ERROR_DECTION_ONLY" : false, - "ERROR_INJECTION" : false, - "EXTERNAL_MASTER_CONFIG_CLOCK" : false, - "Enable_DSRM" : false, - "FORMAT" : "binary", - "FREQUENCY_DIVIDER" : "1", - "Generate_Constraint_File_of_Ports" : false, - "Generate_IBIS_File" : false, - "Generate_Plain_Text_Timing_Report" : false, - "Generate_Post_PNR_Simulation_Model_File" : false, - "Generate_Post_Place_File" : false, - "Generate_SDF_File" : false, - "Generate_VHDL_Post_PNR_Simulation_Model_File" : false, - "Global_Freq" : "default", - "GwSyn_Loop_Limit" : 2000, - "HOTBOOT" : false, - "I2C" : false, - "I2C_SLAVE_ADDR" : "00", - "IncludePath" : [ - - ], - "Incremental_Compile" : "", - "Initialize_Primitives" : false, - "JTAG" : false, - "MODE_IO" : false, - "MSPI" : false, - "MSPI_JUMP" : false, - "MULTIBOOT_ADDRESS_WIDTH" : "24", - "MULTIBOOT_MODE" : "Normal", - "MULTIBOOT_SPI_FLASH_ADDRESS" : "00000000", - "MULTIJUMP_ADDRESS_WIDTH" : "24", - "MULTIJUMP_MODE" : "Normal", - "MULTIJUMP_SPI_FLASH_ADDRESS" : "000000", - "Multi_Boot" : true, - "OUTPUT_BASE_NAME" : "fpga_project", - "POWER_ON_RESET_MONITOR" : true, - "PRINT_BSRAM_VALUE" : true, - "PROGRAM_DONE_BYPASS" : false, - "PlaceInRegToIob" : true, - "PlaceIoRegToIob" : true, - "PlaceOutRegToIob" : true, - "Place_Option" : "0", - "Process_Configuration_Verion" : "1.0", - "Promote_Physical_Constraint_Warning_to_Error" : true, - "READY" : false, - "RECONFIG_N" : false, - "Ram_RW_Check" : false, - "Replicate_Resources" : false, - "Report_Auto-Placed_Io_Information" : false, - "Route_Maxfan" : 23, - "Route_Option" : "0", - "Run_Timing_Driven" : true, - "SECURE_MODE" : false, - "SECURITY_BIT" : true, - "SEU_HANDLER" : false, - "SEU_HANDLER_CHECKSUM" : false, - "SEU_HANDLER_MODE" : "auto", - "SSPI" : false, - "STOP_SEU_HANDLER" : false, - "Show_All_Warnings" : false, - "Synthesize_tool" : "GowinSyn", - "TclPre" : "", - "TopModule" : "", - "USERCODE" : "default", - "Unused_Pin" : "As_input_tri_stated_with_pull_up", - "VCCAUX" : 3.3, - "VCCX" : "3.3", - "VHDL_Standard" : "VHDL_Std_1993", - "Verilog_Standard" : "Vlg_Std_2001", - "WAKE_UP" : "0", - "show_all_warnings" : false, - "turn_off_bg" : false -} \ No newline at end of file diff --git a/gowin/fpga_project/impl/gwsynthesis/fpga_project.log b/gowin/fpga_project/impl/gwsynthesis/fpga_project.log deleted file mode 100644 index cdd65b9..0000000 --- a/gowin/fpga_project/impl/gwsynthesis/fpga_project.log +++ /dev/null @@ -1,38 +0,0 @@ -GowinSynthesis start -Running parser ... -Analyzing Verilog file '\\wsl.localhost\Debian\home\koray\code\verilog\gowin\fpga_project\src\bit3adder.v' -Analyzing Verilog file '\\wsl.localhost\Debian\home\koray\code\verilog\gowin\fpga_project\src\fulladder.v' -Analyzing Verilog file '\\wsl.localhost\Debian\home\koray\code\verilog\gowin\fpga_project\src\halfadder.v' -Analyzing Verilog file '\\wsl.localhost\Debian\home\koray\code\verilog\gowin\fpga_project\src\ledTest.v' -Compiling module 'ledTest'("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\fpga_project\src\ledTest.v":1) -Compiling module 'bit3adder'("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\fpga_project\src\bit3adder.v":1) -Compiling module 'halfadder'("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\fpga_project\src\halfadder.v":1) -Compiling module 'fulladder'("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\fpga_project\src\fulladder.v":1) -NOTE (EX0101) : Current top module is "ledTest" -[5%] Running netlist conversion ... -Running device independent optimization ... -[10%] Optimizing Phase 0 completed -[15%] Optimizing Phase 1 completed -[25%] Optimizing Phase 2 completed -Running inference ... -[30%] Inferring Phase 0 completed -[40%] Inferring Phase 1 completed -[50%] Inferring Phase 2 completed -[55%] Inferring Phase 3 completed -Running technical mapping ... -[60%] Tech-Mapping Phase 0 completed -[65%] Tech-Mapping Phase 1 completed -[75%] Tech-Mapping Phase 2 completed -[80%] Tech-Mapping Phase 3 completed -[90%] Tech-Mapping Phase 4 completed -WARN (NL0002) : The module "bit3adder" instantiated to "adder" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\fpga_project\src\ledTest.v":12) -WARN (NL0002) : The module "fulladder" instantiated to "fa0" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\fpga_project\src\bit3adder.v":10) -WARN (NL0002) : The module "halfadder" instantiated to "ha1" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\fpga_project\src\fulladder.v":8) -WARN (NL0002) : The module "halfadder" instantiated to "ha2" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\fpga_project\src\fulladder.v":9) -WARN (NL0002) : The module "fulladder" instantiated to "fa1" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\fpga_project\src\bit3adder.v":11) -WARN (NL0002) : The module "halfadder" instantiated to "ha1" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\fpga_project\src\fulladder.v":8) -WARN (NL0002) : The module "halfadder" instantiated to "ha2" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\fpga_project\src\fulladder.v":9) -WARN (NL0002) : The module "halfadder" instantiated to "ha0" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\fpga_project\src\bit3adder.v":9) -[95%] Generate netlist file "\\wsl.localhost\Debian\home\koray\code\verilog\gowin\fpga_project\impl\gwsynthesis\fpga_project.vg" completed -[100%] Generate report file "\\wsl.localhost\Debian\home\koray\code\verilog\gowin\fpga_project\impl\gwsynthesis\fpga_project_syn.rpt.html" completed -GowinSynthesis finish diff --git a/gowin/fpga_project/impl/gwsynthesis/fpga_project.prj b/gowin/fpga_project/impl/gwsynthesis/fpga_project.prj deleted file mode 100644 index 759b04c..0000000 --- a/gowin/fpga_project/impl/gwsynthesis/fpga_project.prj +++ /dev/null @@ -1,22 +0,0 @@ - - - - beta - - - - - - - - - - diff --git a/gowin/fpga_project/impl/gwsynthesis/fpga_project.vg b/gowin/fpga_project/impl/gwsynthesis/fpga_project.vg deleted file mode 100644 index fc60c32..0000000 --- a/gowin/fpga_project/impl/gwsynthesis/fpga_project.vg +++ /dev/null @@ -1,50 +0,0 @@ -// -//Written by GowinSynthesis -//Tool Version "V1.9.9.03 Education (64-bit)" -//Fri Jul 5 01:47:50 2024 - -//Source file index table: -//file0 "\//wsl.localhost/Debian/home/koray/code/verilog/gowin/fpga_project/src/bit3adder.v" -//file1 "\//wsl.localhost/Debian/home/koray/code/verilog/gowin/fpga_project/src/fulladder.v" -//file2 "\//wsl.localhost/Debian/home/koray/code/verilog/gowin/fpga_project/src/halfadder.v" -//file3 "\//wsl.localhost/Debian/home/koray/code/verilog/gowin/fpga_project/src/ledTest.v" -`pragma protect begin_protected -`pragma protect version="2.3" -`pragma protect author="default" -`pragma protect author_info="default" -`pragma protect encrypt_agent="GOWIN" -`pragma protect encrypt_agent_info="GOWIN Encrypt Version 2.3" - -`pragma protect encoding=(enctype="base64", line_length=76, bytes=256) -`pragma protect key_keyowner="GOWIN",key_keyname="GWK2023-09",key_method="rsa" -`pragma protect key_block -SlY0kna1VOfFqCnIAUnvCFZyOmYy5nNsOHaosnUdN4NPMfg/3mc8m5NMYcB5aRVE/L24Uu9c2XWA -NSW10+EV19kawM4RxGHJIvtDs0SiB/Vcq1F8BgI/KOHKz/FTLafKTG1XgrZBirSoolIV7y3DkGc4 -fFPvdTC+u+kvRVlxdhtThZCgSsWsWToZ6lmp5DLA9hnMXuM49zTU4OEhqfMJ6WkK8RTWJ6daX+tg -Y1XX+clp3w69r36oZamUSEZWZ6CdYcrWRGTDo90LNa2xuBM85dkQDoblHE8Ap1nKmlhZcMIX/YJh -0tKW+VsT2QtAPJ0UlvbE2odrDNmWQoF4dvOk/w== - -`pragma protect encoding=(enctype="base64", line_length=76, bytes=1008) -`pragma protect data_keyowner="default-ip-vendor" -`pragma protect data_keyname="default-ip-key" -`pragma protect data_method="aes128-cfb" -`pragma protect data_block -jkSx6jQnyZ9dF/09E4NL2yuVq5UuB/QQ94fGSjKbJenbe1nQSl+5yB+i9SSfwRtogKNhiSPBoWBJ -IbPwkVP80LgZ9rvG0b7H6VBkCGowAB9+eHtTQ3oklxuQ90y2SYSTtWW3ro0fdkBSmjzpnBwxhoyV -Y5KagttXxWtTGmVZ2Jp1IINdCohLcp/FaO8sKKmm/XrAvKTwuUG1YRRNBLPQNnXxgYjOo6V2JZjg -KI0HxaH6/lco/ieB4vEOR45lxwoJxb2K3sb/gHNytOfl7td2OH3db6sCtP30Ku47XLVboGTe7v5J -RutLx6qXJZyxziq+Aq15o9oRqFWjyIMTkp2kPegM3LoJOxkLMh9HK5HSVSezqXgB5tP28CYEMKBo -0z43g9baQd7DVNvinmA2XJnYZptSvLUzGNl+UoKJOKRx99dQPjYgfADnAd+gXcoTJwsGyIwHRbbR -doKYkV2vEOoP7ghm0zhHq1entJM9PWc6QpwoaM+MXlp+kua6FE2Q/XMucUBdrtBA5cCfDnCL19wg -bqbrOZI/z3P8vVN2Wvn0Zk0dDJgFvZmsGcGtXxjwk3ZzaLtUs4fZnrzTbt49p9vab+WjV7ee2Nsx -qDCFejQdHiMB7mYPlx2LGTsHyWMMf4jqva9449+Hv9mRvFnfqYeE5Tydck8IIGX4epuft0OHUzP2 -udMyVqg5Tu8510MLDHiBEVXkWNLP48kzGvziYnCaI3WZ/UNLStk7C8qBklyRJIjIQ9ub3xNsM3rV -TMk+q7yll2HGMaMkQsd3hpc8yV+91mQehfk8tWVji/z2wOA1VtcELN66gzSbGWBkXuljVCKGDnIC -in7uS0npQn/McH9QDs9jL8rD1fz/Bh31c7TGWuDYwAMSGYDqV+0jQFTnVCLoU/neInO8TKmpWKCx -hinKAp+LeozSlBCduFNPvylCew/OR55n8ZvZu0fnJlno+8kPQzNGM9cIDHO6YJLpL9krXF2uEL2P -WtaEGcs4pAZTw5h6eCm5b+oMUGmD8PMz6chO/SlcE4Hfd0oLBmV4uxVdeURFsNKpdkwLNXaI53y8 -G2P4YtoDDcDhfnA/oc7RQQcQcrvybOkDdak+JklUzURJirJ6OJv8AgNhUEtxqfdaV2mC4WZoQp9g -4adUyXuABANWFelvj9N3rZJ910HDg5tIy0GfKSmess/3aWD1g92NVVZw0xaijaZghpUmTwK8Db7l -8/AlcgBwYIo5vhFRWiD8ddRTC4L4VXgvswhsbPdkZD8OKdIos9DKrikQF4FbzqTlrq6uRBCMYmGW -lXyKrsvDMaWe3WBOg3nGgQCt6UWBb5v7Nj/6FwYmUkIpltrnBCtP -`pragma protect end_protected diff --git a/gowin/fpga_project/impl/gwsynthesis/fpga_project_syn.rpt.html b/gowin/fpga_project/impl/gwsynthesis/fpga_project_syn.rpt.html deleted file mode 100644 index 657d439..0000000 --- a/gowin/fpga_project/impl/gwsynthesis/fpga_project_syn.rpt.html +++ /dev/null @@ -1,170 +0,0 @@ - - - -synthesis Report - - - -
- -
-

Synthesis Messages

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Report TitleGowinSynthesis Report
Design File\\wsl.localhost\Debian\home\koray\code\verilog\gowin\fpga_project\src\bit3adder.v
-\\wsl.localhost\Debian\home\koray\code\verilog\gowin\fpga_project\src\fulladder.v
-\\wsl.localhost\Debian\home\koray\code\verilog\gowin\fpga_project\src\halfadder.v
-\\wsl.localhost\Debian\home\koray\code\verilog\gowin\fpga_project\src\ledTest.v
-
GowinSynthesis Constraints File---
Tool VersionV1.9.9.03 Education (64-bit)
Part NumberGW2A-LV18PG256C8/I7
DeviceGW2A-18
Device VersionC
Created TimeFri Jul 5 01:47:50 2024 -
Legal AnnouncementCopyright (C)2014-2024 Gowin Semiconductor Corporation. ALL rights reserved.
-

Synthesis Details

- - - - - - - - - - - - - -
Top Level ModuleledTest
Synthesis ProcessRunning parser:
    CPU time = 0h 0m 0.062s, Elapsed time = 0h 0m 0.256s, Peak memory usage = 438.125MB
Running netlist conversion:
    CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0s, Peak memory usage = 0MB
Running device independent optimization:
    Optimizing Phase 0: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0.005s, Peak memory usage = 438.125MB
    Optimizing Phase 1: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0.002s, Peak memory usage = 438.125MB
    Optimizing Phase 2: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0.002s, Peak memory usage = 438.125MB
Running inference:
    Inferring Phase 0: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0.004s, Peak memory usage = 438.125MB
    Inferring Phase 1: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0.001s, Peak memory usage = 438.125MB
    Inferring Phase 2: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0.003s, Peak memory usage = 438.125MB
    Inferring Phase 3: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0.002s, Peak memory usage = 438.125MB
Running technical mapping:
    Tech-Mapping Phase 0: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0.01s, Peak memory usage = 438.125MB
    Tech-Mapping Phase 1: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0.003s, Peak memory usage = 438.125MB
    Tech-Mapping Phase 2: CPU time = 0h 0m 0.046s, Elapsed time = 0h 0m 0.001s, Peak memory usage = 438.125MB
    Tech-Mapping Phase 3: CPU time = 0h 0m 0.078s, Elapsed time = 0h 0m 0.381s, Peak memory usage = 438.125MB
    Tech-Mapping Phase 4: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0.001s, Peak memory usage = 438.125MB
Generate output files:
    CPU time = 0h 0m 0.015s, Elapsed time = 0h 0m 0.058s, Peak memory usage = 438.125MB
Total Time and Memory UsageCPU time = 0h 0m 0.201s, Elapsed time = 0h 0m 0.729s, Peak memory usage = 438.125MB
-

Resource

-

Resource Usage Summary

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ResourceUsage
I/O Port 7
I/O Buf 7
    IBUF4
    OBUF3
LUT 2
    LUT42
-

Resource Utilization Summary

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ResourceUsageUtilization
Logic2(2 LUT, 0 ALU) / 20736<1%
Register0 / 161730%
  --Register as Latch0 / 161730%
  --Register as FF0 / 161730%
BSRAM0 / 460%
-
-
- - diff --git a/gowin/fpga_project/impl/gwsynthesis/fpga_project_syn_resource.html b/gowin/fpga_project/impl/gwsynthesis/fpga_project_syn_resource.html deleted file mode 100644 index b4571c4..0000000 --- a/gowin/fpga_project/impl/gwsynthesis/fpga_project_syn_resource.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -Hierarchy Module Resource - - - -
-
-

Hierarchy Module Resource

- - - - - - - - - - - - - - - - - - - - - -
MODULE NAMEREG NUMBERALU NUMBERLUT NUMBERDSP NUMBERBSRAM NUMBERSSRAM NUMBERROM16 NUMBER
ledTest (//wsl.localhost/Debian/home/koray/code/verilog/gowin/fpga_project/src/ledTest.v)--2----
-
-
- - diff --git a/gowin/fpga_project/impl/gwsynthesis/fpga_project_syn_rsc.xml b/gowin/fpga_project/impl/gwsynthesis/fpga_project_syn_rsc.xml deleted file mode 100644 index 6d3caf1..0000000 --- a/gowin/fpga_project/impl/gwsynthesis/fpga_project_syn_rsc.xml +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/gowin/fpga_project/impl/pnr/cmd.do b/gowin/fpga_project/impl/pnr/cmd.do deleted file mode 100644 index 354e8b7..0000000 --- a/gowin/fpga_project/impl/pnr/cmd.do +++ /dev/null @@ -1,13 +0,0 @@ --d \\wsl.localhost\Debian\home\koray\code\verilog\gowin\fpga_project\impl\gwsynthesis\fpga_project.vg --p GW2A-18C-PBGA256-8 --pn GW2A-LV18PG256C8/I7 --cst \\wsl.localhost\Debian\home\koray\code\verilog\gowin\fpga_project\src\fpga_project.cst --cfg \\wsl.localhost\Debian\home\koray\code\verilog\gowin\fpga_project\impl\pnr\device.cfg --bit --tr --ph --timing --cst_error --correct_hold 1 --route_maxfan 23 --global_freq 100.000 diff --git a/gowin/fpga_project/impl/pnr/device.cfg b/gowin/fpga_project/impl/pnr/device.cfg deleted file mode 100644 index fb81869..0000000 --- a/gowin/fpga_project/impl/pnr/device.cfg +++ /dev/null @@ -1,21 +0,0 @@ -set JTAG regular_io = false -set SSPI regular_io = false -set MSPI regular_io = false -set READY regular_io = false -set DONE regular_io = false -set I2C regular_io = false -set RECONFIG_N regular_io = false -set CRC_check = true -set compress = false -set encryption = false -set security_bit_enable = true -set bsram_init_fuse_print = true -set background_programming = off -set secure_mode = false -set program_done_bypass = false -set wake_up = 0 -set format = binary -set power_on_reset_monitor = true -set multiboot_spi_flash_address = 0x00000000 -set vccx = 3.3 -set unused_pin = default diff --git a/gowin/fpga_project/impl/pnr/fpga_project.bin b/gowin/fpga_project/impl/pnr/fpga_project.bin deleted file mode 100644 index 5ce8ae9db8122f08932e1ba6605cd9f205eb591d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 577178 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 LFB|Oo>C^uQQtK35 diff --git a/gowin/fpga_project/impl/pnr/fpga_project.binx b/gowin/fpga_project/impl/pnr/fpga_project.binx deleted file mode 100644 index e1cb65a5f261a5064783a8930db163b91c552744..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 577699 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 - - -Pin Report - - - -
- -
-

Pin Messages

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Report TitlePin Report
Design File\\wsl.localhost\Debian\home\koray\code\verilog\gowin\fpga_project\impl\gwsynthesis\fpga_project.vg
Physical Constraints File\\wsl.localhost\Debian\home\koray\code\verilog\gowin\fpga_project\src\fpga_project.cst
Timing Constraints File---
Tool VersionV1.9.9.03 Education (64-bit)
Part NumberGW2A-LV18PG256C8/I7
DeviceGW2A-18
Device VersionC
Created TimeFri Jul 5 01:48:01 2024 -
Legal AnnouncementCopyright (C)2014-2024 Gowin Semiconductor Corporation. All rights reserved.
-

Pin Details

-

Pinout by Port Name:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Port NameDiff PairLoc./BankConstraintDir.SiteIO TypeDrivePull ModePCI ClampHysteresisOpen DrainVrefSingle ResistorDiff ResistorBankVccio
v1[0]B12/7NinIOL7[B]LVCMOS18NAUPONNONENANAOFFNA1.2
v1[1]B14/7NinIOL2[A]LVCMOS18NAUPONNONENANAOFFNA1.2
v2[0]A15/7NinIOL2[B]LVCMOS18NAUPONNONENANAOFFNA1.2
v2[1]K13/1NinIOT36[A]LVCMOS18NAUPONNONENANANANA1.8
L14[0]N14/1YoutIOT52[B]LVCMOS188UPNANAOFFNANANA1.8
L14[1]L14/1YoutIOT34[B]LVCMOS188UPNANAOFFNANANA1.8
L14[2]L16/1YoutIOT34[A]LVCMOS188UPNANAOFFNANANA1.8
-
-

All Package Pins:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Loc./BankSignalDir.SiteIO TypeDrivePull ModePCI ClampHysteresisOpen DrainVrefSingle ResistorDiff ResistorBank Vccio
L15/0-inIOT2[A]LVCMOS18NAUPONNONENANANANA1.8
D16/0-inIOT4[A]LVCMOS18NAUPONNONENANANANA1.8
E14/0-inIOT4[B]LVCMOS18NAUPONNONENANANANA1.8
C16/0-inIOT5[A]LVCMOS18NAUPONNONENANANANA1.8
D15/0-inIOT5[B]LVCMOS18NAUPONNONENANANANA1.8
E16/0-inIOT6[A]LVCMOS18NAUPONNONENANANANA1.8
F15/0-inIOT6[B]LVCMOS18NAUPONNONENANANANA1.8
F13/0-inIOT8[A]LVCMOS18NAUPONNONENANANANA1.8
G12/0-inIOT8[B]LVCMOS18NAUPONNONENANANANA1.8
F14/0-inIOT9[A]LVCMOS18NAUPONNONENANANANA1.8
F16/0-inIOT9[B]LVCMOS18NAUPONNONENANANANA1.8
F12/0-inIOT12[A]LVCMOS18NAUPONNONENANANANA1.8
G13/0-inIOT12[B]LVCMOS18NAUPONNONENANANANA1.8
G15/0-inIOT13[A]LVCMOS18NAUPONNONENANANANA1.8
G14/0-inIOT13[B]LVCMOS18NAUPONNONENANANANA1.8
G11/0-inIOT14[A]LVCMOS18NAUPONNONENANANANA1.8
H12/0-inIOT14[B]LVCMOS18NAUPONNONENANANANA1.8
G16/0-inIOT16[A]LVCMOS18NAUPONNONENANANANA1.8
H15/0-inIOT16[B]LVCMOS18NAUPONNONENANANANA1.8
H13/0-inIOT18[A]LVCMOS18NAUPONNONENANANANA1.8
J12/0-inIOT18[B]LVCMOS18NAUPONNONENANANANA1.8
H14/0-inIOT20[A]LVCMOS18NAUPONNONENANANANA1.8
H16/0-inIOT20[B]LVCMOS18NAUPONNONENANANANA1.8
J16/0-inIOT22[A]LVCMOS18NAUPONNONENANANANA1.8
J14/0-inIOT22[B]LVCMOS18NAUPONNONENANANANA1.8
J15/0-inIOT24[A]LVCMOS18NAUPONNONENANANANA1.8
K16/0-inIOT24[B]LVCMOS18NAUPONNONENANANANA1.8
H11/0-inIOT27[A]LVCMOS18NAUPONNONENANANANA1.8
J13/0-inIOT27[B]LVCMOS18NAUPONNONENANANANA1.8
K14/1-inIOT30[A]LVCMOS18NAUPONNONENANANANA1.8
K15/1-inIOT30[B]LVCMOS18NAUPONNONENANANANA1.8
J11/1-inIOT32[A]LVCMOS18NAUPONNONENANANANA1.8
L12/1-inIOT32[B]LVCMOS18NAUPONNONENANANANA1.8
L16/1L14[2]outIOT34[A]LVCMOS188UPNANAOFFNANANA1.8
L14/1L14[1]outIOT34[B]LVCMOS188UPNANAOFFNANANA1.8
K13/1v2[1]inIOT36[A]LVCMOS18NAUPONNONENANANANA1.8
K12/1-inIOT36[B]LVCMOS18NAUPONNONENANANANA1.8
K11/1-inIOT38[A]LVCMOS18NAUPONNONENANANANA1.8
L13/1-inIOT38[B]LVCMOS18NAUPONNONENANANANA1.8
M14/1-inIOT40[A]LVCMOS18NAUPONNONENANANANA1.8
M15/1-inIOT40[B]LVCMOS18NAUPONNONENANANANA1.8
D14/1-inIOT44[A]LVCMOS18NAUPONNONENANANANA1.8
E15/1-inIOT44[B]LVCMOS18NAUPONNONENANANANA1.8
N15/1-inIOT48[A]LVCMOS18NAUPONNONENANANANA1.8
P16/1-inIOT48[B]LVCMOS18NAUPONNONENANANANA1.8
N16/1-inIOT52[A]LVCMOS18NAUPONNONENANANANA1.8
N14/1L14[0]outIOT52[B]LVCMOS188UPNANAOFFNANANA1.8
P15/1-inIOT54[A]LVCMOS18NAUPONNONENANANANA1.8
R16/1-inIOT54[B]LVCMOS18NAUPONNONENANANANA1.8
A4/5-inIOB2[A]LVCMOS18NAUPONNONENANANANA1.8
C5/5-inIOB2[B]LVCMOS18NAUPONNONENANANANA1.8
D6/5-inIOB3[A]LVCMOS18NAUPONNONENANANANA1.8
E7/5-inIOB3[B]LVCMOS18NAUPONNONENANANANA1.8
A3/5-inIOB4[A]LVCMOS18NAUPONNONENANANANA1.8
B4/5-inIOB4[B]LVCMOS18NAUPONNONENANANANA1.8
A5/5-inIOB7[A]LVCMOS18NAUPONNONENANANANA1.8
B6/5-inIOB7[B]LVCMOS18NAUPONNONENANANANA1.8
B1/5-inIOB8[A]LVCMOS18NAUPONNONENANANANA1.8
C2/5-inIOB8[B]LVCMOS18NAUPONNONENANANANA1.8
D3/5-inIOB9[A]LVCMOS18NAUPONNONENANANANA1.8
D1/5-inIOB9[B]LVCMOS18NAUPONNONENANANANA1.8
E2/5-inIOB12[A]LVCMOS18NAUPONNONENANANANA1.8
E3/5-inIOB12[B]LVCMOS18NAUPONNONENANANANA1.8
B3/5-inIOB13[A]LVCMOS18NAUPONNONENANANANA1.8
A2/5-inIOB13[B]LVCMOS18NAUPONNONENANANANA1.8
C1/5-inIOB14[A]LVCMOS18NAUPONNONENANANANA1.8
D2/5-inIOB14[B]LVCMOS18NAUPONNONENANANANA1.8
E1/5-inIOB16[A]LVCMOS18NAUPONNONENANANANA1.8
F2/5-inIOB16[B]LVCMOS18NAUPONNONENANANANA1.8
F4/5-inIOB18[A]LVCMOS18NAUPONNONENANANANA1.8
G6/5-inIOB18[B]LVCMOS18NAUPONNONENANANANA1.8
F3/5-inIOB19[A]LVCMOS18NAUPONNONENANANANA1.8
F1/5-inIOB19[B]LVCMOS18NAUPONNONENANANANA1.8
G5/5-inIOB20[A]LVCMOS18NAUPONNONENANANANA1.8
G4/5-inIOB20[B]LVCMOS18NAUPONNONENANANANA1.8
G2/5-inIOB21[A]LVCMOS18NAUPONNONENANANANA1.8
G3/5-inIOB21[B]LVCMOS18NAUPONNONENANANANA1.8
F5/5-inIOB22[A]LVCMOS18NAUPONNONENANANANA1.8
H6/5-inIOB22[B]LVCMOS18NAUPONNONENANANANA1.8
G1/5-inIOB24[A]LVCMOS18NAUPONNONENANANANA1.8
H2/5-inIOB24[B]LVCMOS18NAUPONNONENANANANA1.8
H4/5-inIOB26[A]LVCMOS18NAUPONNONENANANANA1.8
J6/5-inIOB26[B]LVCMOS18NAUPONNONENANANANA1.8
J1/5-inIOB27[A]LVCMOS18NAUPONNONENANANANA1.8
J3/5-inIOB27[B]LVCMOS18NAUPONNONENANANANA1.8
L2/4-inIOB30[A]LVCMOS18NAUPONNONENANANANA1.8
M1/4-inIOB30[B]LVCMOS18NAUPONNONENANANANA1.8
H3/4-inIOB32[A]LVCMOS18NAUPONNONENANANANA1.8
H1/4-inIOB32[B]LVCMOS18NAUPONNONENANANANA1.8
J2/4-inIOB34[A]LVCMOS18NAUPONNONENANANANA1.8
K1/4-inIOB34[B]LVCMOS18NAUPONNONENANANANA1.8
H5/4-inIOB35[A]LVCMOS18NAUPONNONENANANANA1.8
J4/4-inIOB35[B]LVCMOS18NAUPONNONENANANANA1.8
K3/4-inIOB36[A]LVCMOS18NAUPONNONENANANANA1.8
K2/4-inIOB36[B]LVCMOS18NAUPONNONENANANANA1.8
J5/4-inIOB37[A]LVCMOS18NAUPONNONENANANANA1.8
K6/4-inIOB37[B]LVCMOS18NAUPONNONENANANANA1.8
L1/4-inIOB38[A]LVCMOS18NAUPONNONENANANANA1.8
L3/4-inIOB38[B]LVCMOS18NAUPONNONENANANANA1.8
K4/4-inIOB39[A]LVCMOS18NAUPONNONENANANANA1.8
L5/4-inIOB39[B]LVCMOS18NAUPONNONENANANANA1.8
K5/4-inIOB40[A]LVCMOS18NAUPONNONENANANANA1.8
L4/4-inIOB40[B]LVCMOS18NAUPONNONENANANANA1.8
N2/4-inIOB41[A]LVCMOS18NAUPONNONENANANANA1.8
P1/4-inIOB41[B]LVCMOS18NAUPONNONENANANANA1.8
M3/4-inIOB42[A]LVCMOS18NAUPONNONENANANANA1.8
N1/4-inIOB42[B]LVCMOS18NAUPONNONENANANANA1.8
M2/4-inIOB43[A]LVCMOS18NAUPONNONENANANANA1.8
N3/4-inIOB43[B]LVCMOS18NAUPONNONENANANANA1.8
R1/4-inIOB44[A]LVCMOS18NAUPONNONENANANANA1.8
P2/4-inIOB44[B]LVCMOS18NAUPONNONENANANANA1.8
P4/4-inIOB45[A]LVCMOS18NAUPONNONENANANANA1.8
T4/4-inIOB45[B]LVCMOS18NAUPONNONENANANANA1.8
R3/4-inIOB48[A]LVCMOS18NAUPONNONENANANANA1.8
T2/4-inIOB48[B]LVCMOS18NAUPONNONENANANANA1.8
P5/4-inIOB50[A]LVCMOS18NAUPONNONENANANANA1.8
R5/4-inIOB50[B]LVCMOS18NAUPONNONENANANANA1.8
R4/4-inIOB52[A]LVCMOS18NAUPONNONENANANANA1.8
T3/4-inIOB52[B]LVCMOS18NAUPONNONENANANANA1.8
R6/4-inIOB54[A]LVCMOS18NAUPONNONENANANANA1.8
T5/4-inIOB54[B]LVCMOS18NAUPONNONENANANANA1.8
B14/7v1[1]inIOL2[A]LVCMOS18NAUPONNONENANAOFFNA1.2
A15/7v2[0]inIOL2[B]LVCMOS18NAUPONNONENANAOFFNA1.2
C12/7-inIOL7[A]LVCMOS18NAUPONNONENANANANA1.2
B12/7v1[0]inIOL7[B]LVCMOS18NAUPONNONENANAOFFNA1.2
B13/7-inIOL8[A]LVCMOS18NAUPONNONENANANANA1.2
A14/7-inIOL8[B]LVCMOS18NAUPONNONENANANANA1.2
F10/7-inIOL11[A]LVCMOS18NAUPONNONENANANANA1.2
B11/7-inIOL13[A]LVCMOS18NAUPONNONENANANANA1.2
A12/7-inIOL13[B]LVCMOS18NAUPONNONENANANANA1.2
A11/7-inIOL15[A]LVCMOS18NAUPONNONENANANANA1.2
C11/7-inIOL15[B]LVCMOS18NAUPONNONENANANANA1.2
D10/7-inIOL17[A]LVCMOS18NAUPONNONENANANANA1.2
E10/7-inIOL17[B]LVCMOS18NAUPONNONENANANANA1.2
D11/7-inIOL22[A]LVCMOS18NAUPONNONENANANANA1.2
A9/7-inIOL27[A]LVCMOS18NAUPONNONENANANANA1.2
C9/7-inIOL27[B]LVCMOS18NAUPONNONENANANANA1.2
C8/6-inIOL29[A]LVCMOS18NAUPONNONENANANANA1.8
A8/6-inIOL29[B]LVCMOS18NAUPONNONENANANANA1.8
F9/6-inIOL31[A]LVCMOS18NAUPONNONENANANANA1.8
E11/6-inIOL31[B]LVCMOS18NAUPONNONENANANANA1.8
B9/6-inIOL33[A]LVCMOS18NAUPONNONENANANANA1.8
A10/6-inIOL33[B]LVCMOS18NAUPONNONENANANANA1.8
F8/6-inIOL35[A]LVCMOS18NAUPONNONENANANANA1.8
D9/6-inIOL35[B]LVCMOS18NAUPONNONENANANANA1.8
D8/6-inIOL38[A]LVCMOS18NAUPONNONENANANANA1.8
E9/6-inIOL38[B]LVCMOS18NAUPONNONENANANANA1.8
B7/6-inIOL40[A]LVCMOS18NAUPONNONENANANANA1.8
C7/6-inIOL40[B]LVCMOS18NAUPONNONENANANANA1.8
F7/6-inIOL45[A]LVCMOS18NAUPONNONENANANANA1.8
E8/6-inIOL45[B]LVCMOS18NAUPONNONENANANANA1.8
C4/6-inIOL47[A]LVCMOS18NAUPONNONENANANANA1.8
B5/6-inIOL47[B]LVCMOS18NAUPONNONENANANANA1.8
E6/6-inIOL53[A]LVCMOS18NAUPONNONENANANANA1.8
D7/6-inIOL53[B]LVCMOS18NAUPONNONENANANANA1.8
T15/2-inIOR7[A]LVCMOS18NAUPONNONENANANANA1.8
R14/2-inIOR7[B]LVCMOS18NAUPONNONENANANANA1.8
P12/2-inIOR8[A]LVCMOS18NAUPONNONENANANANA1.8
T13/2-inIOR8[B]LVCMOS18NAUPONNONENANANANA1.8
R12/2-inIOR11[A]LVCMOS18NAUPONNONENANANANA1.8
P13/2-inIOR11[B]LVCMOS18NAUPONNONENANANANA1.8
R11/2-inIOR17[A]LVCMOS18NAUPONNONENANANANA1.8
T12/2-inIOR17[B]LVCMOS18NAUPONNONENANANANA1.8
R13/2-inIOR20[A]LVCMOS18NAUPONNONENANANANA1.8
T14/2-inIOR20[B]LVCMOS18NAUPONNONENANANANA1.8
M10/2-inIOR22[A]LVCMOS18NAUPONNONENANANANA1.8
N11/2-inIOR22[B]LVCMOS18NAUPONNONENANANANA1.8
T11/2-inIOR24[A]LVCMOS18NAUPONNONENANANANA1.8
P11/2-inIOR24[B]LVCMOS18NAUPONNONENANANANA1.8
C6/2-outIOR25[A]LVCMOS188UPNANAOFFNANANA1.8
B8/2-inIOR25[B]LVCMOS18NAUPONNONENANANANA1.8
A7/2-inIOR26[A]LVCMOS18NAUPONNONENANANANA1.8
A6/2-inIOR26[B]LVCMOS18NAUPONNONENANANANA1.8
N10/2-inIOR27[A]LVCMOS18NAUPONNONENANANANA1.8
M11/2-inIOR27[B]LVCMOS18NAUPONNONENANANANA1.8
T7/3-inIOR29[A]LVCMOS18NAUPONNONENANANANA1.8
R8/3-inIOR29[B]LVCMOS18NAUPONNONENANANANA1.8
M16/3-inIOR30[A]LVCMOS18NAUPONNONENANANANA1.8
B16/3-inIOR30[B]LVCMOS18NAUPONNONENANANANA1.8
C15/3-inIOR31[A]LVCMOS18NAUPONNONENANANANA1.8
B10/3-inIOR31[B]LVCMOS18NAUPONNONENANANANA1.8
A13/3-inIOR32[A]LVCMOS18NAUPONNONENANANANA1.8
C13/3-inIOR32[B]LVCMOS18NAUPONNONENANANANA1.8
P10/3-inIOR33[A]LVCMOS18NAUPONNONENANANANA1.8
R10/3-inIOR33[B]LVCMOS18NAUPONNONENANANANA1.8
M9/3-inIOR34[A]LVCMOS18NAUPONNONENANANANA1.8
L10/3-inIOR34[B]LVCMOS18NAUPONNONENANANANA1.8
R9/3-inIOR35[A]LVCMOS18NAUPONNONENANANANA1.8
T10/3-inIOR35[B]LVCMOS18NAUPONNONENANANANA1.8
M8/3-inIOR36[A]LVCMOS18NAUPONNONENANANANA1.8
N9/3-inIOR36[B]LVCMOS18NAUPONNONENANANANA1.8
T9/3-inIOR38[A]LVCMOS18NAUPONNONENANANANA1.8
P9/3-inIOR38[B]LVCMOS18NAUPONNONENANANANA1.8
C10/3-inIOR39[A]LVCMOS18NAUPONNONENANANANA1.8
N8/3-inIOR40[A]LVCMOS18NAUPONNONENANANANA1.8
L9/3-inIOR40[B]LVCMOS18NAUPONNONENANANANA1.8
P8/3-inIOR42[A]LVCMOS18NAUPONNONENANANANA1.8
T8/3-inIOR42[B]LVCMOS18NAUPONNONENANANANA1.8
M6/3-inIOR44[A]LVCMOS18NAUPONNONENANANANA1.8
L8/3-inIOR44[B]LVCMOS18NAUPONNONENANANANA1.8
M7/3-inIOR47[A]LVCMOS18NAUPONNONENANANANA1.8
N7/3-inIOR47[B]LVCMOS18NAUPONNONENANANANA1.8
R7/3-inIOR49[A]LVCMOS18NAUPONNONENANANANA1.8
P7/3-inIOR49[B]LVCMOS18NAUPONNONENANANANA1.8
N6/3-inIOR51[A]LVCMOS18NAUPONNONENANANANA1.8
P6/3-inIOR53[A]LVCMOS18NAUPONNONENANANANA1.8
T6/3-inIOR53[B]LVCMOS18NAUPONNONENANANANA1.8
-
-
-
- - diff --git a/gowin/fpga_project/impl/pnr/fpga_project.power.html b/gowin/fpga_project/impl/pnr/fpga_project.power.html deleted file mode 100644 index 209b8ae..0000000 --- a/gowin/fpga_project/impl/pnr/fpga_project.power.html +++ /dev/null @@ -1,272 +0,0 @@ - - - -Power Analysis Report - - - -
- -
-

Power Messages

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Report TitlePower Analysis Report
Design File\\wsl.localhost\Debian\home\koray\code\verilog\gowin\fpga_project\impl\gwsynthesis\fpga_project.vg
Physical Constraints File\\wsl.localhost\Debian\home\koray\code\verilog\gowin\fpga_project\src\fpga_project.cst
Timing Constraints File---
Tool VersionV1.9.9.03 Education (64-bit)
Part NumberGW2A-LV18PG256C8/I7
DeviceGW2A-18
Device VersionC
Created TimeFri Jul 5 01:48:01 2024 -
Legal AnnouncementCopyright (C)2014-2024 Gowin Semiconductor Corporation. All rights reserved.
-

Configure Information:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GradeCommercial
ProcessTypical
Ambient Temperature25.000 -
Use Custom Theta JAfalse
Heat SinkNone
Air FlowLFM_0
Use Custom Theta SAfalse
Board Thermal ModelNone
Use Custom Theta JBfalse
Related Vcd File
Related Saif File
Filter Glitchesfalse
Default IO Toggle Rate0.125
Default Remain Toggle Rate0.125
-

Power Summary

-

Power Information:

- - - - - - - - - - - - - -
Total Power (mW)121.872
Quiescent Power (mW)120.982
Dynamic Power (mW)0.890
-

Thermal Information:

- - - - - - - - - - - - - -
Junction Temperature28.902
Theta JA32.020
Max Allowed Ambient Temperature81.098
-

Supply Information:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Voltage SourceVoltageDynamic Current(mA)Quiescent Current(mA)Power(mW)
VCC1.0000.15869.99670.154
VCCX3.3000.15815.00050.020
VCCIO121.2000.1180.4290.656
VCCIO181.8000.0390.5401.042
-

Power Details

-

Power By Block Type:

- - - - - - - - - - -
Block TypeTotal Power(mW)Static Power(mW)Average Toggle Rate(millions of transitions/sec)
IO3.178 -2.288 -7.143 -
-

Power By Hierarchy:

- - - - - - - - - - -
Hierarchy EntityTotal Power(mW)Block Dynamic Power(mW)
ledTest0.0000.000(0.000)
-

Power By Clock Domain:

- - - - - - - - - - - -
Clock DomainClock Frequency(Mhz)Total Dynamic Power(mW)
NO CLOCK DOMAIN0.0000.000
-
-
- - diff --git a/gowin/fpga_project/impl/pnr/fpga_project.rpt.html b/gowin/fpga_project/impl/pnr/fpga_project.rpt.html deleted file mode 100644 index eb8014b..0000000 --- a/gowin/fpga_project/impl/pnr/fpga_project.rpt.html +++ /dev/null @@ -1,3819 +0,0 @@ - - - -PnR Analysis Report - - - -
- -
-

PnR Messages

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Report TitlePnR Report
Design File\\wsl.localhost\Debian\home\koray\code\verilog\gowin\fpga_project\impl\gwsynthesis\fpga_project.vg
Physical Constraints File\\wsl.localhost\Debian\home\koray\code\verilog\gowin\fpga_project\src\fpga_project.cst
Timing Constraints File---
Tool VersionV1.9.9.03 Education (64-bit)
Part NumberGW2A-LV18PG256C8/I7
DeviceGW2A-18
Device VersionC
Created TimeFri Jul 5 01:48:04 2024 -
Legal AnnouncementCopyright (C)2014-2024 Gowin Semiconductor Corporation. All rights reserved.
-

PnR Details

- - - - - - - - - - -
Place & Route ProcessRunning placement: - Placement Phase 0: CPU time = 0h 0m 0.016s, Elapsed time = 0h 0m 0.016s - Placement Phase 1: CPU time = 0h 0m 0.654s, Elapsed time = 0h 0m 0.654s - Placement Phase 2: CPU time = 0h 0m 0.007s, Elapsed time = 0h 0m 0.007s - Placement Phase 3: CPU time = 0h 0m 2s, Elapsed time = 0h 0m 2s - Total Placement: CPU time = 0h 0m 2s, Elapsed time = 0h 0m 2s -Running routing: - Routing Phase 0: CPU time = 0h 0m 0.001s, Elapsed time = 0h 0m 0s - Routing Phase 1: CPU time = 0h 0m 0.297s, Elapsed time = 0h 0m 0.297s - Routing Phase 2: CPU time = 0h 0m 0.19s, Elapsed time = 0h 0m 0.191s - Routing Phase 3: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0s - Total Routing: CPU time = 0h 0m 0.488s, Elapsed time = 0h 0m 0.488s -Generate output files: - CPU time = 0h 0m 6s, Elapsed time = 0h 0m 6s -
Total Time and Memory UsageCPU time = 0h 0m 9s, Elapsed time = 0h 0m 9s, Peak memory usage = 438MB
-
-

Resource

- -

Resource Usage Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ResourceUsageUtilization
Logic2/20736<1%
    --LUT,ALU,ROM162(2 LUT, 0 ALU, 0 ROM16)-
    --SSRAM(RAM16)0-
Register0/161730%
    --Logic Register as Latch0/155520%
    --Logic Register as FF0/155520%
    --I/O Register as Latch0/6210%
    --I/O Register as FF0/6210%
CLS1/10368<1%
I/O Port7-
I/O Buf7-
    --Input Buf4-
    --Output Buf3-
    --Inout Buf0-
IOLOGIC00%
BSRAM00%
DSP00%
PLL0/40%
DCS0/80%
DQCE0/240%
OSC0/10%
CLKDIV0/80%
DLLDLY0/80%
DQS0/90%
DHCEN0/160%
-

I/O Bank Usage Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
I/O BankUsage
bank 00/29(0%)
bank 14/20(20%)
bank 20/20(0%)
bank 30/32(0%)
bank 40/36(0%)
bank 50/36(0%)
bank 60/18(0%)
bank 73/16(18%)
-
-

Global Clock Usage Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Global ClockUsage
PRIMARY0/8(0%)
LW0/8(0%)
GCLK_PIN0/8(0%)
PLL0/4(0%)
CLKDIV0/8(0%)
DLLDLY0/8(0%)
-
-

Global Clock Signals:

- - - - - - -
SignalGlobal ClockLocation
-
-

Pinout by Port Name:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Port NameDiff PairLoc./BankConstraintDir.SiteIO TypeDrivePull ModePCI ClampHysteresisOpen DrainVrefSingle ResistorDiff ResistorBankVccio
v1[0]B12/7NinIOL7[B]LVCMOS18NAUPONNONENANAOFFNA1.2
v1[1]B14/7NinIOL2[A]LVCMOS18NAUPONNONENANAOFFNA1.2
v2[0]A15/7NinIOL2[B]LVCMOS18NAUPONNONENANAOFFNA1.2
v2[1]K13/1NinIOT36[A]LVCMOS18NAUPONNONENANANANA1.8
L14[0]N14/1YoutIOT52[B]LVCMOS188UPNANAOFFNANANA1.8
L14[1]L14/1YoutIOT34[B]LVCMOS188UPNANAOFFNANANA1.8
L14[2]L16/1YoutIOT34[A]LVCMOS188UPNANAOFFNANANA1.8
-
-

All Package Pins:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Loc./BankSignalDir.SiteIO TypeDrivePull ModePCI ClampHysteresisOpen DrainVrefSingle ResistorDiff ResistorBank Vccio
L15/0-inIOT2[A]LVCMOS18NAUPONNONENANANANA1.8
D16/0-inIOT4[A]LVCMOS18NAUPONNONENANANANA1.8
E14/0-inIOT4[B]LVCMOS18NAUPONNONENANANANA1.8
C16/0-inIOT5[A]LVCMOS18NAUPONNONENANANANA1.8
D15/0-inIOT5[B]LVCMOS18NAUPONNONENANANANA1.8
E16/0-inIOT6[A]LVCMOS18NAUPONNONENANANANA1.8
F15/0-inIOT6[B]LVCMOS18NAUPONNONENANANANA1.8
F13/0-inIOT8[A]LVCMOS18NAUPONNONENANANANA1.8
G12/0-inIOT8[B]LVCMOS18NAUPONNONENANANANA1.8
F14/0-inIOT9[A]LVCMOS18NAUPONNONENANANANA1.8
F16/0-inIOT9[B]LVCMOS18NAUPONNONENANANANA1.8
F12/0-inIOT12[A]LVCMOS18NAUPONNONENANANANA1.8
G13/0-inIOT12[B]LVCMOS18NAUPONNONENANANANA1.8
G15/0-inIOT13[A]LVCMOS18NAUPONNONENANANANA1.8
G14/0-inIOT13[B]LVCMOS18NAUPONNONENANANANA1.8
G11/0-inIOT14[A]LVCMOS18NAUPONNONENANANANA1.8
H12/0-inIOT14[B]LVCMOS18NAUPONNONENANANANA1.8
G16/0-inIOT16[A]LVCMOS18NAUPONNONENANANANA1.8
H15/0-inIOT16[B]LVCMOS18NAUPONNONENANANANA1.8
H13/0-inIOT18[A]LVCMOS18NAUPONNONENANANANA1.8
J12/0-inIOT18[B]LVCMOS18NAUPONNONENANANANA1.8
H14/0-inIOT20[A]LVCMOS18NAUPONNONENANANANA1.8
H16/0-inIOT20[B]LVCMOS18NAUPONNONENANANANA1.8
J16/0-inIOT22[A]LVCMOS18NAUPONNONENANANANA1.8
J14/0-inIOT22[B]LVCMOS18NAUPONNONENANANANA1.8
J15/0-inIOT24[A]LVCMOS18NAUPONNONENANANANA1.8
K16/0-inIOT24[B]LVCMOS18NAUPONNONENANANANA1.8
H11/0-inIOT27[A]LVCMOS18NAUPONNONENANANANA1.8
J13/0-inIOT27[B]LVCMOS18NAUPONNONENANANANA1.8
K14/1-inIOT30[A]LVCMOS18NAUPONNONENANANANA1.8
K15/1-inIOT30[B]LVCMOS18NAUPONNONENANANANA1.8
J11/1-inIOT32[A]LVCMOS18NAUPONNONENANANANA1.8
L12/1-inIOT32[B]LVCMOS18NAUPONNONENANANANA1.8
L16/1L14[2]outIOT34[A]LVCMOS188UPNANAOFFNANANA1.8
L14/1L14[1]outIOT34[B]LVCMOS188UPNANAOFFNANANA1.8
K13/1v2[1]inIOT36[A]LVCMOS18NAUPONNONENANANANA1.8
K12/1-inIOT36[B]LVCMOS18NAUPONNONENANANANA1.8
K11/1-inIOT38[A]LVCMOS18NAUPONNONENANANANA1.8
L13/1-inIOT38[B]LVCMOS18NAUPONNONENANANANA1.8
M14/1-inIOT40[A]LVCMOS18NAUPONNONENANANANA1.8
M15/1-inIOT40[B]LVCMOS18NAUPONNONENANANANA1.8
D14/1-inIOT44[A]LVCMOS18NAUPONNONENANANANA1.8
E15/1-inIOT44[B]LVCMOS18NAUPONNONENANANANA1.8
N15/1-inIOT48[A]LVCMOS18NAUPONNONENANANANA1.8
P16/1-inIOT48[B]LVCMOS18NAUPONNONENANANANA1.8
N16/1-inIOT52[A]LVCMOS18NAUPONNONENANANANA1.8
N14/1L14[0]outIOT52[B]LVCMOS188UPNANAOFFNANANA1.8
P15/1-inIOT54[A]LVCMOS18NAUPONNONENANANANA1.8
R16/1-inIOT54[B]LVCMOS18NAUPONNONENANANANA1.8
A4/5-inIOB2[A]LVCMOS18NAUPONNONENANANANA1.8
C5/5-inIOB2[B]LVCMOS18NAUPONNONENANANANA1.8
D6/5-inIOB3[A]LVCMOS18NAUPONNONENANANANA1.8
E7/5-inIOB3[B]LVCMOS18NAUPONNONENANANANA1.8
A3/5-inIOB4[A]LVCMOS18NAUPONNONENANANANA1.8
B4/5-inIOB4[B]LVCMOS18NAUPONNONENANANANA1.8
A5/5-inIOB7[A]LVCMOS18NAUPONNONENANANANA1.8
B6/5-inIOB7[B]LVCMOS18NAUPONNONENANANANA1.8
B1/5-inIOB8[A]LVCMOS18NAUPONNONENANANANA1.8
C2/5-inIOB8[B]LVCMOS18NAUPONNONENANANANA1.8
D3/5-inIOB9[A]LVCMOS18NAUPONNONENANANANA1.8
D1/5-inIOB9[B]LVCMOS18NAUPONNONENANANANA1.8
E2/5-inIOB12[A]LVCMOS18NAUPONNONENANANANA1.8
E3/5-inIOB12[B]LVCMOS18NAUPONNONENANANANA1.8
B3/5-inIOB13[A]LVCMOS18NAUPONNONENANANANA1.8
A2/5-inIOB13[B]LVCMOS18NAUPONNONENANANANA1.8
C1/5-inIOB14[A]LVCMOS18NAUPONNONENANANANA1.8
D2/5-inIOB14[B]LVCMOS18NAUPONNONENANANANA1.8
E1/5-inIOB16[A]LVCMOS18NAUPONNONENANANANA1.8
F2/5-inIOB16[B]LVCMOS18NAUPONNONENANANANA1.8
F4/5-inIOB18[A]LVCMOS18NAUPONNONENANANANA1.8
G6/5-inIOB18[B]LVCMOS18NAUPONNONENANANANA1.8
F3/5-inIOB19[A]LVCMOS18NAUPONNONENANANANA1.8
F1/5-inIOB19[B]LVCMOS18NAUPONNONENANANANA1.8
G5/5-inIOB20[A]LVCMOS18NAUPONNONENANANANA1.8
G4/5-inIOB20[B]LVCMOS18NAUPONNONENANANANA1.8
G2/5-inIOB21[A]LVCMOS18NAUPONNONENANANANA1.8
G3/5-inIOB21[B]LVCMOS18NAUPONNONENANANANA1.8
F5/5-inIOB22[A]LVCMOS18NAUPONNONENANANANA1.8
H6/5-inIOB22[B]LVCMOS18NAUPONNONENANANANA1.8
G1/5-inIOB24[A]LVCMOS18NAUPONNONENANANANA1.8
H2/5-inIOB24[B]LVCMOS18NAUPONNONENANANANA1.8
H4/5-inIOB26[A]LVCMOS18NAUPONNONENANANANA1.8
J6/5-inIOB26[B]LVCMOS18NAUPONNONENANANANA1.8
J1/5-inIOB27[A]LVCMOS18NAUPONNONENANANANA1.8
J3/5-inIOB27[B]LVCMOS18NAUPONNONENANANANA1.8
L2/4-inIOB30[A]LVCMOS18NAUPONNONENANANANA1.8
M1/4-inIOB30[B]LVCMOS18NAUPONNONENANANANA1.8
H3/4-inIOB32[A]LVCMOS18NAUPONNONENANANANA1.8
H1/4-inIOB32[B]LVCMOS18NAUPONNONENANANANA1.8
J2/4-inIOB34[A]LVCMOS18NAUPONNONENANANANA1.8
K1/4-inIOB34[B]LVCMOS18NAUPONNONENANANANA1.8
H5/4-inIOB35[A]LVCMOS18NAUPONNONENANANANA1.8
J4/4-inIOB35[B]LVCMOS18NAUPONNONENANANANA1.8
K3/4-inIOB36[A]LVCMOS18NAUPONNONENANANANA1.8
K2/4-inIOB36[B]LVCMOS18NAUPONNONENANANANA1.8
J5/4-inIOB37[A]LVCMOS18NAUPONNONENANANANA1.8
K6/4-inIOB37[B]LVCMOS18NAUPONNONENANANANA1.8
L1/4-inIOB38[A]LVCMOS18NAUPONNONENANANANA1.8
L3/4-inIOB38[B]LVCMOS18NAUPONNONENANANANA1.8
K4/4-inIOB39[A]LVCMOS18NAUPONNONENANANANA1.8
L5/4-inIOB39[B]LVCMOS18NAUPONNONENANANANA1.8
K5/4-inIOB40[A]LVCMOS18NAUPONNONENANANANA1.8
L4/4-inIOB40[B]LVCMOS18NAUPONNONENANANANA1.8
N2/4-inIOB41[A]LVCMOS18NAUPONNONENANANANA1.8
P1/4-inIOB41[B]LVCMOS18NAUPONNONENANANANA1.8
M3/4-inIOB42[A]LVCMOS18NAUPONNONENANANANA1.8
N1/4-inIOB42[B]LVCMOS18NAUPONNONENANANANA1.8
M2/4-inIOB43[A]LVCMOS18NAUPONNONENANANANA1.8
N3/4-inIOB43[B]LVCMOS18NAUPONNONENANANANA1.8
R1/4-inIOB44[A]LVCMOS18NAUPONNONENANANANA1.8
P2/4-inIOB44[B]LVCMOS18NAUPONNONENANANANA1.8
P4/4-inIOB45[A]LVCMOS18NAUPONNONENANANANA1.8
T4/4-inIOB45[B]LVCMOS18NAUPONNONENANANANA1.8
R3/4-inIOB48[A]LVCMOS18NAUPONNONENANANANA1.8
T2/4-inIOB48[B]LVCMOS18NAUPONNONENANANANA1.8
P5/4-inIOB50[A]LVCMOS18NAUPONNONENANANANA1.8
R5/4-inIOB50[B]LVCMOS18NAUPONNONENANANANA1.8
R4/4-inIOB52[A]LVCMOS18NAUPONNONENANANANA1.8
T3/4-inIOB52[B]LVCMOS18NAUPONNONENANANANA1.8
R6/4-inIOB54[A]LVCMOS18NAUPONNONENANANANA1.8
T5/4-inIOB54[B]LVCMOS18NAUPONNONENANANANA1.8
B14/7v1[1]inIOL2[A]LVCMOS18NAUPONNONENANAOFFNA1.2
A15/7v2[0]inIOL2[B]LVCMOS18NAUPONNONENANAOFFNA1.2
C12/7-inIOL7[A]LVCMOS18NAUPONNONENANANANA1.2
B12/7v1[0]inIOL7[B]LVCMOS18NAUPONNONENANAOFFNA1.2
B13/7-inIOL8[A]LVCMOS18NAUPONNONENANANANA1.2
A14/7-inIOL8[B]LVCMOS18NAUPONNONENANANANA1.2
F10/7-inIOL11[A]LVCMOS18NAUPONNONENANANANA1.2
B11/7-inIOL13[A]LVCMOS18NAUPONNONENANANANA1.2
A12/7-inIOL13[B]LVCMOS18NAUPONNONENANANANA1.2
A11/7-inIOL15[A]LVCMOS18NAUPONNONENANANANA1.2
C11/7-inIOL15[B]LVCMOS18NAUPONNONENANANANA1.2
D10/7-inIOL17[A]LVCMOS18NAUPONNONENANANANA1.2
E10/7-inIOL17[B]LVCMOS18NAUPONNONENANANANA1.2
D11/7-inIOL22[A]LVCMOS18NAUPONNONENANANANA1.2
A9/7-inIOL27[A]LVCMOS18NAUPONNONENANANANA1.2
C9/7-inIOL27[B]LVCMOS18NAUPONNONENANANANA1.2
C8/6-inIOL29[A]LVCMOS18NAUPONNONENANANANA1.8
A8/6-inIOL29[B]LVCMOS18NAUPONNONENANANANA1.8
F9/6-inIOL31[A]LVCMOS18NAUPONNONENANANANA1.8
E11/6-inIOL31[B]LVCMOS18NAUPONNONENANANANA1.8
B9/6-inIOL33[A]LVCMOS18NAUPONNONENANANANA1.8
A10/6-inIOL33[B]LVCMOS18NAUPONNONENANANANA1.8
F8/6-inIOL35[A]LVCMOS18NAUPONNONENANANANA1.8
D9/6-inIOL35[B]LVCMOS18NAUPONNONENANANANA1.8
D8/6-inIOL38[A]LVCMOS18NAUPONNONENANANANA1.8
E9/6-inIOL38[B]LVCMOS18NAUPONNONENANANANA1.8
B7/6-inIOL40[A]LVCMOS18NAUPONNONENANANANA1.8
C7/6-inIOL40[B]LVCMOS18NAUPONNONENANANANA1.8
F7/6-inIOL45[A]LVCMOS18NAUPONNONENANANANA1.8
E8/6-inIOL45[B]LVCMOS18NAUPONNONENANANANA1.8
C4/6-inIOL47[A]LVCMOS18NAUPONNONENANANANA1.8
B5/6-inIOL47[B]LVCMOS18NAUPONNONENANANANA1.8
E6/6-inIOL53[A]LVCMOS18NAUPONNONENANANANA1.8
D7/6-inIOL53[B]LVCMOS18NAUPONNONENANANANA1.8
T15/2-inIOR7[A]LVCMOS18NAUPONNONENANANANA1.8
R14/2-inIOR7[B]LVCMOS18NAUPONNONENANANANA1.8
P12/2-inIOR8[A]LVCMOS18NAUPONNONENANANANA1.8
T13/2-inIOR8[B]LVCMOS18NAUPONNONENANANANA1.8
R12/2-inIOR11[A]LVCMOS18NAUPONNONENANANANA1.8
P13/2-inIOR11[B]LVCMOS18NAUPONNONENANANANA1.8
R11/2-inIOR17[A]LVCMOS18NAUPONNONENANANANA1.8
T12/2-inIOR17[B]LVCMOS18NAUPONNONENANANANA1.8
R13/2-inIOR20[A]LVCMOS18NAUPONNONENANANANA1.8
T14/2-inIOR20[B]LVCMOS18NAUPONNONENANANANA1.8
M10/2-inIOR22[A]LVCMOS18NAUPONNONENANANANA1.8
N11/2-inIOR22[B]LVCMOS18NAUPONNONENANANANA1.8
T11/2-inIOR24[A]LVCMOS18NAUPONNONENANANANA1.8
P11/2-inIOR24[B]LVCMOS18NAUPONNONENANANANA1.8
C6/2-outIOR25[A]LVCMOS188UPNANAOFFNANANA1.8
B8/2-inIOR25[B]LVCMOS18NAUPONNONENANANANA1.8
A7/2-inIOR26[A]LVCMOS18NAUPONNONENANANANA1.8
A6/2-inIOR26[B]LVCMOS18NAUPONNONENANANANA1.8
N10/2-inIOR27[A]LVCMOS18NAUPONNONENANANANA1.8
M11/2-inIOR27[B]LVCMOS18NAUPONNONENANANANA1.8
T7/3-inIOR29[A]LVCMOS18NAUPONNONENANANANA1.8
R8/3-inIOR29[B]LVCMOS18NAUPONNONENANANANA1.8
M16/3-inIOR30[A]LVCMOS18NAUPONNONENANANANA1.8
B16/3-inIOR30[B]LVCMOS18NAUPONNONENANANANA1.8
C15/3-inIOR31[A]LVCMOS18NAUPONNONENANANANA1.8
B10/3-inIOR31[B]LVCMOS18NAUPONNONENANANANA1.8
A13/3-inIOR32[A]LVCMOS18NAUPONNONENANANANA1.8
C13/3-inIOR32[B]LVCMOS18NAUPONNONENANANANA1.8
P10/3-inIOR33[A]LVCMOS18NAUPONNONENANANANA1.8
R10/3-inIOR33[B]LVCMOS18NAUPONNONENANANANA1.8
M9/3-inIOR34[A]LVCMOS18NAUPONNONENANANANA1.8
L10/3-inIOR34[B]LVCMOS18NAUPONNONENANANANA1.8
R9/3-inIOR35[A]LVCMOS18NAUPONNONENANANANA1.8
T10/3-inIOR35[B]LVCMOS18NAUPONNONENANANANA1.8
M8/3-inIOR36[A]LVCMOS18NAUPONNONENANANANA1.8
N9/3-inIOR36[B]LVCMOS18NAUPONNONENANANANA1.8
T9/3-inIOR38[A]LVCMOS18NAUPONNONENANANANA1.8
P9/3-inIOR38[B]LVCMOS18NAUPONNONENANANANA1.8
C10/3-inIOR39[A]LVCMOS18NAUPONNONENANANANA1.8
N8/3-inIOR40[A]LVCMOS18NAUPONNONENANANANA1.8
L9/3-inIOR40[B]LVCMOS18NAUPONNONENANANANA1.8
P8/3-inIOR42[A]LVCMOS18NAUPONNONENANANANA1.8
T8/3-inIOR42[B]LVCMOS18NAUPONNONENANANANA1.8
M6/3-inIOR44[A]LVCMOS18NAUPONNONENANANANA1.8
L8/3-inIOR44[B]LVCMOS18NAUPONNONENANANANA1.8
M7/3-inIOR47[A]LVCMOS18NAUPONNONENANANANA1.8
N7/3-inIOR47[B]LVCMOS18NAUPONNONENANANANA1.8
R7/3-inIOR49[A]LVCMOS18NAUPONNONENANANANA1.8
P7/3-inIOR49[B]LVCMOS18NAUPONNONENANANANA1.8
N6/3-inIOR51[A]LVCMOS18NAUPONNONENANANANA1.8
P6/3-inIOR53[A]LVCMOS18NAUPONNONENANANANA1.8
T6/3-inIOR53[B]LVCMOS18NAUPONNONENANANANA1.8
-
-
-
- - diff --git a/gowin/fpga_project/impl/pnr/fpga_project.rpt.txt b/gowin/fpga_project/impl/pnr/fpga_project.rpt.txt deleted file mode 100644 index 69e2502..0000000 --- a/gowin/fpga_project/impl/pnr/fpga_project.rpt.txt +++ /dev/null @@ -1,345 +0,0 @@ -//Copyright (C)2014-2024 Gowin Semiconductor Corporation. -//All rights reserved. - - -1. PnR Messages - - : PnR Report - : \\wsl.localhost\Debian\home\koray\code\verilog\gowin\fpga_project\impl\gwsynthesis\fpga_project.vg - : \\wsl.localhost\Debian\home\koray\code\verilog\gowin\fpga_project\src\fpga_project.cst - : --- - : V1.9.9.03 Education (64-bit) - : GW2A-LV18PG256C8/I7 - : GW2A-18 - : C - :Fri Jul 5 01:48:06 2024 - - -2. PnR Details - - Running placement: - Placement Phase 0: CPU time = 0h 0m 0.016s, Elapsed time = 0h 0m 0.016s - Placement Phase 1: CPU time = 0h 0m 0.654s, Elapsed time = 0h 0m 0.654s - Placement Phase 2: CPU time = 0h 0m 0.007s, Elapsed time = 0h 0m 0.007s - Placement Phase 3: CPU time = 0h 0m 2s, Elapsed time = 0h 0m 2s - Total Placement: CPU time = 0h 0m 2s, Elapsed time = 0h 0m 2s - Running routing: - Routing Phase 0: CPU time = 0h 0m 0.001s, Elapsed time = 0h 0m 0s - Routing Phase 1: CPU time = 0h 0m 0.297s, Elapsed time = 0h 0m 0.297s - Routing Phase 2: CPU time = 0h 0m 0.19s, Elapsed time = 0h 0m 0.191s - Routing Phase 3: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0s - Total Routing: CPU time = 0h 0m 0.488s, Elapsed time = 0h 0m 0.488s - Generate output files: - CPU time = 0h 0m 6s, Elapsed time = 0h 0m 6s - - Total Time and Memory Usage: CPU time = 0h 0m 9s, Elapsed time = 0h 0m 9s, Peak memory usage = 438MB - - -3. Resource Usage Summary - - ---------------------------------------------------------- - Resources | Usage - ---------------------------------------------------------- - Logic | 2/20736 <1% - --LUT,ALU,ROM16 | 2(2 LUT, 0 ALU, 0 ROM16) - --SSRAM(RAM16) | 0 - Register | 0/16173 0% - --Logic Register as Latch | 0/15552 0% - --Logic Register as FF | 0/15552 0% - --I/O Register as Latch | 0/621 0% - --I/O Register as FF | 0/621 0% - CLS | 1/10368 <1% - I/O Port | 7 - I/O Buf | 7 - --Input Buf | 4 - --Output Buf | 3 - --Inout Buf | 0 - IOLOGIC | 0% - BSRAM | 0% - DSP | 0% - PLL | 0/4 0% - DCS | 0/8 0% - DQCE | 0/24 0% - OSC | 0/1 0% - CLKDIV | 0/8 0% - DLLDLY | 0/8 0% - DQS | 0/9 0% - DHCEN | 0/16 0% - ========================================================== - - - -4. I/O Bank Usage Summary - - ----------------------- - I/O Bank | Usage - ----------------------- - bank 0 | 0/29(0%) - bank 1 | 4/20(20%) - bank 2 | 0/20(0%) - bank 3 | 0/32(0%) - bank 4 | 0/36(0%) - bank 5 | 0/36(0%) - bank 6 | 0/18(0%) - bank 7 | 3/16(18%) - ======================= - - -5. Global Clock Usage Summary - - ------------------------------- - Global Clock | Usage - ------------------------------- - PRIMARY | 0/8(0%) - LW | 0/8(0%) - GCLK_PIN | 0/8(0%) - PLL | 0/4(0%) - CLKDIV | 0/8(0%) - DLLDLY | 0/8(0%) - =============================== - - -6. Global Clock Signals - - ------------------------------------------- - Signal | Global Clock | Location - ------------------------------------------- - =========================================== - - -7. Pinout by Port Name - ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -Port Name | Diff Pair | Loc./Bank | Constraint | Dir. | Site | IO Type | Drive | Pull Mode | PCI Clamp | Hysteresis | Open Drain | Vref | Single Resistor | Diff Resistor | BankVccio ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -v1[0] | | B12/7 | N | in | IOL7[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | OFF | NA | 1.2 -v1[1] | | B14/7 | N | in | IOL2[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | OFF | NA | 1.2 -v2[0] | | A15/7 | N | in | IOL2[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | OFF | NA | 1.2 -v2[1] | | K13/1 | N | in | IOT36[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -L14[0] | | N14/1 | Y | out | IOT52[B] | LVCMOS18 | 8 | UP | NA | NA | OFF | NA | NA | NA | 1.8 -L14[1] | | L14/1 | Y | out | IOT34[B] | LVCMOS18 | 8 | UP | NA | NA | OFF | NA | NA | NA | 1.8 -L14[2] | | L16/1 | Y | out | IOT34[A] | LVCMOS18 | 8 | UP | NA | NA | OFF | NA | NA | NA | 1.8 -================================================================================================================================================================================================================== - - - - -8. All Package Pins - ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -Loc./Bank| Signal | Dir. | Site | IO Type | Drive | Pull Mode | PCI Clamp | Hysteresis | Open Drain | Vref | Single Resistor | Diff Resistor | Bank Vccio ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -L15/0 | - | in | IOT2[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -D16/0 | - | in | IOT4[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -E14/0 | - | in | IOT4[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -C16/0 | - | in | IOT5[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -D15/0 | - | in | IOT5[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -E16/0 | - | in | IOT6[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -F15/0 | - | in | IOT6[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -F13/0 | - | in | IOT8[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -G12/0 | - | in | IOT8[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -F14/0 | - | in | IOT9[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -F16/0 | - | in | IOT9[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -F12/0 | - | in | IOT12[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -G13/0 | - | in | IOT12[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -G15/0 | - | in | IOT13[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -G14/0 | - | in | IOT13[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -G11/0 | - | in | IOT14[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -H12/0 | - | in | IOT14[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -G16/0 | - | in | IOT16[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -H15/0 | - | in | IOT16[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -H13/0 | - | in | IOT18[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -J12/0 | - | in | IOT18[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -H14/0 | - | in | IOT20[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -H16/0 | - | in | IOT20[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -J16/0 | - | in | IOT22[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -J14/0 | - | in | IOT22[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -J15/0 | - | in | IOT24[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -K16/0 | - | in | IOT24[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -H11/0 | - | in | IOT27[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -J13/0 | - | in | IOT27[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -K14/1 | - | in | IOT30[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -K15/1 | - | in | IOT30[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -J11/1 | - | in | IOT32[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -L12/1 | - | in | IOT32[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -L16/1 | L14[2] | out | IOT34[A] | LVCMOS18 | 8 | UP | NA | NA | OFF | NA | NA | NA | 1.8 -L14/1 | L14[1] | out | IOT34[B] | LVCMOS18 | 8 | UP | NA | NA | OFF | NA | NA | NA | 1.8 -K13/1 | v2[1] | in | IOT36[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -K12/1 | - | in | IOT36[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -K11/1 | - | in | IOT38[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -L13/1 | - | in | IOT38[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -M14/1 | - | in | IOT40[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -M15/1 | - | in | IOT40[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -D14/1 | - | in | IOT44[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -E15/1 | - | in | IOT44[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -N15/1 | - | in | IOT48[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -P16/1 | - | in | IOT48[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -N16/1 | - | in | IOT52[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -N14/1 | L14[0] | out | IOT52[B] | LVCMOS18 | 8 | UP | NA | NA | OFF | NA | NA | NA | 1.8 -P15/1 | - | in | IOT54[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -R16/1 | - | in | IOT54[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -A4/5 | - | in | IOB2[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -C5/5 | - | in | IOB2[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -D6/5 | - | in | IOB3[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -E7/5 | - | in | IOB3[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -A3/5 | - | in | IOB4[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -B4/5 | - | in | IOB4[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -A5/5 | - | in | IOB7[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -B6/5 | - | in | IOB7[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -B1/5 | - | in | IOB8[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -C2/5 | - | in | IOB8[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -D3/5 | - | in | IOB9[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -D1/5 | - | in | IOB9[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -E2/5 | - | in | IOB12[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -E3/5 | - | in | IOB12[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -B3/5 | - | in | IOB13[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -A2/5 | - | in | IOB13[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -C1/5 | - | in | IOB14[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -D2/5 | - | in | IOB14[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -E1/5 | - | in | IOB16[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -F2/5 | - | in | IOB16[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -F4/5 | - | in | IOB18[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -G6/5 | - | in | IOB18[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -F3/5 | - | in | IOB19[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -F1/5 | - | in | IOB19[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -G5/5 | - | in | IOB20[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -G4/5 | - | in | IOB20[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -G2/5 | - | in | IOB21[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -G3/5 | - | in | IOB21[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -F5/5 | - | in | IOB22[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -H6/5 | - | in | IOB22[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -G1/5 | - | in | IOB24[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -H2/5 | - | in | IOB24[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -H4/5 | - | in | IOB26[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -J6/5 | - | in | IOB26[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -J1/5 | - | in | IOB27[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -J3/5 | - | in | IOB27[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -L2/4 | - | in | IOB30[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -M1/4 | - | in | IOB30[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -H3/4 | - | in | IOB32[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -H1/4 | - | in | IOB32[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -J2/4 | - | in | IOB34[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -K1/4 | - | in | IOB34[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -H5/4 | - | in | IOB35[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -J4/4 | - | in | IOB35[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -K3/4 | - | in | IOB36[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -K2/4 | - | in | IOB36[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -J5/4 | - | in | IOB37[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -K6/4 | - | in | IOB37[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -L1/4 | - | in | IOB38[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -L3/4 | - | in | IOB38[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -K4/4 | - | in | IOB39[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -L5/4 | - | in | IOB39[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -K5/4 | - | in | IOB40[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -L4/4 | - | in | IOB40[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -N2/4 | - | in | IOB41[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -P1/4 | - | in | IOB41[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -M3/4 | - | in | IOB42[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -N1/4 | - | in | IOB42[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -M2/4 | - | in | IOB43[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -N3/4 | - | in | IOB43[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -R1/4 | - | in | IOB44[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -P2/4 | - | in | IOB44[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -P4/4 | - | in | IOB45[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -T4/4 | - | in | IOB45[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -R3/4 | - | in | IOB48[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -T2/4 | - | in | IOB48[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -P5/4 | - | in | IOB50[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -R5/4 | - | in | IOB50[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -R4/4 | - | in | IOB52[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -T3/4 | - | in | IOB52[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -R6/4 | - | in | IOB54[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -T5/4 | - | in | IOB54[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -B14/7 | v1[1] | in | IOL2[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | OFF | NA | 1.2 -A15/7 | v2[0] | in | IOL2[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | OFF | NA | 1.2 -C12/7 | - | in | IOL7[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.2 -B12/7 | v1[0] | in | IOL7[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | OFF | NA | 1.2 -B13/7 | - | in | IOL8[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.2 -A14/7 | - | in | IOL8[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.2 -F10/7 | - | in | IOL11[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.2 -B11/7 | - | in | IOL13[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.2 -A12/7 | - | in | IOL13[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.2 -A11/7 | - | in | IOL15[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.2 -C11/7 | - | in | IOL15[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.2 -D10/7 | - | in | IOL17[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.2 -E10/7 | - | in | IOL17[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.2 -D11/7 | - | in | IOL22[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.2 -A9/7 | - | in | IOL27[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.2 -C9/7 | - | in | IOL27[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.2 -C8/6 | - | in | IOL29[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -A8/6 | - | in | IOL29[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -F9/6 | - | in | IOL31[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -E11/6 | - | in | IOL31[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -B9/6 | - | in | IOL33[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -A10/6 | - | in | IOL33[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -F8/6 | - | in | IOL35[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -D9/6 | - | in | IOL35[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -D8/6 | - | in | IOL38[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -E9/6 | - | in | IOL38[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -B7/6 | - | in | IOL40[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -C7/6 | - | in | IOL40[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -F7/6 | - | in | IOL45[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -E8/6 | - | in | IOL45[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -C4/6 | - | in | IOL47[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -B5/6 | - | in | IOL47[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -E6/6 | - | in | IOL53[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -D7/6 | - | in | IOL53[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -T15/2 | - | in | IOR7[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -R14/2 | - | in | IOR7[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -P12/2 | - | in | IOR8[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -T13/2 | - | in | IOR8[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -R12/2 | - | in | IOR11[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -P13/2 | - | in | IOR11[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -R11/2 | - | in | IOR17[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -T12/2 | - | in | IOR17[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -R13/2 | - | in | IOR20[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -T14/2 | - | in | IOR20[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -M10/2 | - | in | IOR22[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -N11/2 | - | in | IOR22[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -T11/2 | - | in | IOR24[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -P11/2 | - | in | IOR24[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -C6/2 | - | out | IOR25[A] | LVCMOS18 | 8 | UP | NA | NA | OFF | NA | NA | NA | 1.8 -B8/2 | - | in | IOR25[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -A7/2 | - | in | IOR26[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -A6/2 | - | in | IOR26[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -N10/2 | - | in | IOR27[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -M11/2 | - | in | IOR27[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -T7/3 | - | in | IOR29[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -R8/3 | - | in | IOR29[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -M16/3 | - | in | IOR30[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -B16/3 | - | in | IOR30[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -C15/3 | - | in | IOR31[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -B10/3 | - | in | IOR31[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -A13/3 | - | in | IOR32[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -C13/3 | - | in | IOR32[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -P10/3 | - | in | IOR33[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -R10/3 | - | in | IOR33[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -M9/3 | - | in | IOR34[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -L10/3 | - | in | IOR34[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -R9/3 | - | in | IOR35[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -T10/3 | - | in | IOR35[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -M8/3 | - | in | IOR36[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -N9/3 | - | in | IOR36[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -T9/3 | - | in | IOR38[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -P9/3 | - | in | IOR38[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -C10/3 | - | in | IOR39[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -N8/3 | - | in | IOR40[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -L9/3 | - | in | IOR40[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -P8/3 | - | in | IOR42[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -T8/3 | - | in | IOR42[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -M6/3 | - | in | IOR44[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -L8/3 | - | in | IOR44[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -M7/3 | - | in | IOR47[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -N7/3 | - | in | IOR47[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -R7/3 | - | in | IOR49[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -P7/3 | - | in | IOR49[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -N6/3 | - | in | IOR51[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -P6/3 | - | in | IOR53[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -T6/3 | - | in | IOR53[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -==================================================================================================================================================================================== - - diff --git a/gowin/fpga_project/impl/pnr/fpga_project.timing_paths b/gowin/fpga_project/impl/pnr/fpga_project.timing_paths deleted file mode 100644 index e69de29..0000000 diff --git a/gowin/fpga_project/impl/pnr/fpga_project.tr.html b/gowin/fpga_project/impl/pnr/fpga_project.tr.html deleted file mode 100644 index 8859081..0000000 --- a/gowin/fpga_project/impl/pnr/fpga_project.tr.html +++ /dev/null @@ -1,10 +0,0 @@ - - - -Timing Analysis Report - - - - - - diff --git a/gowin/fpga_project/impl/pnr/fpga_project_tr_cata.html b/gowin/fpga_project/impl/pnr/fpga_project_tr_cata.html deleted file mode 100644 index 9a5cc67..0000000 --- a/gowin/fpga_project/impl/pnr/fpga_project_tr_cata.html +++ /dev/null @@ -1,132 +0,0 @@ - - - -Timing Report Navigation - - - - - - - diff --git a/gowin/fpga_project/impl/pnr/fpga_project_tr_content.html b/gowin/fpga_project/impl/pnr/fpga_project_tr_content.html deleted file mode 100644 index ab09fc9..0000000 --- a/gowin/fpga_project/impl/pnr/fpga_project_tr_content.html +++ /dev/null @@ -1,257 +0,0 @@ - - - -Timing Analysis Report - - - -
-

Timing Messages

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Report TitleTiming Analysis Report
Design File\\wsl.localhost\Debian\home\koray\code\verilog\gowin\fpga_project\impl\gwsynthesis\fpga_project.vg
Physical Constraints File\\wsl.localhost\Debian\home\koray\code\verilog\gowin\fpga_project\src\fpga_project.cst
Timing Constraint File---
Tool VersionV1.9.9.03 Education (64-bit)
Part NumberGW2A-LV18PG256C8/I7
DeviceGW2A-18
Device VersionC
Created TimeFri Jul 5 01:48:07 2024 -
Legal AnnouncementCopyright (C)2014-2024 Gowin Semiconductor Corporation. All rights reserved.
-

Timing Summaries

-

STA Tool Run Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Setup Delay ModelSlow 0.95V 85C C8/I7
Hold Delay ModelFast 1.05V 0C C8/I7
Numbers of Paths Analyzed8
Numbers of Endpoints Analyzed3
Numbers of Falling Endpoints0
Numbers of Setup Violated Endpoints0
Numbers of Hold Violated Endpoints0
-

Clock Summary:

- - - - - - - - - - - - -
Clock NameTypePeriodFrequency(MHz)RiseFallSourceMasterObjects
-

Max Frequency Summary:

- - - - - - - - - -
NO.Clock NameConstraintActual FmaxLogic LevelEntity
-

Total Negative Slack Summary:

- - - - - - - -
Clock NameAnalysis TypeEndpoints TNSNumber of Endpoints
-

Timing Details

-

Path Slacks Table:

-

Setup Paths Table

-

Report Command:report_timing -setup -max_paths 25 -max_common_paths 1

-

Nothing to report!

-

Hold Paths Table

-

Report Command:report_timing -hold -max_paths 25 -max_common_paths 1

-

Nothing to report!

-

Recovery Paths Table

-

Report Command:report_timing -recovery -max_paths 25 -max_common_paths 1

-

Nothing to report!

-

Removal Paths Table

-

Report Command:report_timing -removal -max_paths 25 -max_common_paths 1

-

Nothing to report!

-

Minimum Pulse Width Table:

- - - - - - - - - - -

Report Command:report_min_pulse_width -nworst 10 -detail

-

Nothing to report!

-
NumberSlackActual WidthRequired WidthTypeClockObjects
-

Timing Report By Analysis Type:

-

Setup Analysis Report

-

Report Command:report_timing -setup -max_paths 25 -max_common_paths 1

-

No setup paths to report!

-

Hold Analysis Report

-

Report Command:report_timing -hold -max_paths 25 -max_common_paths 1

-

No hold paths to report!

-

Recovery Analysis Report

-

Report Command:report_timing -recovery -max_paths 25 -max_common_paths 1

-

No recovery paths to report!

-

Removal Analysis Report

-

Report Command:report_timing -removal -max_paths 25 -max_common_paths 1

-

No removal paths to report!

-

Minimum Pulse Width Report:

-

Report Command:report_min_pulse_width -nworst 10 -detail

-

Nothing to report!

-

High Fanout Nets Report:

-

Report Command:report_high_fanout_nets -max_nets 10

- - - - - - - -
FANOUTNET NAMEWORST SLACKMAX DELAY
-

Route Congestions Report:

-

Report Command:report_route_congestion -max_grids 10

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GRID LOCROUTE CONGESTIONS
R2C15.56%
R1C342.78%
R2C252.78%
R2C262.78%
R2C92.78%
R2C172.78%
R2C81.39%
R2C341.39%
R7C11.39%
R1C361.39%
-

Timing Exceptions Report:

-

Setup Analysis Report

-

Report Command:report_exceptions -setup -max_paths 5 -max_common_paths 1

-

No timing exceptions to report!

-

Hold Analysis Report

-

Report Command:report_exceptions -hold -max_paths 5 -max_common_paths 1

-

No timing exceptions to report!

-

Recovery Analysis Report

-

Report Command:report_exceptions -recovery -max_paths 5 -max_common_paths 1

-

No timing exceptions to report!

-

Removal Analysis Report

-

Report Command:report_exceptions -removal -max_paths 5 -max_common_paths 1

-

No timing exceptions to report!

-

Timing Constraints Report:

- - - - - - -
SDC Command TypeStateDetail Command
-
- - diff --git a/gowin/fpga_project/impl/temp/rtl_parser.result b/gowin/fpga_project/impl/temp/rtl_parser.result deleted file mode 100644 index 9657ea7..0000000 --- a/gowin/fpga_project/impl/temp/rtl_parser.result +++ /dev/null @@ -1,82 +0,0 @@ -[ - { - "InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/fpga_project/src/ledTest.v", - "InstLine" : 1, - "InstName" : "ledTest", - "ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/fpga_project/src/ledTest.v", - "ModuleLine" : 1, - "ModuleName" : "ledTest", - "SubInsts" : [ - { - "InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/fpga_project/src/ledTest.v", - "InstLine" : 8, - "InstName" : "adder", - "ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/fpga_project/src/bit3adder.v", - "ModuleLine" : 1, - "ModuleName" : "bit3adder", - "SubInsts" : [ - { - "InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/fpga_project/src/bit3adder.v", - "InstLine" : 9, - "InstName" : "ha0", - "ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/fpga_project/src/halfadder.v", - "ModuleLine" : 1, - "ModuleName" : "halfadder" - }, - { - "InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/fpga_project/src/bit3adder.v", - "InstLine" : 10, - "InstName" : "fa0", - "ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/fpga_project/src/fulladder.v", - "ModuleLine" : 1, - "ModuleName" : "fulladder", - "SubInsts" : [ - { - "InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/fpga_project/src/fulladder.v", - "InstLine" : 8, - "InstName" : "ha1", - "ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/fpga_project/src/halfadder.v", - "ModuleLine" : 1, - "ModuleName" : "halfadder" - }, - { - "InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/fpga_project/src/fulladder.v", - "InstLine" : 9, - "InstName" : "ha2", - "ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/fpga_project/src/halfadder.v", - "ModuleLine" : 1, - "ModuleName" : "halfadder" - } - ] - }, - { - "InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/fpga_project/src/bit3adder.v", - "InstLine" : 11, - "InstName" : "fa1", - "ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/fpga_project/src/fulladder.v", - "ModuleLine" : 1, - "ModuleName" : "fulladder", - "SubInsts" : [ - { - "InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/fpga_project/src/fulladder.v", - "InstLine" : 8, - "InstName" : "ha1", - "ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/fpga_project/src/halfadder.v", - "ModuleLine" : 1, - "ModuleName" : "halfadder" - }, - { - "InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/fpga_project/src/fulladder.v", - "InstLine" : 9, - "InstName" : "ha2", - "ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/fpga_project/src/halfadder.v", - "ModuleLine" : 1, - "ModuleName" : "halfadder" - } - ] - } - ] - } - ] - } -] \ No newline at end of file diff --git a/gowin/fpga_project/impl/temp/rtl_parser_arg.json b/gowin/fpga_project/impl/temp/rtl_parser_arg.json deleted file mode 100644 index 6801b68..0000000 --- a/gowin/fpga_project/impl/temp/rtl_parser_arg.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "Device" : "GW2A-18C", - "Files" : [ - { - "Path" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/fpga_project/src/bit3adder.v", - "Type" : "verilog" - }, - { - "Path" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/fpga_project/src/fulladder.v", - "Type" : "verilog" - }, - { - "Path" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/fpga_project/src/halfadder.v", - "Type" : "verilog" - }, - { - "Path" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/fpga_project/src/ledTest.v", - "Type" : "verilog" - } - ], - "IncludePath" : [ - - ], - "LoopLimit" : 2000, - "ResultFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/fpga_project/impl/temp/rtl_parser.result", - "Top" : "", - "VerilogStd" : "verilog_2001", - "VhdlStd" : "vhdl_93" -} \ No newline at end of file diff --git a/gowin/fpga_project/src/bit3adder.v b/gowin/fpga_project/src/bit3adder.v deleted file mode 100644 index 00c3a95..0000000 --- a/gowin/fpga_project/src/bit3adder.v +++ /dev/null @@ -1,13 +0,0 @@ -module bit3adder( - input [2:0] A, - input [2:0] B, - output [3:0] C -); - -wire c1,c2,c3,c4; - -halfadder ha0(A[0], B[0], C[0], c1); -fulladder fa0(A[1], B[1], c1, C[1], c2); -fulladder fa1(A[2], B[2], c2, C[2], C[3]); - -endmodule \ No newline at end of file diff --git a/gowin/fpga_project/src/fpga_project.cst b/gowin/fpga_project/src/fpga_project.cst deleted file mode 100644 index aa32914..0000000 --- a/gowin/fpga_project/src/fpga_project.cst +++ /dev/null @@ -1,15 +0,0 @@ -//Copyright (C)2014-2024 Gowin Semiconductor Corporation. -//All rights reserved. -//File Title: Physical Constraints file -//Tool Version: V1.9.9.03 Education (64-bit) -//Part Number: GW2A-LV18PG256C8/I7 -//Device: GW2A-18 -//Device Version: C -//Created Time: Fri 07 05 01:47:34 2024 - -IO_LOC "L14[2]" L16; -IO_PORT "L14[2]" IO_TYPE=LVCMOS18 PULL_MODE=UP DRIVE=8 BANK_VCCIO=1.8; -IO_LOC "L14[1]" L14; -IO_PORT "L14[1]" IO_TYPE=LVCMOS18 PULL_MODE=UP DRIVE=8 BANK_VCCIO=1.8; -IO_LOC "L14[0]" N14; -IO_PORT "L14[0]" IO_TYPE=LVCMOS18 PULL_MODE=UP DRIVE=8 BANK_VCCIO=1.8; diff --git a/gowin/fpga_project/src/fulladder.v b/gowin/fpga_project/src/fulladder.v deleted file mode 100644 index f7d57c9..0000000 --- a/gowin/fpga_project/src/fulladder.v +++ /dev/null @@ -1,13 +0,0 @@ -module fulladder( - input A, B, C0, - output S, C -); - -wire S1,C1,C2; - -halfadder ha1(A, B, S1, C1); -halfadder ha2(S1, C0, S, C2); - -or (C, C2, C1); - -endmodule \ No newline at end of file diff --git a/gowin/fpga_project/src/halfadder.v b/gowin/fpga_project/src/halfadder.v deleted file mode 100644 index 0d708b3..0000000 --- a/gowin/fpga_project/src/halfadder.v +++ /dev/null @@ -1,9 +0,0 @@ -module halfadder( - input A,B, - output S,C -); - -xor (S, A, B); -and (C, A, B); - -endmodule \ No newline at end of file diff --git a/gowin/fpga_project/src/ledTest.v b/gowin/fpga_project/src/ledTest.v deleted file mode 100644 index 93b47d6..0000000 --- a/gowin/fpga_project/src/ledTest.v +++ /dev/null @@ -1,31 +0,0 @@ -module ledTest ( - input[1:0] v1, v2, - output reg[2:0] L14 -); - -wire[3:0] sum; - -bit3adder adder( - .A({1'b0, v1}), - .B({1'b0, v2}), - .C(sum) -); - - -always @(*) begin - L14 = 6'b000_000; - - if(sum == 4'd0) begin - L14 = 6'b000_000; - end - else if(sum == 4'd1) - L14 = 3'b01; - else if(sum == 4'd2) - L14 = 3'b10; - else if(sum == 4'd3) - L14 = 3'b11; - -end - - -endmodule \ No newline at end of file diff --git a/gowin/seq_light_test/impl/gwsynthesis/seq_light_test.log b/gowin/seq_light_test/impl/gwsynthesis/seq_light_test.log deleted file mode 100644 index 4768028..0000000 --- a/gowin/seq_light_test/impl/gwsynthesis/seq_light_test.log +++ /dev/null @@ -1,25 +0,0 @@ -GowinSynthesis start -Running parser ... -Analyzing Verilog file '\\wsl.localhost\Debian\home\koray\code\verilog\gowin\seq_light_test\src\seqBlink.v' -Compiling module 'seqBlink'("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\seq_light_test\src\seqBlink.v":1) -WARN (EX3791) : Expression size 4 truncated to fit in target size 3("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\seq_light_test\src\seqBlink.v":23) -NOTE (EX0101) : Current top module is "seqBlink" -[5%] Running netlist conversion ... -Running device independent optimization ... -[10%] Optimizing Phase 0 completed -[15%] Optimizing Phase 1 completed -[25%] Optimizing Phase 2 completed -Running inference ... -[30%] Inferring Phase 0 completed -[40%] Inferring Phase 1 completed -[50%] Inferring Phase 2 completed -[55%] Inferring Phase 3 completed -Running technical mapping ... -[60%] Tech-Mapping Phase 0 completed -[65%] Tech-Mapping Phase 1 completed -[75%] Tech-Mapping Phase 2 completed -[80%] Tech-Mapping Phase 3 completed -[90%] Tech-Mapping Phase 4 completed -[95%] Generate netlist file "\\wsl.localhost\Debian\home\koray\code\verilog\gowin\seq_light_test\impl\gwsynthesis\seq_light_test.vg" completed -[100%] Generate report file "\\wsl.localhost\Debian\home\koray\code\verilog\gowin\seq_light_test\impl\gwsynthesis\seq_light_test_syn.rpt.html" completed -GowinSynthesis finish diff --git a/gowin/seq_light_test/impl/gwsynthesis/seq_light_test.prj b/gowin/seq_light_test/impl/gwsynthesis/seq_light_test.prj deleted file mode 100644 index 9685b6c..0000000 --- a/gowin/seq_light_test/impl/gwsynthesis/seq_light_test.prj +++ /dev/null @@ -1,19 +0,0 @@ - - - - beta - - - - - - - diff --git a/gowin/seq_light_test/impl/gwsynthesis/seq_light_test.vg b/gowin/seq_light_test/impl/gwsynthesis/seq_light_test.vg deleted file mode 100644 index 48b76d4..0000000 --- a/gowin/seq_light_test/impl/gwsynthesis/seq_light_test.vg +++ /dev/null @@ -1,275 +0,0 @@ -// -//Written by GowinSynthesis -//Tool Version "V1.9.9.03 Education (64-bit)" -//Sun Jul 7 15:45:04 2024 - -//Source file index table: -//file0 "\//wsl.localhost/Debian/home/koray/code/verilog/gowin/seq_light_test/src/seqBlink.v" -`pragma protect begin_protected -`pragma protect version="2.3" -`pragma protect author="default" -`pragma protect author_info="default" -`pragma protect encrypt_agent="GOWIN" -`pragma protect encrypt_agent_info="GOWIN Encrypt Version 2.3" - -`pragma protect encoding=(enctype="base64", line_length=76, bytes=256) -`pragma protect key_keyowner="GOWIN",key_keyname="GWK2023-09",key_method="rsa" -`pragma protect key_block -SZqb9GzeDDOXVjA0NutRW8jYqBdoo16lBDItAmXNB+e3d6MAKZhgJgLdGWP0hwNFRMt6J3s0uPir -cksBdIyPeEarEzHJn7Jbc4THRPCSmyZ0dXs2OciVL+JJ1DnmkI38cmBvtzzqg1sA2eW6Gl8Tf0zH -wIK+FmxD+le5eKeAthEwE4kZP3FJpYe0YFibtcEyyCfvQ8wPS3WvN8583sAde36Ju2Yskguu/2ru -9ZsIOS+amQcO5nUJtCcuclI2OZecxl9cP9b0zcshd+5y3n6NHaFHMsGT5KD0s6Kpupb2KtOheowd -lRaLuMnAD97c6aAa1zrsHdeE3/ODyLMHqH6aJA== - -`pragma protect encoding=(enctype="base64", line_length=76, bytes=13968) -`pragma protect data_keyowner="default-ip-vendor" -`pragma protect data_keyname="default-ip-key" -`pragma protect data_method="aes128-cfb" -`pragma protect data_block -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 -jXi+ -`pragma protect end_protected diff --git a/gowin/seq_light_test/impl/gwsynthesis/seq_light_test_syn.rpt.html b/gowin/seq_light_test/impl/gwsynthesis/seq_light_test_syn.rpt.html deleted file mode 100644 index 50fd5f5..0000000 --- a/gowin/seq_light_test/impl/gwsynthesis/seq_light_test_syn.rpt.html +++ /dev/null @@ -1,1295 +0,0 @@ - - - -synthesis Report - - - -
- -
-

Synthesis Messages

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Report TitleGowinSynthesis Report
Design File\\wsl.localhost\Debian\home\koray\code\verilog\gowin\seq_light_test\src\seqBlink.v
-
GowinSynthesis Constraints File---
Tool VersionV1.9.9.03 Education (64-bit)
Part NumberGW2A-LV18PG256C8/I7
DeviceGW2A-18
Device VersionC
Created TimeSun Jul 7 15:45:04 2024 -
Legal AnnouncementCopyright (C)2014-2024 Gowin Semiconductor Corporation. ALL rights reserved.
-

Synthesis Details

- - - - - - - - - - - - - -
Top Level ModuleseqBlink
Synthesis ProcessRunning parser:
    CPU time = 0h 0m 0.14s, Elapsed time = 0h 0m 0.294s, Peak memory usage = 439.246MB
Running netlist conversion:
    CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0s, Peak memory usage = 0MB
Running device independent optimization:
    Optimizing Phase 0: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0.006s, Peak memory usage = 439.246MB
    Optimizing Phase 1: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0.008s, Peak memory usage = 439.246MB
    Optimizing Phase 2: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0.009s, Peak memory usage = 439.246MB
Running inference:
    Inferring Phase 0: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0.007s, Peak memory usage = 439.246MB
    Inferring Phase 1: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0.002s, Peak memory usage = 439.246MB
    Inferring Phase 2: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0.003s, Peak memory usage = 439.246MB
    Inferring Phase 3: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0.003s, Peak memory usage = 439.246MB
Running technical mapping:
    Tech-Mapping Phase 0: CPU time = 0h 0m 0.062s, Elapsed time = 0h 0m 0.017s, Peak memory usage = 439.246MB
    Tech-Mapping Phase 1: CPU time = 0h 0m 0.015s, Elapsed time = 0h 0m 0.006s, Peak memory usage = 439.246MB
    Tech-Mapping Phase 2: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0.003s, Peak memory usage = 439.246MB
    Tech-Mapping Phase 3: CPU time = 0h 0m 0.14s, Elapsed time = 0h 0m 0.351s, Peak memory usage = 439.246MB
    Tech-Mapping Phase 4: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0.005s, Peak memory usage = 439.246MB
Generate output files:
    CPU time = 0h 0m 0.015s, Elapsed time = 0h 0m 0.035s, Peak memory usage = 439.246MB
Total Time and Memory UsageCPU time = 0h 0m 0.372s, Elapsed time = 0h 0m 0.749s, Peak memory usage = 439.246MB
-

Resource

-

Resource Usage Summary

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ResourceUsage
I/O Port 5
I/O Buf 5
    IBUF1
    OBUF4
Register 40
    DFF3
    DFFE1
    DFFS1
    DFFR35
LUT 19
    LUT21
    LUT37
    LUT411
ALU 31
    ALU31
INV 4
    INV4
-

Resource Utilization Summary

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ResourceUsageUtilization
Logic54(23 LUT, 31 ALU) / 20736<1%
Register40 / 16173<1%
  --Register as Latch0 / 161730%
  --Register as FF40 / 16173<1%
BSRAM0 / 460%
-

Timing

-

Clock Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Clock NameTypePeriodFrequency(MHz)RiseFallSourceMasterObject
clockBase10.000100.00.0005.000 clock_ibuf/I
newclkBase10.000100.00.0005.000 newclk_s1/Q
-

Max Frequency Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - -
No.Clock NameConstraintActual FmaxLogic LevelEntity
1clock100.000(MHz)268.168(MHz)4TOP
2newclk100.000(MHz)564.972(MHz)2TOP
-

Detail Timing Paths Information

-

Path 1

-Path Summary:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Slack3.825
Data Arrival Time6.465
Data Required Time10.290
Fromn72_s2
Tonewclk_s1
Launch Clknewclk[R]
Latch Clkclock[F]
-Data Arrival Path: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTNODE
5.0000.000 newclk
5.0000.000tCLFF8newclk_s1/Q
5.4740.474tNETFF1n72_s2/I0
5.9910.517tINSFF1n72_s2/F
6.4650.474tNETFF1newclk_s1/D
-Data Required Path: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTNODE
10.0000.000 clock
10.0000.000tCLRR1clock_ibuf/I
10.0000.000tINSRR33clock_ibuf/O
10.3600.360tNETRR1newclk_s1/CLK
10.325-0.035tUnc newclk_s1
10.290-0.035tSu 1newclk_s1
-Path Statistics: - - - - - - - - - - - - - - - - - - - -
Clock Skew:0.360
Setup Relationship:5.000
Logic Level:2
Arrival Clock Path Delay: cell: 0.000, 100.000%; route: 0.000, 0.000%
Arrival Data Path Delay: cell: 0.517, 35.290%; route: 0.474, 32.355%; tC2Q: 0.474, 32.355%
Required Clock Path Delay: cell: 0.000, 100.000%; route: 0.000, 0.000%
-
-

Path 2

-Path Summary:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Slack6.271
Data Arrival Time4.054
Data Required Time10.325
Fromclkcnt_9_s0
Tonewclk_s1
Launch Clkclock[R]
Latch Clkclock[R]
-Data Arrival Path: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTNODE
0.0000.000 clock
0.0000.000tCLRR1clock_ibuf/I
0.0000.000tINSRR33clock_ibuf/O
0.3600.360tNETRR1clkcnt_9_s0/CLK
0.5920.232tC2QRF2clkcnt_9_s0/Q
1.0660.474tNETFF1n38_s103/I1
1.6210.555tINSFF1n38_s103/F
2.0950.474tNETFF1n38_s98/I1
2.6500.555tINSFF1n38_s98/F
3.1240.474tNETFF1n38_s96/I1
3.6940.570tINSFR33n38_s96/F
4.0540.360tNETRR1newclk_s1/CE
-Data Required Path: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTNODE
10.0000.000 clock
10.0000.000tCLRR1clock_ibuf/I
10.0000.000tINSRR33clock_ibuf/O
10.3600.360tNETRR1newclk_s1/CLK
10.325-0.035tSu 1newclk_s1
-Path Statistics: - - - - - - - - - - - - - - - - - - - -
Clock Skew:0.000
Setup Relationship:10.000
Logic Level:4
Arrival Clock Path Delay: cell: 0.000, 0.000%; route: 0.360, 100.000%
Arrival Data Path Delay: cell: 1.680, 45.479%; route: 1.782, 48.241%; tC2Q: 0.232, 6.280%
Required Clock Path Delay: cell: 0.000, 0.000%; route: 0.360, 100.000%
-
-

Path 3

-Path Summary:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Slack6.271
Data Arrival Time4.054
Data Required Time10.325
Fromclkcnt_9_s0
Toclkcnt_31_s0
Launch Clkclock[R]
Latch Clkclock[R]
-Data Arrival Path: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTNODE
0.0000.000 clock
0.0000.000tCLRR1clock_ibuf/I
0.0000.000tINSRR33clock_ibuf/O
0.3600.360tNETRR1clkcnt_9_s0/CLK
0.5920.232tC2QRF2clkcnt_9_s0/Q
1.0660.474tNETFF1n38_s103/I1
1.6210.555tINSFF1n38_s103/F
2.0950.474tNETFF1n38_s98/I1
2.6500.555tINSFF1n38_s98/F
3.1240.474tNETFF1n38_s96/I1
3.6940.570tINSFR33n38_s96/F
4.0540.360tNETRR1clkcnt_31_s0/RESET
-Data Required Path: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTNODE
10.0000.000 clock
10.0000.000tCLRR1clock_ibuf/I
10.0000.000tINSRR33clock_ibuf/O
10.3600.360tNETRR1clkcnt_31_s0/CLK
10.325-0.035tSu 1clkcnt_31_s0
-Path Statistics: - - - - - - - - - - - - - - - - - - - -
Clock Skew:0.000
Setup Relationship:10.000
Logic Level:4
Arrival Clock Path Delay: cell: 0.000, 0.000%; route: 0.360, 100.000%
Arrival Data Path Delay: cell: 1.680, 45.479%; route: 1.782, 48.241%; tC2Q: 0.232, 6.280%
Required Clock Path Delay: cell: 0.000, 0.000%; route: 0.360, 100.000%
-
-

Path 4

-Path Summary:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Slack6.271
Data Arrival Time4.054
Data Required Time10.325
Fromclkcnt_9_s0
Toclkcnt_0_s0
Launch Clkclock[R]
Latch Clkclock[R]
-Data Arrival Path: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTNODE
0.0000.000 clock
0.0000.000tCLRR1clock_ibuf/I
0.0000.000tINSRR33clock_ibuf/O
0.3600.360tNETRR1clkcnt_9_s0/CLK
0.5920.232tC2QRF2clkcnt_9_s0/Q
1.0660.474tNETFF1n38_s103/I1
1.6210.555tINSFF1n38_s103/F
2.0950.474tNETFF1n38_s98/I1
2.6500.555tINSFF1n38_s98/F
3.1240.474tNETFF1n38_s96/I1
3.6940.570tINSFR33n38_s96/F
4.0540.360tNETRR1clkcnt_0_s0/RESET
-Data Required Path: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTNODE
10.0000.000 clock
10.0000.000tCLRR1clock_ibuf/I
10.0000.000tINSRR33clock_ibuf/O
10.3600.360tNETRR1clkcnt_0_s0/CLK
10.325-0.035tSu 1clkcnt_0_s0
-Path Statistics: - - - - - - - - - - - - - - - - - - - -
Clock Skew:0.000
Setup Relationship:10.000
Logic Level:4
Arrival Clock Path Delay: cell: 0.000, 0.000%; route: 0.360, 100.000%
Arrival Data Path Delay: cell: 1.680, 45.479%; route: 1.782, 48.241%; tC2Q: 0.232, 6.280%
Required Clock Path Delay: cell: 0.000, 0.000%; route: 0.360, 100.000%
-
-

Path 5

-Path Summary:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Slack6.271
Data Arrival Time4.054
Data Required Time10.325
Fromclkcnt_9_s0
Toclkcnt_1_s0
Launch Clkclock[R]
Latch Clkclock[R]
-Data Arrival Path: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTNODE
0.0000.000 clock
0.0000.000tCLRR1clock_ibuf/I
0.0000.000tINSRR33clock_ibuf/O
0.3600.360tNETRR1clkcnt_9_s0/CLK
0.5920.232tC2QRF2clkcnt_9_s0/Q
1.0660.474tNETFF1n38_s103/I1
1.6210.555tINSFF1n38_s103/F
2.0950.474tNETFF1n38_s98/I1
2.6500.555tINSFF1n38_s98/F
3.1240.474tNETFF1n38_s96/I1
3.6940.570tINSFR33n38_s96/F
4.0540.360tNETRR1clkcnt_1_s0/RESET
-Data Required Path: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTNODE
10.0000.000 clock
10.0000.000tCLRR1clock_ibuf/I
10.0000.000tINSRR33clock_ibuf/O
10.3600.360tNETRR1clkcnt_1_s0/CLK
10.325-0.035tSu 1clkcnt_1_s0
-Path Statistics: - - - - - - - - - - - - - - - - - - - -
Clock Skew:0.000
Setup Relationship:10.000
Logic Level:4
Arrival Clock Path Delay: cell: 0.000, 0.000%; route: 0.360, 100.000%
Arrival Data Path Delay: cell: 1.680, 45.479%; route: 1.782, 48.241%; tC2Q: 0.232, 6.280%
Required Clock Path Delay: cell: 0.000, 0.000%; route: 0.360, 100.000%
-
-
-
- - diff --git a/gowin/seq_light_test/impl/gwsynthesis/seq_light_test_syn_resource.html b/gowin/seq_light_test/impl/gwsynthesis/seq_light_test_syn_resource.html deleted file mode 100644 index 247a23a..0000000 --- a/gowin/seq_light_test/impl/gwsynthesis/seq_light_test_syn_resource.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -Hierarchy Module Resource - - - -
-
-

Hierarchy Module Resource

- - - - - - - - - - - - - - - - - - - - - -
MODULE NAMEREG NUMBERALU NUMBERLUT NUMBERDSP NUMBERBSRAM NUMBERSSRAM NUMBERROM16 NUMBER
seqBlink (//wsl.localhost/Debian/home/koray/code/verilog/gowin/seq_light_test/src/seqBlink.v)403123----
-
-
- - diff --git a/gowin/seq_light_test/impl/gwsynthesis/seq_light_test_syn_rsc.xml b/gowin/seq_light_test/impl/gwsynthesis/seq_light_test_syn_rsc.xml deleted file mode 100644 index 7aafcdf..0000000 --- a/gowin/seq_light_test/impl/gwsynthesis/seq_light_test_syn_rsc.xml +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/gowin/seq_light_test/impl/pnr/cmd.do b/gowin/seq_light_test/impl/pnr/cmd.do deleted file mode 100644 index bf20b54..0000000 --- a/gowin/seq_light_test/impl/pnr/cmd.do +++ /dev/null @@ -1,13 +0,0 @@ --d \\wsl.localhost\Debian\home\koray\code\verilog\gowin\seq_light_test\impl\gwsynthesis\seq_light_test.vg --p GW2A-18C-PBGA256-8 --pn GW2A-LV18PG256C8/I7 --cst \\wsl.localhost\Debian\home\koray\code\verilog\gowin\seq_light_test\src\seq_light_test.cst --cfg \\wsl.localhost\Debian\home\koray\code\verilog\gowin\seq_light_test\impl\pnr\device.cfg --bit --tr --ph --timing --cst_error --correct_hold 1 --route_maxfan 23 --global_freq 100.000 diff --git a/gowin/seq_light_test/impl/pnr/device.cfg b/gowin/seq_light_test/impl/pnr/device.cfg deleted file mode 100644 index fb81869..0000000 --- a/gowin/seq_light_test/impl/pnr/device.cfg +++ /dev/null @@ -1,21 +0,0 @@ -set JTAG regular_io = false -set SSPI regular_io = false -set MSPI regular_io = false -set READY regular_io = false -set DONE regular_io = false -set I2C regular_io = false -set RECONFIG_N regular_io = false -set CRC_check = true -set compress = false -set encryption = false -set security_bit_enable = true -set bsram_init_fuse_print = true -set background_programming = off -set secure_mode = false -set program_done_bypass = false -set wake_up = 0 -set format = binary -set power_on_reset_monitor = true -set multiboot_spi_flash_address = 0x00000000 -set vccx = 3.3 -set unused_pin = default diff --git a/gowin/seq_light_test/impl/pnr/seq_light_test.bin b/gowin/seq_light_test/impl/pnr/seq_light_test.bin deleted file mode 100644 index 3d17335d2e77852130197feb6f3fb59e839d8a90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 577178 zcmeI5f2?HJUD)r;zFog{9PijMWQk*E?AT~YT38oaaI&e#X=q$pBcnD}Tq1aYqZXWy zsD#jjroC%u;=s~uiogMtWP_AYQczp97-6MhV@I~rKProsw$xI)!fw(im1=}ixyAJL z&dfVA^Y+f%ckcP|J>PTQXQbV^_uO;7-|zi==G;4P-r3pR-F1&oJ$|g3KDMtP&7Q03 zd#ZWAmo)po*KALluWkOkzCQXFr`xl~VDEWv&|-Hm`HrS(vAeeO-ca+@-P!HvU~*bR z8Ea4fvNJLm_MR_0+H2Q@`pkWEgJyr@^H%kiJF9x*VW|UK)z?iFlp%Gxm*x3}AGfkK z+PbMaZe9+Tg%I3zEn|CRt}lYcMo9I!f4|n&c%EvwmvKC-{>Q26Z!C5%JGy^&Z;W{w z??39btE7xRXEg7-_}l07tLlYcncLc4#OvOe-wV6@bRHdd9u0Z04jD{Gtk2%Hc5ZDf zZoKh`-2pQ_?RtCls=Y?59Q@~Q?`KQpNgSG@{_H*dY;EO3rp~8S+e*LpoSm)t{VMr8 zt3J2Q0&P9_Mmt-xIhFn`d`45-cE0rK_mwB?Yze+Q=qg`H8C@mDJoe=On%gSyMO(+@ zmL&H0(P!-DR+8!tO!{wGxl@{dr3lgXBL^ z2;;czZOkoU8box`PSIaoxRnMgB zV4lZ*`;|SegjzoLsjXN~ta@eD>23e2hpj5Bcg%HGBCLx2gU4)bjjiHE?=)SKFtN&F z*UKuDmQF8!hpjCw6ueRu$~Nm7dik zeF?EEcxG6{+&U4PlaBa*=39!eRnlxw&$vVD!*SmlfBu#d?px!yF9tQyKYz^Lmd_{UaZmWv zA-QjD-EVIzE^)8uHWzZQ1Ud%)*3T7TOYgJ~s`;)j6=5qV6TQI-`FTq(;GmV2W9x+1 zT7#faqXqlQPn2>c#8$KyNsPdU;GM=tpPSFELvR_1@d}ZRIeN$41zZW!f1{C*wKsob z0k(u#rB74Nd&2ZA<5y6Itx0@PDl&ZSPq`AR5MfnB8FS0(R14^Yt(+uc3tKr6$f;K5 z7PfLCkW;P9tx|10t?$HMp|7Nv6@B%Z`A^3-%TN^lN%-P64ei_5(r#$AK5VVh(7tVKv7S)7 zsiwX%))Qs`I!uXXZiR_Pl(+=26_;<==-3L&Gj23&#pN3|I<~^{j2jJGaruUgj;*jf z<3__)T)ttWV=FArxY4i`mv7kU*b2)tZZvGg0B7gt^YzaUPmI7PBPznUXmH^~nDX8!_2E%}K0kIVk zZt&393XU{lKx{>X8$2|&f+LL>5L*%91`my`;7B6|G`3hz7!h))(5xp6MN%Y=nOh>s zNa9HVTb=+#hhs|=w`VeJc>)w2jxAB#p2@J~2~c!6wnTAzCc~B|K+)mG7V8N`vAZQ> zJ)s-7M5D~yN|c_oy$E2d7p}yev6Waruk_gJg)4DqY$X=ZD?PS);Y!>YTZskqN{_8x zxDt29R$>9Y(qpR^uEd?Ol~_Qp^w{c!D{*IIi}i$wMcAZgJ)sRHHGRz7Qd1CxbP&K+ z2OM>Wu%%8(M?u)?fTQjZw$v%j^WEv@Frgtz`>adI?}lubXyd*lIJ; z+k!2e8VN(aTY$$2zgDov4Z0f+44J9pou%*R>O&!>>p`@h`wzQbAsRLU!l(h80mKGB> zbzsYel9oQ$(qh7<4r7b;gf_Gi_hCI@Vgdcqo4M6*6ur|Bz*ZXWZdtMA#x2b#Y^CAu zmK9rW+|rD~RvPYZS+V8DEzKxwrQz>*WW z;Ljru*(Kozu9meW^{OZ{kGXG2on7F$HI%AbN1m@9VQ%R#VN-?l+_I^OKAQ+&YZDob z?by<2Wm8Sq+C)ZUJGL}h*;Es@Hj&ZTjxCK=Hr0f!O=L8-8(V=tW6*f2`PamH!mJ#c zxs_GXhqhR3<)j{4*vg4OPPH<(u$2>moN8rmVJjyBIn`?B)*)Lwl#`-mt>Wtmm#Nw6 zPr%Hr{v#P7PXJr;%-u6$%blJ4NNmY7ch86|cXsk4u_e#kJtMZ<*~yQ@mOOL!jM#E# zCqEKf^32^cV#}SK{77ucGk4F3Eq8YEBe5mV+&v?<+}X*G#FjjB_l($bXD2@rTk_1^ zGh)k~o%~2_$uoD)h%I+^@*}Y&&)hvDw%pmtkL+b@ytcj#-;71)Ra(7htPb3_{r&H; z|5mPB-??w--p=ser`I*pd6h~p8mj~MZ$I&NTU%G{A9(qm*SByU5c~36tNX{QYPKqT zXSH#4yQDSakG$X3)?fuey|TTx=>=ufj<>d@UemhQHm<65N7oF-v9%TRB*$LC zyI&~XN4*k@5B|{0Y;CQ6qek7XbJA`K-%_s$x!2Z6S$A~JfQ*~&`(0aG8J}b^rT2OV zU(8wOdLr1$$sD$@l@o!SYGrO=D<=Xu)ymw$R!#(Rs@2S`)lVvNs{c^c%6ETerQ6J{ ztcpIg#bPTb_1MBzP6TqQmAQqjoCxGpD{~85IT6UIRx`IsT5FOM|6aB7-JiX1rS5Fz zR_Z#)Z$kiEHk7pV!Il;iHg#ajhLV;(*wSLcrVeb`P}0%|TUt!m)PXG!w{9w%SbewisKiC)Dd`Q5owA7btSrFmo%1TB#9R zIlTt3g{_p_0JikHX;+4=HWR%q*wX8!T^Y98O!T&3ORt-DW!P#n(c6M8y>8l- z8C$F;Y_n0bzsYel9oQ$(qh7<4s6*_($WW8T1?o~ zfh`+KTKZs1iwT=Luw_F@OCM}$F=0~&wrnVA>4PmTCT!|3wpdSSLo0C~))OWc&@a82 zTm44SI}HJBrQz`zdO}g$zRAqo@{PlI2?E%Xpd2a(wnCAVh=VN&%As;#D-=nIIM|Y)94ZI4LXnh+ zgDnZlp>kj=6iJCV*pi?eDhIYgk(7voEeXn@au{2zCk#b2VjR{JMuZzaw3%DsBNH(^ z0c?e58ZRQY;;{`M8C&6*#*2upcx=N*##VTy@gia?9^3Gdu@#j~pA4i=g9 zguzfs1Tu3=A{RM)31G{YpyYULNz(Ssg)Lu#lH;)@N!vFUwtNXnj>ncHZQoqj@+Bxa z9$S*MeRE;Um!RZ$Y)R7g&4n#rf|BEnE!GoCQg_V7dO}BVX@;4(l_on``w_raKVE5j zV=FEHe%Z0rk5}5>*hej38*_}N^iX3-larvlnxEIk_>r9aU!K;o7+KPwkkX*=b{AYr; z>P}sUgm@=|0}g)aHbGkl)WYF|2$=VT2leB)1_Id9V8ONqY}u01&<|T0EZEk7En89= z`e93h1=||1WlKs!KWu5RU|WN+ zO{HwsrJTs}Jg$GB*fmesT54u10fB* zyISk_&fgQVp3sh0(q1~&6CU$nu=mx3J3cXT8T-RmD)@QJe9NE{w84DT*lBQPgGQfL zU@J3b>B=>q!KbTWnz{B#KbZ|a6gS@g`cup;pO=d4SRHdq_MG$0hOM03VGCP15y+`l z<`%YcB9K$9%q?u?L?EYHnOoS(i9k-ZGPkfLN#JS8WQlV<`g^&5s(VQO>#f=ABwkC5qcK8MZtDiVnw?C~nVW*zyD@IviV~xIL3$%M+mJaBPX<_DqH?Pk^Gs zu_cPzGa0r#0g4XCmMCt|WZ3cqC^{TlqPRViVapSs=x}U_;`U62El+@=!?7ib+cO!q zJOPRh$CfB=&t%y01SmQjTcWrj_0j2T5Y)R*+x> ziA(@nkpTw{kFB6MBL~A)WWYhgV=E}m$ic7`8F0|>*b0g>axiQ~1{^fJv2`fE-Y+P* z1i^HCuWo`9&oiZ&TX|N0*s8`>PR6l?t(*wtR4a1}TR9QPsaEC|wsInnQ?1M`Y~@5C zr&^g?*vg4OPPLl3#d^XFtg)Uj14+vg&D>hHu%(v(w)DDbSB9-N6TL0i((9&O8MfL? z^tND2ubXyd*lIJ;+k!2Zrsw0!d4pYZdr{j))Tt%6CK5RLQ&kl$;{mHjl*~e0@#wE94ZI4LXnh+gDnZl zp>kj=6iJCV*pi?eDhIYgk(7voEeXn@a$qYINr^bvlAs(a2ev|yl!${Z3Cf{z7+b6- z3`I0z9M%&?gd0AznOor_6EQpiY=vhUFCw<$u?-&?Tj80;i-@gwY{N&!R(PiIB4R5Z z+whUG6`pClh{hJ{3F9#i7Mb;g!B9#BGIL8J7dd<@9b5f) zrR{BOv7Ruk2dnIbtS1~;ooxP{e);{ovq$DN!&VWps>5<6WNwx5dd=x94$Iui$;swgv9+0vz9ZPu z=VWt5*xJlS-w|Vr^@RG|v?^jfVGD`o1~a!b*GO%K0JaQ?9G z-}T$i{Ld@yd--hlEx$C|J$BWT&2GI}#;~epN5_?U$?kPFyPJnfA9>4_8ULn#d+Xwi z*LXa88s0paJ`YZfr%%=J!O8UL$gwh3&`i(e{f}jAYka;rgYl?(`mT3>$1AU{UOK+w z$k~gRs(O32yS??H+3v7vcBki>|KmqLow2Pc{;j`!b5-AS>bfhBR@+C1XD1i#sjB&I zwYR%nHAg#4WppL{Kf|1D4XX2#lhx_%lONr_^WwXzvmYKk_mku2w@;qE`pxG~G`pw2 zFuK_6eq{SQ>k}QmvN`lyH|K0?{`O#0ovgNok8f3jdayI9r@LQ27*BVr$(7ANXlRZO zsv>@Y_klaJw$OynzyQUfq2b0-u)pae*W^VoZpU>P@ zGrgMk8I7#!*q|CrP3?>Z)7|M`_taHYkEVOG9@FQnACG<_b6Z#KRD&me>hZys2K5g= zf9CX!mrf2papdvA3xj(5Z=X5+s>#V?A3XAS^~7JfkhP}0;$QdkncEtStKn94^YGf~ z2@S{No$2$eYozt?Ctjnz^mHkNcYoVtws}W0UP_d+RmT{ndk2J*!xo9t8sPqO?hkD ztNtfnow2RKrRiC`;);)7|K#A(?|k}wU;ga7Z#??TU;g;(pB((*Cmz22*=F~fKK8fj z?|rhmc;7$TJK?OKu0K7uHG3bN-I+|^0ygj1@2tjWt4~&2qX)M~)%o$A+s*Fqsjbmt z&2Cjqs&QRyH}CJWe~hpAPZ`gx>a8;YgSXc^jg#u@-}=F7YpcHL?GNo#cMe9w>F((G zH9OVLu)0g%2kH(lo`>F)x7 z$9KLrYg=dDJymey9Z%l&rRH7wvoHR{tLoYAAHC50sQm1U@4s=U**$su+n$(q%m4Ax zN!GT8vkTl{a?{!A&s*0GPoAGN)+RT7csiAu-D}3PAGMmli+J4rvsv3ZHj{Al{LXOF zY~6RPx}~nFX7}d1X1iBSj~~4_eGgy6ZYB# zxqS^E98IQ@Mx&p;YWkf2wz0K#clV(ZZ2i)|&ED1*tKApRAHU7ptG&{bKch z=etLn&FSveboV#UmtgC!{mr?p+4Vll6FTu!qi1#{Jh68rd}06Y?sWGz>nu-hf6=4e zKU6Tc=I`wGS7x_&vbk?n!{7O?=J&)OyV&f^AM=fuG{5OD?D5h{fvw6JYx7?3*5*@- zabxA1Ce2@kKi>GL23vlRhu1XYn@?>gCQP&4JjRpp?75)7e&h`rY)!m~4v#l?-AVKD zpoy|~6E4rz7cOeBWiUHEH+Q|A=3-dCYu)H0dyS{p9n7xnzkD%!Tk~sRU7cMAf3VlM zn0MiZS}@| z?V0aRPjsxC}73wiwh zvjy0?@#M4BrT6{fLdlsE)%2}LbKh$IIneV}^LgQPw}8jD|Ipl4)~7QV92tzyHy6IW zM_tv^t>(T}Rj+9_#?!q59^-HRcLmI?qdz@Wv9s_oo-PTUeRSCTT{nM9c|20Ydcw;t zb*C2htwz&@s`)&_e58@Nw%2L+{gyAoV|P4J{r8Vee@nJ!1=p6O}qOdr$5h2zFu^Jm!nDdzEpzfgd!YJ0~BsplJezcZQcjOQ&y{Qb#Fhs<@u4N#`lk)e ztlvGgUJZ{wUcfu})>+LPCL7u_ZhlF*wlcP|q4bikgwsq_`Q-v6e5@fvK_UQBSOXt^H4L*GS z+HZ9_|GWnM)t=w;G|_o_<7Nf5($Yc#`{ct#TnV>N9Vu$z;0DD{-QUla($C#amG+6? zdR-s+qkgv5N1;`QK;L&6GF6dfJppX3=c2O}TROe0uPT78^`EA0c#9UT^O@$03Y*7Y zdbc^x6VGq$ZC?G@eB+EcwCNLI>6$lu5WS&{rutv_NWXU(TZ669V6r^z=EU!PdUe-q z-}+9owfY>d^U2w%501QG(jD8W_cmX3alW2(TQ}{(KldXg+nRpcZb^^pzE-ZS##8fOQ$$8rY+VLK^=`qo2IDh3hQ0YX z-t1@k{PGXZ-(?hXI{Pim|Hsz-Z8`6a&p%l1d%}CB-&k1Gf6284Z zA|PF%3;tAB7w90>U@Hhlp&-~20v#j`wt`?33W6;m&_U8*D+orRAlMQD9V895f?yO1 zf-ND?LDFC=2u7hG*b)LABu&w_uH5hq0zt^72y*M*3bi8F6PESslIA}wefH%=|9&gQ z1c;ck=qq7FZfQbeD-CzItk`nnmSz;T(r|aniY+&8X+~iy4R^P!*mC2RW)!y4aCggU zY_Xouji2Z!))R{2_DyEymTw%!OAx@81m#dUuoa4=L>z2MP!5#?TcJow#KD#XH#ZxS8OF$(4zoj zi}i#(prz`{dcsuXo${Kw%P7+b=?z0zUJ z3!m^{YzYJRN{1~ke8PjVB@Emv9k#si2@l4WFmSJQ#un=dy)eoQW<8+{=RjG^+zJ$q zFi{C$D=OZ=!Lbz>Xw-1nii$UIaBKwz8Z{iYqT&r499w~bMh%CpsCWYhH?~+$7#M7f zaI7bcK{Z-TGq<88AaFne*a`?UdMIo~M;tH#wgSS89tvC05eH0wt$;A2hr(8L!~qjv zDX?Q%GhE(VRY2~30P0)&rmRenOlM>N##rc zTh8bb48&Ff=*}sz<%}-DKx`#|?wk@^&gc>h#8v|6&MC3wj4r`IV~h2K3E=llS;~6C zx*AVUeY+aY2wb*1Yb)We*S?GY86zK$=1Q1P#fQ1lLTp`j>AP&V7{Oc#b5dEz+{y{L zN3GcMfG0i_TjIz)5@O2(p7>B~i6i$&h%FCz;zO||j@%<5wmjg84>h(}PbiMQe?rz1 z_GgxGgqd3jOCYs10c=^LQqU1w3M5#UfGulO3OZs-fduOkuw{)(K}T#UkYHT`wyaSp z=xA)Qo=|~|gGwl6J>fy;S;%oSw+cC(!cPNRISIxVwsInnQ?1M`Y~@5Cr&^g?*vg4O zPPH<(u$2>moN8rmVJjyBIn`?B7V8N!u*Q1A3?wZ}G;?d&!j@hF*wX8!T^Y98O!T&3 zORt-DW!P#n(c6M8y>8l-VXMtVZwt2cx@lKtY_XoO%|=}d>j~8<=_<&~t*$;C(?S4S zT1?o~fh`+KTKZs1iwT=Luw_F@OCM}$F=0~&wrnVA>4PmTCT!}!mJKB>eXym)giRgT zvZ17<54Njwp9zG z6i8R_l@MD3uOCuuCQ$H|aPvuLd!%4nb+%GA7GCguYvVcRdw{u>le>cF)+8qncC|io zcd@@Q!Is@iKu51yM;Rfj;7S;hX6#r6UkPKQOAx={_k;;(#!gwVt&2Oc;fcq8-GyS` z6N25gBV_eh8>4|w83u_cb&BO$gt;E4~#mN;^cgxKbM` zV#@=b_)u(#Blk#%Ef09&L$M`}+#?~jJm85B#g;g7kA&FrfG0i_TjIz)5@O2(p7>B> zi|^GHN8djo->ci7S;7%!ZY3;%)Yb&BWsOQfM{FsOU|j;XtWhcGh%E&YtV_U_H7W%i zv86zQbqUzAMx~&mvBmf5Dv)td34E{aL4;HtH*-r>Q53U*0Jb)OQQ3?wm0C6wg{=)> zR5oKvrIrmvVQT{zmCe{vsbxb^*xCR_Wiz%^YS~Z}wl;uK*^DifS~e7gtqovQHXB>4 zCse6te^IO_+|NV#o|#+9%cQ&+0c_>;LckWbaw3pZt;{WKv7RskNy`$=+*-D!w{9w%SbewqQ%In|5W`YBSN> zf-Svn+Ld9e%|vetw)DDbSB9-N6TL0i((9&OnX$!s!ZsUqEvzS0r=+VOGq<|>a7+sU zY-urJQwO$eC~4_~EiEQ&>cEx_B`tlhrNx9z9oVv=q@@qGw3x7|!`Nayp$)CXeOOPJ zSU|t@W^VNxMej5Ou$6|pTUKnjaZ57_TWPqvWyO{ow=|=$m4>@pR&2R(OEU^vX}G&( z#g-elG^4PUhPzuj_11`zAAU%Qp_=B?w?kf^w)F z*a}5bA`Z4BD2K{{txzN-;$TaHa;O~G3Pn;P4z?sHhst4Wv7Rs#(TH(aPZ$wy_|Rr< zg^x_c@C2|Go@u;@*owzCd}M5eXBsaew&Jl39~oQWnZ}EVt$1w1N5)oortu}2gn z09*ZdrR|NawEX*J$5uaHX?tTUE&qPmvDJ@P+TPeo%fDZCZ1v-nwl}uY^6!@&Tm5*Y z?TxLp{QG6cRzF^8dmCGs%}7^0*y^IA?HIPS8R@DATU~Ut9W%CAPpHkzntE7IxCV;eCNsD6R!C(_0@zxz z(7%N({f?FuVr$7l{}#6NJ6cwVttAWnTiDX?Xjvh)mMrvdVN1WGWrf&Uve3VUE&Yy` z6=G}2LjRVr#d<>ht}50OW*})$RTYBBJE5lZsiQX1$ z>2=et3|nm`dRwri*G;=JV~h2KZ8qv!SWl=4PmTCT!}!mJKB>eXym)giRgB z7V8OZXeI8$dcwp4`lUB>tKTSkry+o?G~C^?V#|$Nno-zF!`&?_w%oX-8HKGh+}*Nb z%Z*!_QP@hu-7TxJ#d<%A4ltbmfRw$AZaj+#pIaCg8 zg(4{t2U`-9L*>9$D3TI!uq8n`R1R!~A}J9ETN0E*<-k@bk`i&SB|$k<4s3-YDG>)- z5|l&bz*Z=d5^=C4K{-?oY=t5z5eHimltbmfRw$AZaj+#pIaCg8g(4{t2U`-9L*>9$ zD3TI!df6JUt!TKmwW9MXmtHhh2kzVc{`c(89{UGSo19K}&Z3Prv{@f}+(&7}bwLp=<2DUPg zv?vi<3lte_U@HSjixRQ5K#{=)wla{kC=pu=6d7z_D+5W35{)gs`*VRr?*`xfsn^Y# z%FNtabBHE&1hAz}Nk>80>VTu}5Vq7Q=_m+W9dOhg!j?KE9R*>l1CF{w*ixsYqab6e zq_rj;rA7B9K$9%q?u?L?EYHnOoS(i9k-ZGPkgm z6M>v+Wo}_BCjvRuYUUQ}2{W+9dcq7OElV_WYuUn!w{9w%SbewqQ%In|5W` zYBSN>f-Svn+Ld9e%|vetw)DDbS7vOnp0LeET?^|8)hX#J$jq&-J{;3R09#s2*wle7 z8%kRGU`vY$n>w&%LrF^?Y-urJQwO$eC~4_~EiEQ&>cEx_B`tlhrNx9z9oVv=q@@qG zw3x7|!`Nayp$)CXeOOPJSU|t@W^VNxMej5Ou$6|pTUKnjaZ57_TWPqvWyO{ow=|=$ zm4>@pR&2R(OEU^vX}G&(HMUq!=*CZU6zd5^ar-7SbIUgl<0S}SOM-H!9M}p)QX&qv zBq)cGlw(p3+(y69*-hAnMIy6VAJ7aeWKj4jp^YBRH@9@Z1C zfugs`%q_hYQrVIKww5gPZ(&Qnqh*EITC&i;g)RM#mK9=a$wL1Yw)8t%R*0=73;kQh z7V8Q1yQ)}En1Q5aiDqssTiDV|09$(9v@63_n~B~QZ0U8=t_)jkCVE@2rPocnGHkV( z=xxE4UN`N^u+?Uww*^~z-LxyiR-1|57HsKt)2__eVm)D-jk*@r6RK0vRgjrmU41yF zg#fm+n6Rk>TQ-!m^ud-E6E<~V%Z8GcKG@P?!ln*v*-+Bb2U}W9*wkTcv7XR|R^mRa zCrm7$UwSjQ`i-J@8Uol#!`&?_w%oX-8HKGh+}*Nb%Z*!_QP@hu-7PD&+_)-5|l&bFt%7v7>a1bIE(d!eDV~L za;VTHfAUm^f}|(T^$+aM9tF;=@@$PCeP(V;&+CUuHWM)KGB)?%h#mq3+p6_Y4poV{ zZ-t7dC{C@YmO!NxY%35UO<}kaYO--qEzGTh2x&Ub+|p#@pjwz)2NBYAyx_T|33H%Y z3bs`TLZm2+xe^xmIiVuTflA>s_&^|K!Z5dFI0wm6^4yvPA*3qEBX<}38xw4)dZisu zOnt!d3=f<8R)(b?RPxTe!|0%X86E$}pDFfAn2`nBQu*oFmXwBm1z!nk4Sd7au))@N zo@Ka~tk>?|81vL?Y{1SY|K4-J$h|@ZETgLKe>L~5%YZ80E%?5rn7V6eEn9=VNPBO5 td+lCUM6a;{JC|36Iis)q$N818{r9*1*p;(RpZtV5HvN|kW_x${{{u!pc%uLS diff --git a/gowin/seq_light_test/impl/pnr/seq_light_test.binx b/gowin/seq_light_test/impl/pnr/seq_light_test.binx deleted file mode 100644 index d0550ae7c81313c2664b1aec297b4f5a7b0f68ba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 577699 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 diff --git a/gowin/seq_light_test/impl/pnr/seq_light_test.db b/gowin/seq_light_test/impl/pnr/seq_light_test.db deleted file mode 100644 index e9df8ff75d388c0839235ab361a310a8f0e524bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2200 zcma)-S9{Y?5JWG%cU*{zjOm1qfzU$ly@w8g2R_4F;Qup6vtD@g=9}p5$=(@BmYi>; zlvPr*Y}0SoN*$J@PV~!kTp|6IM!}Zrh|HMq3@g~MnBhg4c}?CrsilOfb}nVL`t?#< ztQ&jRsNaxtbfv77HcH;hE_-cChP%Bs>)5O_d@guxk-S$66<%AVcA3$nGw|YW_*}G5 z;k8|Y^#Cfoc1Y~)$6ma42J6&UWv_-bu{-I&9x6|5J`Ue4&nUc7e2TtDXU znh90~!;8<5+$#3A)pwp19Zu$4yk?U* z7q279oQv1dWX{FwSTZeCcpaC>?M5zMCz3fAuan7~i`S`S&c*9=GUwtoN~VPhuQL+4 zoyf)OY%=HKbuO86@tRBKT)fUFb1q&NYSz=Wc@D3OHRC;Z;dLpQ_u_RqnfKzwo6LC* zB?>Rzcr)+Ci?I^~lV*57Z;r zXDgqKd47$&i$w!!3H`~pF(EN z{VawW|2>mm)FU&W%UAWNp|`gx&RtZG8hY0z*QQqMvHsVN^|Mrd*2l4~W6YnjNUzEt f%`KK+F~g33bKmP((x;i@?o2bsnNKtKLvw!ta$<0J diff --git a/gowin/seq_light_test/impl/pnr/seq_light_test.fs b/gowin/seq_light_test/impl/pnr/seq_light_test.fs deleted file mode 100644 index ac522d0..0000000 --- a/gowin/seq_light_test/impl/pnr/seq_light_test.fs +++ /dev/null @@ -1,1378 +0,0 @@ -//Copyright (C)2014-2024 Gowin Semiconductor Corporation. -//All rights reserved. -//File Title: Bitstream file -//Tool Version: V1.9.9.03 Education (64-bit) -//Device: GW2A-18 -//Device Version: C -//Part Number: GW2A-LV18PG256C8/I7 -//Device-package: GW2A-18C-PBGA256 -//BackgroundProgramming: OFF -//CheckSum: 0xA19F -//UserCode: 0x0000A19F -//LoadingRate: 2.500MHz -//CRCCheck: ON -//Compress: OFF -//Encryption: OFF -//SecurityBit: ON -//SecureMode: OFF -//JTAGAsRegularIO: OFF -//MultiBootSPIAddr: 0x00000000 -//Created Time: Sun Jul 7 15:45:09 2024 -1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 -1111111111111111 -1010010111000011 -0000011000000000000000000000000000000000000000000000100000011011 -0001000000000000000000000000000000000000000000000000000000000000 -0101000100000000111111111111111111111111111111111111111111111111 -00001011000000000000000000000000 -1101001000000000111111111111111100000000000000000000000000000000 -00010010000000000000000000000000 -00111011100000000000010100111110 -00000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000001010000000011100000010000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000001010000000011000000010000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001010101001011001111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000101010101000001000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000001010101000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001100101110101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000010000100001000000000000100100000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000010000100001000000000000100100000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000100000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001011111011010011111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000100000000011101000001010000000000001010100000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000100000000011101000001010000000000001010100000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000001111100010011101111111111111111111111111111111111111111111111111 -00001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001011110001001000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011001000111001111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101101110001100111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001110010001000010111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001110100111000110111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001100011111101111111111111111111111111111111111111111111111111111 -00000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001011101011011011111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001001011100110111111111111111111111111111111111111111111111111111 -00000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001000110011100000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011000101011100111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001101101101011111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001101101101011111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000011000000000000000000000000000000000000000000000000000000000000000000001001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001011011100011100111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101110010110011111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001101100111000010111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001011101101100111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111001100100010111111111111111111111111111111111111111111111111 -00000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001000110011100000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101011000101010111111111111111111111111111111111111111111111111 -00000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001011101011011011111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001011111110110110111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001110101110010111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000111110111100111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001010000000101011111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101011001111001111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001101101100000010111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110000101111111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001001011111110101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001100001000111001111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111000000111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001110101100011111111111111111111111111111111111111111111111111 -00000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001100000100100100111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001100000100000110111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001010000000100110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010001100100111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001011010110001101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100100011100110111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111100001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001110100101110111111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111100001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001110100101110111111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001001000111100100111111111111111111111111111111111111111111111111 -00001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000110110001001101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100011100100110111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111010111111101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001110101100010001111111111111111111111111111111111111111111111111 -00000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001001111000111101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000110110001001101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001000110011100000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000110110001001101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001000110011100000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000110110001001101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001000110011100000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000110110001001101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001000110011100000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000110110001001101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001000110011100000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000110110001001101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000110000100001110111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001110101100000011111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001000110011100000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000110110001001101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101111101110100111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100101011011010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100101011011010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100101011011010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100101011011010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100101011011010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100101011011010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100101011011010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100101011011010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100101011011010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100101011011010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100101011011010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100101011011010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100101011011010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100101011011010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100101011011010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100101011011010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001100011001100101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011000000000000000000000100000000000000000000000000000000000011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001011011001111010111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000001000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011100101111111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000011100010011111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000010000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101100110111111111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001000110011100000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000110110001001101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001000110011100000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000110110001001101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001000110011100000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000110110001001101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001000110011100000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000110110001001101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001000110011100000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000110110001001101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001000110011100000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000110110001001101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111001010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000110000001001111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111010101011111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001110011000110001111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001000110011100000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000110110001001101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001101101101011111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001101101101011111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001101101101011111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001101101101011111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001101101101011111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001101101101011111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001011101011011011111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001101101101011111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001011011001001101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001011011001001101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001101101101011111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001011011001001101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001011011001001101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001101101101011111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000001110110111111111111111111111111111111111111111111111111 -00001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000110110001001101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011000000000000000000000000000000000000000000000000011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000110100100001010111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000010100110111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001101111010000011111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001011101011010010111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100011100010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001000110011100000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000110110001001101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001000110011100000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000110110001001101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001000110011100000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000110110001001101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001000110011100000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000110110001001101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001000110011100000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000110110001001101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001001101001111010111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001110010001111100111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000101000001000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001011000110100111111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001011000110100111111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001000110011100000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000110110001001101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010010100010010010100000000000000000001100011001100011000000001100111001100101111111011011111011011111011011111011000000001100111001110011111111011011111011011111011011111011000000011101011001000101111111011011111011011111011011111011000000010101011001100111111111011011111011011111011011111011000000011000001100110001111111011011111011011111011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000001000000000000000000000000000000000000000001000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101010100001010111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000010011000000000000000000000000000000000000000000000000100000001000000000000000000000000000000000000000000000000000100010001001000000000000000000000000000000000000000000000100101000001000000000000000000000000000000000000000000000000000101000001001000000000000000000000000000000000000000000001100000110001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111101011000010111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001001000000000000000000000000000000100000000100000000000011010000010010000111000000111000000111000000111000000000000011010010000000000111000000111000000111000000111000000000000010000000000010000111000000111000000111000000111000000000000010000000010010000111000000111000000111000000111000000000000000000010000000000111000000111000000111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000110111010100110111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010001000110001000100000000010000000010100000010100000010100000010100000010100000000000010000000010100000010100000010100000010100000010100000000000000000000010100000010100000010100000010100000010100000000000000000000010100000010100000010100000010100000010100000000000000001000000000000010100000010100000010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000001000000000000000000000000000000000000000001000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111100100000010111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000100100000100000000011000000000000011000000001000000110001001000100001000010000011100000001101111000000001000000110001001000100001110010001111011001000001111000000001000000110001000000100001110010001111000110000001111000000001000000110001001001100001100010000010000110000001111000000001000000110001000111100001000010001011000000000001111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001011010100100010111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000001000000000000000110000000000000000100000000101100001100000100000000000000000110000000000000010110000000010000100000000001000000000000000110000000000000010110000000010010000000000100000000000000000110000000000000000100000000001010000000010000000000000000000110000000000000000100000000010000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111110101000001111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000100000000000000000000000000000000001001000000000001000000000000000000000010000000000000000000000001000000000001000000001000000000000001000000000000000000000000000000000001000000001010000000001010000000000000000000010001000000000001000000000010000000010100000000000000000000000000000000000001000000000000000000001010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001010100100110101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000010000000010000000000000000000100000000000000000000000000000110000000010000000000000001000100000000000000000000000000000110000000010000000000010000000100000000000000000000000000000001000000010000000000000000010100001000000000000000000000001000000000010000000000010000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001011101010011111111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000110001100000000000000000000111000110100000111100001100000001111001100000000110000000011010011111000000111100001100000001111011100000000110000000001010011111000000111100001100000001111110000000000110000000000010000110100000111100001100000001111101000000000110000000011010000110000000111100001100000000110001100100100110100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011101010010011111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100100000000000000000001000000100000000000010001000000010000100100000000000000000000000000000000000000010001000000010000001100000000000000000000000000000000000000010001000000010000000010000000000000000000000000100000000000010001000000010000000000000000000000000000000000000000000000010001100000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001101011111101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000110010000000000100000000000000010000000000100101010000000000110010000000000100000000000000010000000010000101010000000000110010000000000100000100000000010000000000000100000000000000110010000000000100100100000000010000000000100100001100000000110000000000010000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001101000011101011111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000010000000000001010000000000000001000000000100001000000000000010000000000001010010000000000001000000000000001000000000000010000000000001010000000000000001000000000000000000000000000010000000000001010000000000000001000000000100000000000000000010000000000000100000010100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111101100100011111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011110000000000000000000000000000000000000000110100000011110011110000110111100011100000001111000001011100110100110011110011110011110111100011100000001111000000101100110101110011110011110001110111100011100000001111000101001111110010111001110011110001110111100011100000001111000101001100110000110011110000000010110111100011100000000110000000101100110001110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001101100110000111111111111111111111111111111111111111111111111 -00000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000100000000000001000001000000000010000010000001000000001010000100000000000001000001000010000010000010000001000000000000100100000010000001000001000010000010000010000001000000000000001011001000000001000001000011000010000010000001000000000000000000000000000001000000000000000010000010000000000000000000100000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000011111010111111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101100000000000000000000000000000000000000000000000000101100101100000000110000000000000010000000000000000000000000101100101100010000110000000000000010000000100100000000010000101100101100010000110000000000000010000010000000100010000000000100101100010000110000000000000010000010000000010010001000101100000000000000110000000000010000000000100100000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000100001101101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100100000011000100000001010000000000000000100100000000000000000000000011000100000001010000000000000000000100000000000000000100000011000100000001010000001000000000000000000010000000000000000011000100000001010000001000000001000000000000000000100000000011000100000000100000000000001100000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100010101110110111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111100011100000000000000000000000000000000000000011110001111111100011100110001111001100000000000000000000000011110001111111100011101110001111110000000000000000000000000011110001111111100011111110001111110000000000100000000000000011110001111111100011110100001111001100000000000000000000000011110000110000000100100110100110001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000110101000000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000010000000000000000000000000000000000000000001010000000010000110000001000100100000000000000000000000000001010000000010000110001001000001000000000000000000000000000001010000000010000110001001000001000000000000000000000000000001010000000010000110000001000100100000000000000000000000000001000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011100110001011111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000110000000000000000000000000000000000000000000000101100100000110000000000010010000000000000000000000000000000101100100000110000000000010010010000000000000000000000000000101100100000110000000100010010010000000000000000000000000000101100100000110000011000000011000000000000000000000000000000101110000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001110011110110100111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011000100000000000000000000000000000000000000000000001010000010000101010000100000000000000000000000000000000000001010000010000101010000100000000000000000000000000000000000001010000010000101100000100000000000000001000000000000000000001010000010000100000100000000000000000000000000000000000000000100000001000010000100000011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010101100001001111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111110010000000001011111110111111001000000000000001001111111111110010000000000000011111111111001000000000000001001111111111110010000000000011111110111111001000000000000001001111111111110010000000000000011111111111001000000000000001001111111111110010000000001011111110111111001000000000000001001111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001011011001000111111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111110010001000000011111111111111001000100000010001001111111111110010001000000000001111111111001000100000010001001111111111110010001000000011111111111111001000100000010001001111111111110010001000000000001111111111001000100000010001001111111111110010001000000011111111111111001000100000010001001111111111111110001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001001100111001010111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111110010010000000011111111111111001001000000001001001111111111110010010000000011111101111111001001000000001001001111111111110010010000000011111010111111001001000000001001001111111111110010010000000001011111111111001001000000001001001111111111110010010000000000000100111111001001000000001001001111111010110110010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100110001011010111111111111111111111111111111111111111111111111 -00001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111110010000000000011111010111111001000000000000001001111111111110010000000000011111111111111001000000000000001001111111111110010000000000011111000111111001000000000000001001111111111110010000000000011111111111111001000000000000001001111111111110010000000000011111111111111001000000000000001001111111010110110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001111111111100010111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011000000000000000000000001111000000000000001010111001010010100000000000000000000100011001100011000000000110000000000000000000000000000000000000000000000000000000000000000000000110000000000000000000000000000000000000000000000010110000000110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000110100000000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001100000000000000000000100101100000000000000000001000001000000000000000000000000000000010100101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001010111010111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000010001000000000000000000000000000000100000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000001000000100000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000110101000111101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001001000010000000000000000000010000000100000000000000000100000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000100000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001100010011000000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001100000000000000000011000000000000000001000001000001000000001101111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011000000000000000000000000000000000000000000000000000000000011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001101101011001001111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000010000000000000000000000100000000000000010000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111010010001001111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000100000000010001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001110010010101111111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000001000000000000000000000001001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001110100100111011111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001010100000000100000001001100000001111111111101100000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000111100000000011000001011000000000000000000000000001111000000111100000001111000001111000000001111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001000101110111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000010000000000000000001101011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000001001000000000010000000000000000000000100000000000000010000001001000000000010000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000011100000001111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010010000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000100000000001000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001100011001011110111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100110000000000000000000000000000000000000000000001010000000100110000100000000000000000000001010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001101010111100011111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011110000110001110001100000000111000000111100110010110000000000000000000000000000000000000000000000000000000000000000000000000001111000000111100000000000001000000000000000000000000000000001111000000111100000000000000000000000110001111000000000000000000011000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011011101100011111111111111111111111111111111111111111111111111 -00000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000010000001100000001001000001001000000000010000000000000000000000000000000000000000000000000000000000000000000000000100000000000000010000000000000000000000000000000000000000000100000000000000010000000000000000000001010100000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000010111011001110111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101100001000000000000000000000000000000000001100000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000100000000000000000000000000000000001000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001011011001101101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001010000000100110000000000000000000000000000000000000000000001010000000100110000000000000000000000000001010000000000000000000010000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011101011100010111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000110001111111100011000000000111001011001100000000110000000000000000000000000000000010000000000000000000000000000000000000000000000000000011000010000000000000000000000000011000000000000000000000000111100000000000000000000000000001111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001010011001001101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001010100100000010000010000001001000000000000000000011000000000000000000000000000000000000000000000000000000000000000000000000000000000001001000000000000000000000000000100000000000000000000000000001001000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011110100110110111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000110000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001101101110111101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000010000100000100000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000100010000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001101010101000100111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010001010000011110000100000000000000011111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111100001000000000000000000000000000000000000000000000001111111100001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010100010001101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010001010000011110000100000010000000011111010010100001000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001011101000001000000000000000000000000000000000000000000000000001010100001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000110010101001111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011000001101001010001000000001000111100110101010100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000010000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001000110001111111111111111111111111111111111111111111111111 -00001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011000001000010100000000000000000111111111010101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001000010110101001111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001010100000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001100001111000011111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001011111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000110101110001011111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001100000000000000000000011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111001101110111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001001000111100100111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001110101100001101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000110001001011100111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001100001110110100111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001100010010001100111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011000100110010000000100100011001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100101101000111111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000001000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001010000110010111111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000101000000000110000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001100100001100100111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010100000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000111111110001111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111000000000000001111000000000000000000000000000000000100001101110000000000000000000000000000000000000000000000000000000000000000000000001111111100000000010000000000000000000000000000000000000000000000000000000000000011101100001000000000000000000000000000000000000000000000000000111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001001010110001111111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000100000100000100000000000101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100101011011010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100101011011010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100101011011010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100101011011010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100101011011010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100101011011010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000110000000000000000010000000000000000000000000000000010000001111111000000000000000000000000000000000000000000000000000000000000000000000000110011000001000000000000000000000000000000000000000000000000000000000000000000111111100000010000000000000000000000000000000000000000000000000011000000000000000000000000000000000000000000000000000000000000000000000000000000000100101011011010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100101011011010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100101011011010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100101011011010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100101011011010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100101011011010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100101011011010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100101011011010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000010001111111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011100111111110011100000000000000000000000000001100011000011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101001110001000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000101000000100000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111010111101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100110000100000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101111011100100111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101000110001010000000000000000000000000000010001000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001110100011011111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000110000000000000011000000000111100000000001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001011111001101010111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000110000000000000000100000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001010011110101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000010000000000010001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001101010100010111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111011000100110111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010010000000111100011000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001011110000110111111111111111111111111111111111111111111111111 -00000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001001000010000010111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101000000000110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111100000000110111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000100000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011100110011101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011110000000111100011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001110100100001111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000010000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111101111010100111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101100000000110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001110101110101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001010011101111111111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111100000000111100001000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100111000110110111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000111100000000111100001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001110011001000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111110100011101111111111111111111111111111111111111111111111111 -00001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000110110001001101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001010000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010010110000010111111111111111111111111111111111111111111111111 -00000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001110001100010111111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000110110001001101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001000110011100000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000110110001001101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001000110011100000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000110110001001101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001000110011100000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000110110001001101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000001000000000000000000000000000000000000000001000000000000000001000000000000000000000000000000000000000001000000000000000001000000000000000000000000000000000000000001000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010101101101111111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000001000000000000000000000000000000000000000001000000000000000001000000000000000000000000000000000000000001000000000000000001000000000000000000000000000000000000000001000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010101101101111111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001000110011100000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000110110001001101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001000110011100000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000110110001001101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001000110011100000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000110110001001101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001101101101011111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001101101101011111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001101101101011111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001101101101011111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001101101101011111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001101101101011111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001101101101011111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001101101101011111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001011011001001101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001011011001001101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001101101101011111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001011011001001101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000110000000110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011101010100000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001000110011100000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000110110001001101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001000110011100000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000110110001001101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001000110011100000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000110110001001101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001000110011100000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000110110001001101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001000110011100000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000110110001001101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001000110011100000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000110110001001101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001000110011100000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000110110001001101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001000110011100000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000110110001001101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101111101110100111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100101011011010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100101011011010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100101011011010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100101011011010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100101011011010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100101011011010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100101011011010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100101011011010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100101011011010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100101011011010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100101011011010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100101011011010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100101011011010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100101011011010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100101011011010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100101011011010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001100011001100101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001101100101110100111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001101100101110100111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001000110011100000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000110110001001101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001000110011100000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000110110001001101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001000110011100000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000110110001001101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001000110011100000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000110110001001101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001000110011100000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000110110001001101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001000110011100000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000110110001001101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001000110011100000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000110110001001101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001000110011100000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000110110001001101111111111111111111111111111111111111111111111111 -00000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001000110011100000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001101101101011111111111111111111111111111111111111111111111111 -00000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001011101011011011111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001101101101011111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001101101101011111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001101101101011111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001101101101011111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001101101101011111111111111111111111111111111111111111111111111 -00000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001000110011100000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001101101101011111111111111111111111111111111111111111111111111 -00000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001000110011100000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001011011001001101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001011011001001101111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001101101101011111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001001001010101010111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001101101101011111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001101101101011111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000110010000100011111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110101010000111111111111111111111111111111111111111111111111 -00000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001110100111010110111111111111111111111111111111111111111111111111 -1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110011010001110011 -0000101000000000000000000000000000000000000000001010000110011111 -1111111111111111111111111111111111111111111111111111111111111111 -00001000000000000000000000000000 -1111111111111111111111111111111111111111111111111111111111111111 -1111111111111111 diff --git a/gowin/seq_light_test/impl/pnr/seq_light_test.log b/gowin/seq_light_test/impl/pnr/seq_light_test.log deleted file mode 100644 index cd02664..0000000 --- a/gowin/seq_light_test/impl/pnr/seq_light_test.log +++ /dev/null @@ -1,29 +0,0 @@ -Reading netlist file: "\\wsl.localhost\Debian\home\koray\code\verilog\gowin\seq_light_test\impl\gwsynthesis\seq_light_test.vg" -Parsing netlist file "\\wsl.localhost\Debian\home\koray\code\verilog\gowin\seq_light_test\impl\gwsynthesis\seq_light_test.vg" completed -Processing netlist completed -Reading constraint file: "\\wsl.localhost\Debian\home\koray\code\verilog\gowin\seq_light_test\src\seq_light_test.cst" -Physical Constraint parsed completed -Running placement...... -[10%] Placement Phase 0 completed -[20%] Placement Phase 1 completed -[30%] Placement Phase 2 completed -[50%] Placement Phase 3 completed -Running routing...... -[60%] Routing Phase 0 completed -[70%] Routing Phase 1 completed -[80%] Routing Phase 2 completed -[90%] Routing Phase 3 completed -Running timing analysis...... -[95%] Timing analysis completed -Placement and routing completed -Bitstream generation in progress...... -Bitstream generation completed -Running power analysis...... -[100%] Power analysis completed -Generate file "\\wsl.localhost\Debian\home\koray\code\verilog\gowin\seq_light_test\impl\pnr\seq_light_test.power.html" completed -Generate file "\\wsl.localhost\Debian\home\koray\code\verilog\gowin\seq_light_test\impl\pnr\seq_light_test.pin.html" completed -Generate file "\\wsl.localhost\Debian\home\koray\code\verilog\gowin\seq_light_test\impl\pnr\seq_light_test.rpt.html" completed -Generate file "\\wsl.localhost\Debian\home\koray\code\verilog\gowin\seq_light_test\impl\pnr\seq_light_test.rpt.txt" completed -Generate file "\\wsl.localhost\Debian\home\koray\code\verilog\gowin\seq_light_test\impl\pnr\seq_light_test.tr.html" completed -Sun Jul 7 15:45:27 2024 - diff --git a/gowin/seq_light_test/impl/pnr/seq_light_test.pin.html b/gowin/seq_light_test/impl/pnr/seq_light_test.pin.html deleted file mode 100644 index ac71373..0000000 --- a/gowin/seq_light_test/impl/pnr/seq_light_test.pin.html +++ /dev/null @@ -1,3537 +0,0 @@ - - - -Pin Report - - - -
- -
-

Pin Messages

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Report TitlePin Report
Design File\\wsl.localhost\Debian\home\koray\code\verilog\gowin\seq_light_test\impl\gwsynthesis\seq_light_test.vg
Physical Constraints File\\wsl.localhost\Debian\home\koray\code\verilog\gowin\seq_light_test\src\seq_light_test.cst
Timing Constraints File---
Tool VersionV1.9.9.03 Education (64-bit)
Part NumberGW2A-LV18PG256C8/I7
DeviceGW2A-18
Device VersionC
Created TimeSun Jul 7 15:45:14 2024 -
Legal AnnouncementCopyright (C)2014-2024 Gowin Semiconductor Corporation. All rights reserved.
-

Pin Details

-

Pinout by Port Name:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Port NameDiff PairLoc./BankConstraintDir.SiteIO TypeDrivePull ModePCI ClampHysteresisOpen DrainVrefSingle ResistorDiff ResistorBankVccio
clockH11/0YinIOT27[A]LVCMOS18NAUPONNONENANANANA1.8
led[0]N16/1YoutIOT52[A]LVCMOS188UPNANAOFFNANANA1.8
led[1]N14/1YoutIOT52[B]LVCMOS188UPNANAOFFNANANA1.8
led[2]L14/1YoutIOT34[B]LVCMOS188UPNANAOFFNANANA1.8
led[3]L16/1YoutIOT34[A]LVCMOS188UPNANAOFFNANANA1.8
-
-

All Package Pins:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Loc./BankSignalDir.SiteIO TypeDrivePull ModePCI ClampHysteresisOpen DrainVrefSingle ResistorDiff ResistorBank Vccio
L15/0-inIOT2[A]LVCMOS18NAUPONNONENANANANA1.8
D16/0-inIOT4[A]LVCMOS18NAUPONNONENANANANA1.8
E14/0-inIOT4[B]LVCMOS18NAUPONNONENANANANA1.8
C16/0-inIOT5[A]LVCMOS18NAUPONNONENANANANA1.8
D15/0-inIOT5[B]LVCMOS18NAUPONNONENANANANA1.8
E16/0-inIOT6[A]LVCMOS18NAUPONNONENANANANA1.8
F15/0-inIOT6[B]LVCMOS18NAUPONNONENANANANA1.8
F13/0-inIOT8[A]LVCMOS18NAUPONNONENANANANA1.8
G12/0-inIOT8[B]LVCMOS18NAUPONNONENANANANA1.8
F14/0-inIOT9[A]LVCMOS18NAUPONNONENANANANA1.8
F16/0-inIOT9[B]LVCMOS18NAUPONNONENANANANA1.8
F12/0-inIOT12[A]LVCMOS18NAUPONNONENANANANA1.8
G13/0-inIOT12[B]LVCMOS18NAUPONNONENANANANA1.8
G15/0-inIOT13[A]LVCMOS18NAUPONNONENANANANA1.8
G14/0-inIOT13[B]LVCMOS18NAUPONNONENANANANA1.8
G11/0-inIOT14[A]LVCMOS18NAUPONNONENANANANA1.8
H12/0-inIOT14[B]LVCMOS18NAUPONNONENANANANA1.8
G16/0-inIOT16[A]LVCMOS18NAUPONNONENANANANA1.8
H15/0-inIOT16[B]LVCMOS18NAUPONNONENANANANA1.8
H13/0-inIOT18[A]LVCMOS18NAUPONNONENANANANA1.8
J12/0-inIOT18[B]LVCMOS18NAUPONNONENANANANA1.8
H14/0-inIOT20[A]LVCMOS18NAUPONNONENANANANA1.8
H16/0-inIOT20[B]LVCMOS18NAUPONNONENANANANA1.8
J16/0-inIOT22[A]LVCMOS18NAUPONNONENANANANA1.8
J14/0-inIOT22[B]LVCMOS18NAUPONNONENANANANA1.8
J15/0-inIOT24[A]LVCMOS18NAUPONNONENANANANA1.8
K16/0-inIOT24[B]LVCMOS18NAUPONNONENANANANA1.8
H11/0clockinIOT27[A]LVCMOS18NAUPONNONENANANANA1.8
J13/0-inIOT27[B]LVCMOS18NAUPONNONENANANANA1.8
K14/1-inIOT30[A]LVCMOS18NAUPONNONENANANANA1.8
K15/1-inIOT30[B]LVCMOS18NAUPONNONENANANANA1.8
J11/1-inIOT32[A]LVCMOS18NAUPONNONENANANANA1.8
L12/1-inIOT32[B]LVCMOS18NAUPONNONENANANANA1.8
L16/1led[3]outIOT34[A]LVCMOS188UPNANAOFFNANANA1.8
L14/1led[2]outIOT34[B]LVCMOS188UPNANAOFFNANANA1.8
K13/1-inIOT36[A]LVCMOS18NAUPONNONENANANANA1.8
K12/1-inIOT36[B]LVCMOS18NAUPONNONENANANANA1.8
K11/1-inIOT38[A]LVCMOS18NAUPONNONENANANANA1.8
L13/1-inIOT38[B]LVCMOS18NAUPONNONENANANANA1.8
M14/1-inIOT40[A]LVCMOS18NAUPONNONENANANANA1.8
M15/1-inIOT40[B]LVCMOS18NAUPONNONENANANANA1.8
D14/1-inIOT44[A]LVCMOS18NAUPONNONENANANANA1.8
E15/1-inIOT44[B]LVCMOS18NAUPONNONENANANANA1.8
N15/1-inIOT48[A]LVCMOS18NAUPONNONENANANANA1.8
P16/1-inIOT48[B]LVCMOS18NAUPONNONENANANANA1.8
N16/1led[0]outIOT52[A]LVCMOS188UPNANAOFFNANANA1.8
N14/1led[1]outIOT52[B]LVCMOS188UPNANAOFFNANANA1.8
P15/1-inIOT54[A]LVCMOS18NAUPONNONENANANANA1.8
R16/1-inIOT54[B]LVCMOS18NAUPONNONENANANANA1.8
A4/5-inIOB2[A]LVCMOS18NAUPONNONENANANANA1.8
C5/5-inIOB2[B]LVCMOS18NAUPONNONENANANANA1.8
D6/5-inIOB3[A]LVCMOS18NAUPONNONENANANANA1.8
E7/5-inIOB3[B]LVCMOS18NAUPONNONENANANANA1.8
A3/5-inIOB4[A]LVCMOS18NAUPONNONENANANANA1.8
B4/5-inIOB4[B]LVCMOS18NAUPONNONENANANANA1.8
A5/5-inIOB7[A]LVCMOS18NAUPONNONENANANANA1.8
B6/5-inIOB7[B]LVCMOS18NAUPONNONENANANANA1.8
B1/5-inIOB8[A]LVCMOS18NAUPONNONENANANANA1.8
C2/5-inIOB8[B]LVCMOS18NAUPONNONENANANANA1.8
D3/5-inIOB9[A]LVCMOS18NAUPONNONENANANANA1.8
D1/5-inIOB9[B]LVCMOS18NAUPONNONENANANANA1.8
E2/5-inIOB12[A]LVCMOS18NAUPONNONENANANANA1.8
E3/5-inIOB12[B]LVCMOS18NAUPONNONENANANANA1.8
B3/5-inIOB13[A]LVCMOS18NAUPONNONENANANANA1.8
A2/5-inIOB13[B]LVCMOS18NAUPONNONENANANANA1.8
C1/5-inIOB14[A]LVCMOS18NAUPONNONENANANANA1.8
D2/5-inIOB14[B]LVCMOS18NAUPONNONENANANANA1.8
E1/5-inIOB16[A]LVCMOS18NAUPONNONENANANANA1.8
F2/5-inIOB16[B]LVCMOS18NAUPONNONENANANANA1.8
F4/5-inIOB18[A]LVCMOS18NAUPONNONENANANANA1.8
G6/5-inIOB18[B]LVCMOS18NAUPONNONENANANANA1.8
F3/5-inIOB19[A]LVCMOS18NAUPONNONENANANANA1.8
F1/5-inIOB19[B]LVCMOS18NAUPONNONENANANANA1.8
G5/5-inIOB20[A]LVCMOS18NAUPONNONENANANANA1.8
G4/5-inIOB20[B]LVCMOS18NAUPONNONENANANANA1.8
G2/5-inIOB21[A]LVCMOS18NAUPONNONENANANANA1.8
G3/5-inIOB21[B]LVCMOS18NAUPONNONENANANANA1.8
F5/5-inIOB22[A]LVCMOS18NAUPONNONENANANANA1.8
H6/5-inIOB22[B]LVCMOS18NAUPONNONENANANANA1.8
G1/5-inIOB24[A]LVCMOS18NAUPONNONENANANANA1.8
H2/5-inIOB24[B]LVCMOS18NAUPONNONENANANANA1.8
H4/5-inIOB26[A]LVCMOS18NAUPONNONENANANANA1.8
J6/5-inIOB26[B]LVCMOS18NAUPONNONENANANANA1.8
J1/5-inIOB27[A]LVCMOS18NAUPONNONENANANANA1.8
J3/5-inIOB27[B]LVCMOS18NAUPONNONENANANANA1.8
L2/4-inIOB30[A]LVCMOS18NAUPONNONENANANANA1.8
M1/4-inIOB30[B]LVCMOS18NAUPONNONENANANANA1.8
H3/4-inIOB32[A]LVCMOS18NAUPONNONENANANANA1.8
H1/4-inIOB32[B]LVCMOS18NAUPONNONENANANANA1.8
J2/4-inIOB34[A]LVCMOS18NAUPONNONENANANANA1.8
K1/4-inIOB34[B]LVCMOS18NAUPONNONENANANANA1.8
H5/4-inIOB35[A]LVCMOS18NAUPONNONENANANANA1.8
J4/4-inIOB35[B]LVCMOS18NAUPONNONENANANANA1.8
K3/4-inIOB36[A]LVCMOS18NAUPONNONENANANANA1.8
K2/4-inIOB36[B]LVCMOS18NAUPONNONENANANANA1.8
J5/4-inIOB37[A]LVCMOS18NAUPONNONENANANANA1.8
K6/4-inIOB37[B]LVCMOS18NAUPONNONENANANANA1.8
L1/4-inIOB38[A]LVCMOS18NAUPONNONENANANANA1.8
L3/4-inIOB38[B]LVCMOS18NAUPONNONENANANANA1.8
K4/4-inIOB39[A]LVCMOS18NAUPONNONENANANANA1.8
L5/4-inIOB39[B]LVCMOS18NAUPONNONENANANANA1.8
K5/4-inIOB40[A]LVCMOS18NAUPONNONENANANANA1.8
L4/4-inIOB40[B]LVCMOS18NAUPONNONENANANANA1.8
N2/4-inIOB41[A]LVCMOS18NAUPONNONENANANANA1.8
P1/4-inIOB41[B]LVCMOS18NAUPONNONENANANANA1.8
M3/4-inIOB42[A]LVCMOS18NAUPONNONENANANANA1.8
N1/4-inIOB42[B]LVCMOS18NAUPONNONENANANANA1.8
M2/4-inIOB43[A]LVCMOS18NAUPONNONENANANANA1.8
N3/4-inIOB43[B]LVCMOS18NAUPONNONENANANANA1.8
R1/4-inIOB44[A]LVCMOS18NAUPONNONENANANANA1.8
P2/4-inIOB44[B]LVCMOS18NAUPONNONENANANANA1.8
P4/4-inIOB45[A]LVCMOS18NAUPONNONENANANANA1.8
T4/4-inIOB45[B]LVCMOS18NAUPONNONENANANANA1.8
R3/4-inIOB48[A]LVCMOS18NAUPONNONENANANANA1.8
T2/4-inIOB48[B]LVCMOS18NAUPONNONENANANANA1.8
P5/4-inIOB50[A]LVCMOS18NAUPONNONENANANANA1.8
R5/4-inIOB50[B]LVCMOS18NAUPONNONENANANANA1.8
R4/4-inIOB52[A]LVCMOS18NAUPONNONENANANANA1.8
T3/4-inIOB52[B]LVCMOS18NAUPONNONENANANANA1.8
R6/4-inIOB54[A]LVCMOS18NAUPONNONENANANANA1.8
T5/4-inIOB54[B]LVCMOS18NAUPONNONENANANANA1.8
B14/7-inIOL2[A]LVCMOS18NAUPONNONENANANANA1.8
A15/7-inIOL2[B]LVCMOS18NAUPONNONENANANANA1.8
C12/7-inIOL7[A]LVCMOS18NAUPONNONENANANANA1.8
B12/7-inIOL7[B]LVCMOS18NAUPONNONENANANANA1.8
B13/7-inIOL8[A]LVCMOS18NAUPONNONENANANANA1.8
A14/7-inIOL8[B]LVCMOS18NAUPONNONENANANANA1.8
F10/7-inIOL11[A]LVCMOS18NAUPONNONENANANANA1.8
B11/7-inIOL13[A]LVCMOS18NAUPONNONENANANANA1.8
A12/7-inIOL13[B]LVCMOS18NAUPONNONENANANANA1.8
A11/7-inIOL15[A]LVCMOS18NAUPONNONENANANANA1.8
C11/7-inIOL15[B]LVCMOS18NAUPONNONENANANANA1.8
D10/7-inIOL17[A]LVCMOS18NAUPONNONENANANANA1.8
E10/7-inIOL17[B]LVCMOS18NAUPONNONENANANANA1.8
D11/7-inIOL22[A]LVCMOS18NAUPONNONENANANANA1.8
A9/7-inIOL27[A]LVCMOS18NAUPONNONENANANANA1.8
C9/7-inIOL27[B]LVCMOS18NAUPONNONENANANANA1.8
C8/6-inIOL29[A]LVCMOS18NAUPONNONENANANANA1.8
A8/6-inIOL29[B]LVCMOS18NAUPONNONENANANANA1.8
F9/6-inIOL31[A]LVCMOS18NAUPONNONENANANANA1.8
E11/6-inIOL31[B]LVCMOS18NAUPONNONENANANANA1.8
B9/6-inIOL33[A]LVCMOS18NAUPONNONENANANANA1.8
A10/6-inIOL33[B]LVCMOS18NAUPONNONENANANANA1.8
F8/6-inIOL35[A]LVCMOS18NAUPONNONENANANANA1.8
D9/6-inIOL35[B]LVCMOS18NAUPONNONENANANANA1.8
D8/6-inIOL38[A]LVCMOS18NAUPONNONENANANANA1.8
E9/6-inIOL38[B]LVCMOS18NAUPONNONENANANANA1.8
B7/6-inIOL40[A]LVCMOS18NAUPONNONENANANANA1.8
C7/6-inIOL40[B]LVCMOS18NAUPONNONENANANANA1.8
F7/6-inIOL45[A]LVCMOS18NAUPONNONENANANANA1.8
E8/6-inIOL45[B]LVCMOS18NAUPONNONENANANANA1.8
C4/6-inIOL47[A]LVCMOS18NAUPONNONENANANANA1.8
B5/6-inIOL47[B]LVCMOS18NAUPONNONENANANANA1.8
E6/6-inIOL53[A]LVCMOS18NAUPONNONENANANANA1.8
D7/6-inIOL53[B]LVCMOS18NAUPONNONENANANANA1.8
T15/2-inIOR7[A]LVCMOS18NAUPONNONENANANANA1.8
R14/2-inIOR7[B]LVCMOS18NAUPONNONENANANANA1.8
P12/2-inIOR8[A]LVCMOS18NAUPONNONENANANANA1.8
T13/2-inIOR8[B]LVCMOS18NAUPONNONENANANANA1.8
R12/2-inIOR11[A]LVCMOS18NAUPONNONENANANANA1.8
P13/2-inIOR11[B]LVCMOS18NAUPONNONENANANANA1.8
R11/2-inIOR17[A]LVCMOS18NAUPONNONENANANANA1.8
T12/2-inIOR17[B]LVCMOS18NAUPONNONENANANANA1.8
R13/2-inIOR20[A]LVCMOS18NAUPONNONENANANANA1.8
T14/2-inIOR20[B]LVCMOS18NAUPONNONENANANANA1.8
M10/2-inIOR22[A]LVCMOS18NAUPONNONENANANANA1.8
N11/2-inIOR22[B]LVCMOS18NAUPONNONENANANANA1.8
T11/2-inIOR24[A]LVCMOS18NAUPONNONENANANANA1.8
P11/2-inIOR24[B]LVCMOS18NAUPONNONENANANANA1.8
C6/2-outIOR25[A]LVCMOS188UPNANAOFFNANANA1.8
B8/2-inIOR25[B]LVCMOS18NAUPONNONENANANANA1.8
A7/2-inIOR26[A]LVCMOS18NAUPONNONENANANANA1.8
A6/2-inIOR26[B]LVCMOS18NAUPONNONENANANANA1.8
N10/2-inIOR27[A]LVCMOS18NAUPONNONENANANANA1.8
M11/2-inIOR27[B]LVCMOS18NAUPONNONENANANANA1.8
T7/3-inIOR29[A]LVCMOS18NAUPONNONENANANANA1.8
R8/3-inIOR29[B]LVCMOS18NAUPONNONENANANANA1.8
M16/3-inIOR30[A]LVCMOS18NAUPONNONENANANANA1.8
B16/3-inIOR30[B]LVCMOS18NAUPONNONENANANANA1.8
C15/3-inIOR31[A]LVCMOS18NAUPONNONENANANANA1.8
B10/3-inIOR31[B]LVCMOS18NAUPONNONENANANANA1.8
A13/3-inIOR32[A]LVCMOS18NAUPONNONENANANANA1.8
C13/3-inIOR32[B]LVCMOS18NAUPONNONENANANANA1.8
P10/3-inIOR33[A]LVCMOS18NAUPONNONENANANANA1.8
R10/3-inIOR33[B]LVCMOS18NAUPONNONENANANANA1.8
M9/3-inIOR34[A]LVCMOS18NAUPONNONENANANANA1.8
L10/3-inIOR34[B]LVCMOS18NAUPONNONENANANANA1.8
R9/3-inIOR35[A]LVCMOS18NAUPONNONENANANANA1.8
T10/3-inIOR35[B]LVCMOS18NAUPONNONENANANANA1.8
M8/3-inIOR36[A]LVCMOS18NAUPONNONENANANANA1.8
N9/3-inIOR36[B]LVCMOS18NAUPONNONENANANANA1.8
T9/3-inIOR38[A]LVCMOS18NAUPONNONENANANANA1.8
P9/3-inIOR38[B]LVCMOS18NAUPONNONENANANANA1.8
C10/3-inIOR39[A]LVCMOS18NAUPONNONENANANANA1.8
N8/3-inIOR40[A]LVCMOS18NAUPONNONENANANANA1.8
L9/3-inIOR40[B]LVCMOS18NAUPONNONENANANANA1.8
P8/3-inIOR42[A]LVCMOS18NAUPONNONENANANANA1.8
T8/3-inIOR42[B]LVCMOS18NAUPONNONENANANANA1.8
M6/3-inIOR44[A]LVCMOS18NAUPONNONENANANANA1.8
L8/3-inIOR44[B]LVCMOS18NAUPONNONENANANANA1.8
M7/3-inIOR47[A]LVCMOS18NAUPONNONENANANANA1.8
N7/3-inIOR47[B]LVCMOS18NAUPONNONENANANANA1.8
R7/3-inIOR49[A]LVCMOS18NAUPONNONENANANANA1.8
P7/3-inIOR49[B]LVCMOS18NAUPONNONENANANANA1.8
N6/3-inIOR51[A]LVCMOS18NAUPONNONENANANANA1.8
P6/3-inIOR53[A]LVCMOS18NAUPONNONENANANANA1.8
T6/3-inIOR53[B]LVCMOS18NAUPONNONENANANANA1.8
-
-
-
- - diff --git a/gowin/seq_light_test/impl/pnr/seq_light_test.power.html b/gowin/seq_light_test/impl/pnr/seq_light_test.power.html deleted file mode 100644 index b7203a2..0000000 --- a/gowin/seq_light_test/impl/pnr/seq_light_test.power.html +++ /dev/null @@ -1,276 +0,0 @@ - - - -Power Analysis Report - - - -
- -
-

Power Messages

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Report TitlePower Analysis Report
Design File\\wsl.localhost\Debian\home\koray\code\verilog\gowin\seq_light_test\impl\gwsynthesis\seq_light_test.vg
Physical Constraints File\\wsl.localhost\Debian\home\koray\code\verilog\gowin\seq_light_test\src\seq_light_test.cst
Timing Constraints File---
Tool VersionV1.9.9.03 Education (64-bit)
Part NumberGW2A-LV18PG256C8/I7
DeviceGW2A-18
Device VersionC
Created TimeSun Jul 7 15:45:13 2024 -
Legal AnnouncementCopyright (C)2014-2024 Gowin Semiconductor Corporation. All rights reserved.
-

Configure Information:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GradeCommercial
ProcessTypical
Ambient Temperature25.000 -
Use Custom Theta JAfalse
Heat SinkNone
Air FlowLFM_0
Use Custom Theta SAfalse
Board Thermal ModelNone
Use Custom Theta JBfalse
Related Vcd File
Related Saif File
Filter Glitchesfalse
Default IO Toggle Rate0.125
Default Remain Toggle Rate0.125
-

Power Summary

-

Power Information:

- - - - - - - - - - - - - -
Total Power (mW)124.846
Quiescent Power (mW)121.198
Dynamic Power (mW)3.647
-

Thermal Information:

- - - - - - - - - - - - - -
Junction Temperature28.998
Theta JA32.020
Max Allowed Ambient Temperature81.002
-

Supply Information:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Voltage SourceVoltageDynamic Current(mA)Quiescent Current(mA)Power(mW)
VCC1.0000.86369.99470.857
VCCX3.3000.54815.00051.307
VCCIO181.8000.5430.9472.682
-

Power Details

-

Power By Block Type:

- - - - - - - - - - - - - - - - -
Block TypeTotal Power(mW)Static Power(mW)Average Toggle Rate(millions of transitions/sec)
Logic0.288NA13.206
IO5.886 -2.553 -30.000 -
-

Power By Hierarchy:

- - - - - - - - - - -
Hierarchy EntityTotal Power(mW)Block Dynamic Power(mW)
seqBlink0.2880.288(0.000)
-

Power By Clock Domain:

- - - - - - - - - - - - - - - - -
Clock DomainClock Frequency(Mhz)Total Dynamic Power(mW)
newclk100.0000.024
clock100.0000.291
-
-
- - diff --git a/gowin/seq_light_test/impl/pnr/seq_light_test.rpt.html b/gowin/seq_light_test/impl/pnr/seq_light_test.rpt.html deleted file mode 100644 index 73d3866..0000000 --- a/gowin/seq_light_test/impl/pnr/seq_light_test.rpt.html +++ /dev/null @@ -1,3793 +0,0 @@ - - - -PnR Analysis Report - - - -
- -
-

PnR Messages

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Report TitlePnR Report
Design File\\wsl.localhost\Debian\home\koray\code\verilog\gowin\seq_light_test\impl\gwsynthesis\seq_light_test.vg
Physical Constraints File\\wsl.localhost\Debian\home\koray\code\verilog\gowin\seq_light_test\src\seq_light_test.cst
Timing Constraints File---
Tool VersionV1.9.9.03 Education (64-bit)
Part NumberGW2A-LV18PG256C8/I7
DeviceGW2A-18
Device VersionC
Created TimeSun Jul 7 15:45:16 2024 -
Legal AnnouncementCopyright (C)2014-2024 Gowin Semiconductor Corporation. All rights reserved.
-

PnR Details

- - - - - - - - - - -
Place & Route ProcessRunning placement: - Placement Phase 0: CPU time = 0h 0m 0.01s, Elapsed time = 0h 0m 0.01s - Placement Phase 1: CPU time = 0h 0m 0.529s, Elapsed time = 0h 0m 0.529s - Placement Phase 2: CPU time = 0h 0m 0.012s, Elapsed time = 0h 0m 0.012s - Placement Phase 3: CPU time = 0h 0m 1s, Elapsed time = 0h 0m 1s - Total Placement: CPU time = 0h 0m 2s, Elapsed time = 0h 0m 2s -Running routing: - Routing Phase 0: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0s - Routing Phase 1: CPU time = 0h 0m 0.254s, Elapsed time = 0h 0m 0.254s - Routing Phase 2: CPU time = 0h 0m 0.283s, Elapsed time = 0h 0m 0.283s - Routing Phase 3: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0s - Total Routing: CPU time = 0h 0m 0.537s, Elapsed time = 0h 0m 0.537s -Generate output files: - CPU time = 0h 0m 5s, Elapsed time = 0h 0m 5s -
Total Time and Memory UsageCPU time = 0h 0m 7s, Elapsed time = 0h 0m 7s, Peak memory usage = 439MB
-
-

Resource

- -

Resource Usage Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ResourceUsageUtilization
Logic55/20736<1%
    --LUT,ALU,ROM1655(23 LUT, 32 ALU, 0 ROM16)-
    --SSRAM(RAM16)0-
Register40/16173<1%
    --Logic Register as Latch0/155520%
    --Logic Register as FF36/15552<1%
    --I/O Register as Latch0/6210%
    --I/O Register as FF4/621<1%
CLS30/10368<1%
I/O Port5-
I/O Buf5-
    --Input Buf1-
    --Output Buf4-
    --Inout Buf0-
IOLOGIC00%
BSRAM00%
DSP00%
PLL0/40%
DCS0/80%
DQCE0/240%
OSC0/10%
CLKDIV0/80%
DLLDLY0/80%
DQS0/90%
DHCEN0/160%
-

I/O Bank Usage Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
I/O BankUsage
bank 01/29(3%)
bank 14/20(20%)
bank 20/20(0%)
bank 30/32(0%)
bank 40/36(0%)
bank 50/36(0%)
bank 60/18(0%)
bank 70/16(0%)
-
-

Global Clock Usage Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Global ClockUsage
PRIMARY2/8(25%)
LW0/8(0%)
GCLK_PIN1/8(13%)
PLL0/4(0%)
CLKDIV0/8(0%)
DLLDLY0/8(0%)
-
-

Global Clock Signals:

- - - - - - - - - - - - - - - - -
SignalGlobal ClockLocation
clock_dPRIMARY TR TL BL
newclkPRIMARY TR BL
-
-

Pinout by Port Name:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Port NameDiff PairLoc./BankConstraintDir.SiteIO TypeDrivePull ModePCI ClampHysteresisOpen DrainVrefSingle ResistorDiff ResistorBankVccio
clockH11/0YinIOT27[A]LVCMOS18NAUPONNONENANANANA1.8
led[0]N16/1YoutIOT52[A]LVCMOS188UPNANAOFFNANANA1.8
led[1]N14/1YoutIOT52[B]LVCMOS188UPNANAOFFNANANA1.8
led[2]L14/1YoutIOT34[B]LVCMOS188UPNANAOFFNANANA1.8
led[3]L16/1YoutIOT34[A]LVCMOS188UPNANAOFFNANANA1.8
-
-

All Package Pins:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Loc./BankSignalDir.SiteIO TypeDrivePull ModePCI ClampHysteresisOpen DrainVrefSingle ResistorDiff ResistorBank Vccio
L15/0-inIOT2[A]LVCMOS18NAUPONNONENANANANA1.8
D16/0-inIOT4[A]LVCMOS18NAUPONNONENANANANA1.8
E14/0-inIOT4[B]LVCMOS18NAUPONNONENANANANA1.8
C16/0-inIOT5[A]LVCMOS18NAUPONNONENANANANA1.8
D15/0-inIOT5[B]LVCMOS18NAUPONNONENANANANA1.8
E16/0-inIOT6[A]LVCMOS18NAUPONNONENANANANA1.8
F15/0-inIOT6[B]LVCMOS18NAUPONNONENANANANA1.8
F13/0-inIOT8[A]LVCMOS18NAUPONNONENANANANA1.8
G12/0-inIOT8[B]LVCMOS18NAUPONNONENANANANA1.8
F14/0-inIOT9[A]LVCMOS18NAUPONNONENANANANA1.8
F16/0-inIOT9[B]LVCMOS18NAUPONNONENANANANA1.8
F12/0-inIOT12[A]LVCMOS18NAUPONNONENANANANA1.8
G13/0-inIOT12[B]LVCMOS18NAUPONNONENANANANA1.8
G15/0-inIOT13[A]LVCMOS18NAUPONNONENANANANA1.8
G14/0-inIOT13[B]LVCMOS18NAUPONNONENANANANA1.8
G11/0-inIOT14[A]LVCMOS18NAUPONNONENANANANA1.8
H12/0-inIOT14[B]LVCMOS18NAUPONNONENANANANA1.8
G16/0-inIOT16[A]LVCMOS18NAUPONNONENANANANA1.8
H15/0-inIOT16[B]LVCMOS18NAUPONNONENANANANA1.8
H13/0-inIOT18[A]LVCMOS18NAUPONNONENANANANA1.8
J12/0-inIOT18[B]LVCMOS18NAUPONNONENANANANA1.8
H14/0-inIOT20[A]LVCMOS18NAUPONNONENANANANA1.8
H16/0-inIOT20[B]LVCMOS18NAUPONNONENANANANA1.8
J16/0-inIOT22[A]LVCMOS18NAUPONNONENANANANA1.8
J14/0-inIOT22[B]LVCMOS18NAUPONNONENANANANA1.8
J15/0-inIOT24[A]LVCMOS18NAUPONNONENANANANA1.8
K16/0-inIOT24[B]LVCMOS18NAUPONNONENANANANA1.8
H11/0clockinIOT27[A]LVCMOS18NAUPONNONENANANANA1.8
J13/0-inIOT27[B]LVCMOS18NAUPONNONENANANANA1.8
K14/1-inIOT30[A]LVCMOS18NAUPONNONENANANANA1.8
K15/1-inIOT30[B]LVCMOS18NAUPONNONENANANANA1.8
J11/1-inIOT32[A]LVCMOS18NAUPONNONENANANANA1.8
L12/1-inIOT32[B]LVCMOS18NAUPONNONENANANANA1.8
L16/1led[3]outIOT34[A]LVCMOS188UPNANAOFFNANANA1.8
L14/1led[2]outIOT34[B]LVCMOS188UPNANAOFFNANANA1.8
K13/1-inIOT36[A]LVCMOS18NAUPONNONENANANANA1.8
K12/1-inIOT36[B]LVCMOS18NAUPONNONENANANANA1.8
K11/1-inIOT38[A]LVCMOS18NAUPONNONENANANANA1.8
L13/1-inIOT38[B]LVCMOS18NAUPONNONENANANANA1.8
M14/1-inIOT40[A]LVCMOS18NAUPONNONENANANANA1.8
M15/1-inIOT40[B]LVCMOS18NAUPONNONENANANANA1.8
D14/1-inIOT44[A]LVCMOS18NAUPONNONENANANANA1.8
E15/1-inIOT44[B]LVCMOS18NAUPONNONENANANANA1.8
N15/1-inIOT48[A]LVCMOS18NAUPONNONENANANANA1.8
P16/1-inIOT48[B]LVCMOS18NAUPONNONENANANANA1.8
N16/1led[0]outIOT52[A]LVCMOS188UPNANAOFFNANANA1.8
N14/1led[1]outIOT52[B]LVCMOS188UPNANAOFFNANANA1.8
P15/1-inIOT54[A]LVCMOS18NAUPONNONENANANANA1.8
R16/1-inIOT54[B]LVCMOS18NAUPONNONENANANANA1.8
A4/5-inIOB2[A]LVCMOS18NAUPONNONENANANANA1.8
C5/5-inIOB2[B]LVCMOS18NAUPONNONENANANANA1.8
D6/5-inIOB3[A]LVCMOS18NAUPONNONENANANANA1.8
E7/5-inIOB3[B]LVCMOS18NAUPONNONENANANANA1.8
A3/5-inIOB4[A]LVCMOS18NAUPONNONENANANANA1.8
B4/5-inIOB4[B]LVCMOS18NAUPONNONENANANANA1.8
A5/5-inIOB7[A]LVCMOS18NAUPONNONENANANANA1.8
B6/5-inIOB7[B]LVCMOS18NAUPONNONENANANANA1.8
B1/5-inIOB8[A]LVCMOS18NAUPONNONENANANANA1.8
C2/5-inIOB8[B]LVCMOS18NAUPONNONENANANANA1.8
D3/5-inIOB9[A]LVCMOS18NAUPONNONENANANANA1.8
D1/5-inIOB9[B]LVCMOS18NAUPONNONENANANANA1.8
E2/5-inIOB12[A]LVCMOS18NAUPONNONENANANANA1.8
E3/5-inIOB12[B]LVCMOS18NAUPONNONENANANANA1.8
B3/5-inIOB13[A]LVCMOS18NAUPONNONENANANANA1.8
A2/5-inIOB13[B]LVCMOS18NAUPONNONENANANANA1.8
C1/5-inIOB14[A]LVCMOS18NAUPONNONENANANANA1.8
D2/5-inIOB14[B]LVCMOS18NAUPONNONENANANANA1.8
E1/5-inIOB16[A]LVCMOS18NAUPONNONENANANANA1.8
F2/5-inIOB16[B]LVCMOS18NAUPONNONENANANANA1.8
F4/5-inIOB18[A]LVCMOS18NAUPONNONENANANANA1.8
G6/5-inIOB18[B]LVCMOS18NAUPONNONENANANANA1.8
F3/5-inIOB19[A]LVCMOS18NAUPONNONENANANANA1.8
F1/5-inIOB19[B]LVCMOS18NAUPONNONENANANANA1.8
G5/5-inIOB20[A]LVCMOS18NAUPONNONENANANANA1.8
G4/5-inIOB20[B]LVCMOS18NAUPONNONENANANANA1.8
G2/5-inIOB21[A]LVCMOS18NAUPONNONENANANANA1.8
G3/5-inIOB21[B]LVCMOS18NAUPONNONENANANANA1.8
F5/5-inIOB22[A]LVCMOS18NAUPONNONENANANANA1.8
H6/5-inIOB22[B]LVCMOS18NAUPONNONENANANANA1.8
G1/5-inIOB24[A]LVCMOS18NAUPONNONENANANANA1.8
H2/5-inIOB24[B]LVCMOS18NAUPONNONENANANANA1.8
H4/5-inIOB26[A]LVCMOS18NAUPONNONENANANANA1.8
J6/5-inIOB26[B]LVCMOS18NAUPONNONENANANANA1.8
J1/5-inIOB27[A]LVCMOS18NAUPONNONENANANANA1.8
J3/5-inIOB27[B]LVCMOS18NAUPONNONENANANANA1.8
L2/4-inIOB30[A]LVCMOS18NAUPONNONENANANANA1.8
M1/4-inIOB30[B]LVCMOS18NAUPONNONENANANANA1.8
H3/4-inIOB32[A]LVCMOS18NAUPONNONENANANANA1.8
H1/4-inIOB32[B]LVCMOS18NAUPONNONENANANANA1.8
J2/4-inIOB34[A]LVCMOS18NAUPONNONENANANANA1.8
K1/4-inIOB34[B]LVCMOS18NAUPONNONENANANANA1.8
H5/4-inIOB35[A]LVCMOS18NAUPONNONENANANANA1.8
J4/4-inIOB35[B]LVCMOS18NAUPONNONENANANANA1.8
K3/4-inIOB36[A]LVCMOS18NAUPONNONENANANANA1.8
K2/4-inIOB36[B]LVCMOS18NAUPONNONENANANANA1.8
J5/4-inIOB37[A]LVCMOS18NAUPONNONENANANANA1.8
K6/4-inIOB37[B]LVCMOS18NAUPONNONENANANANA1.8
L1/4-inIOB38[A]LVCMOS18NAUPONNONENANANANA1.8
L3/4-inIOB38[B]LVCMOS18NAUPONNONENANANANA1.8
K4/4-inIOB39[A]LVCMOS18NAUPONNONENANANANA1.8
L5/4-inIOB39[B]LVCMOS18NAUPONNONENANANANA1.8
K5/4-inIOB40[A]LVCMOS18NAUPONNONENANANANA1.8
L4/4-inIOB40[B]LVCMOS18NAUPONNONENANANANA1.8
N2/4-inIOB41[A]LVCMOS18NAUPONNONENANANANA1.8
P1/4-inIOB41[B]LVCMOS18NAUPONNONENANANANA1.8
M3/4-inIOB42[A]LVCMOS18NAUPONNONENANANANA1.8
N1/4-inIOB42[B]LVCMOS18NAUPONNONENANANANA1.8
M2/4-inIOB43[A]LVCMOS18NAUPONNONENANANANA1.8
N3/4-inIOB43[B]LVCMOS18NAUPONNONENANANANA1.8
R1/4-inIOB44[A]LVCMOS18NAUPONNONENANANANA1.8
P2/4-inIOB44[B]LVCMOS18NAUPONNONENANANANA1.8
P4/4-inIOB45[A]LVCMOS18NAUPONNONENANANANA1.8
T4/4-inIOB45[B]LVCMOS18NAUPONNONENANANANA1.8
R3/4-inIOB48[A]LVCMOS18NAUPONNONENANANANA1.8
T2/4-inIOB48[B]LVCMOS18NAUPONNONENANANANA1.8
P5/4-inIOB50[A]LVCMOS18NAUPONNONENANANANA1.8
R5/4-inIOB50[B]LVCMOS18NAUPONNONENANANANA1.8
R4/4-inIOB52[A]LVCMOS18NAUPONNONENANANANA1.8
T3/4-inIOB52[B]LVCMOS18NAUPONNONENANANANA1.8
R6/4-inIOB54[A]LVCMOS18NAUPONNONENANANANA1.8
T5/4-inIOB54[B]LVCMOS18NAUPONNONENANANANA1.8
B14/7-inIOL2[A]LVCMOS18NAUPONNONENANANANA1.8
A15/7-inIOL2[B]LVCMOS18NAUPONNONENANANANA1.8
C12/7-inIOL7[A]LVCMOS18NAUPONNONENANANANA1.8
B12/7-inIOL7[B]LVCMOS18NAUPONNONENANANANA1.8
B13/7-inIOL8[A]LVCMOS18NAUPONNONENANANANA1.8
A14/7-inIOL8[B]LVCMOS18NAUPONNONENANANANA1.8
F10/7-inIOL11[A]LVCMOS18NAUPONNONENANANANA1.8
B11/7-inIOL13[A]LVCMOS18NAUPONNONENANANANA1.8
A12/7-inIOL13[B]LVCMOS18NAUPONNONENANANANA1.8
A11/7-inIOL15[A]LVCMOS18NAUPONNONENANANANA1.8
C11/7-inIOL15[B]LVCMOS18NAUPONNONENANANANA1.8
D10/7-inIOL17[A]LVCMOS18NAUPONNONENANANANA1.8
E10/7-inIOL17[B]LVCMOS18NAUPONNONENANANANA1.8
D11/7-inIOL22[A]LVCMOS18NAUPONNONENANANANA1.8
A9/7-inIOL27[A]LVCMOS18NAUPONNONENANANANA1.8
C9/7-inIOL27[B]LVCMOS18NAUPONNONENANANANA1.8
C8/6-inIOL29[A]LVCMOS18NAUPONNONENANANANA1.8
A8/6-inIOL29[B]LVCMOS18NAUPONNONENANANANA1.8
F9/6-inIOL31[A]LVCMOS18NAUPONNONENANANANA1.8
E11/6-inIOL31[B]LVCMOS18NAUPONNONENANANANA1.8
B9/6-inIOL33[A]LVCMOS18NAUPONNONENANANANA1.8
A10/6-inIOL33[B]LVCMOS18NAUPONNONENANANANA1.8
F8/6-inIOL35[A]LVCMOS18NAUPONNONENANANANA1.8
D9/6-inIOL35[B]LVCMOS18NAUPONNONENANANANA1.8
D8/6-inIOL38[A]LVCMOS18NAUPONNONENANANANA1.8
E9/6-inIOL38[B]LVCMOS18NAUPONNONENANANANA1.8
B7/6-inIOL40[A]LVCMOS18NAUPONNONENANANANA1.8
C7/6-inIOL40[B]LVCMOS18NAUPONNONENANANANA1.8
F7/6-inIOL45[A]LVCMOS18NAUPONNONENANANANA1.8
E8/6-inIOL45[B]LVCMOS18NAUPONNONENANANANA1.8
C4/6-inIOL47[A]LVCMOS18NAUPONNONENANANANA1.8
B5/6-inIOL47[B]LVCMOS18NAUPONNONENANANANA1.8
E6/6-inIOL53[A]LVCMOS18NAUPONNONENANANANA1.8
D7/6-inIOL53[B]LVCMOS18NAUPONNONENANANANA1.8
T15/2-inIOR7[A]LVCMOS18NAUPONNONENANANANA1.8
R14/2-inIOR7[B]LVCMOS18NAUPONNONENANANANA1.8
P12/2-inIOR8[A]LVCMOS18NAUPONNONENANANANA1.8
T13/2-inIOR8[B]LVCMOS18NAUPONNONENANANANA1.8
R12/2-inIOR11[A]LVCMOS18NAUPONNONENANANANA1.8
P13/2-inIOR11[B]LVCMOS18NAUPONNONENANANANA1.8
R11/2-inIOR17[A]LVCMOS18NAUPONNONENANANANA1.8
T12/2-inIOR17[B]LVCMOS18NAUPONNONENANANANA1.8
R13/2-inIOR20[A]LVCMOS18NAUPONNONENANANANA1.8
T14/2-inIOR20[B]LVCMOS18NAUPONNONENANANANA1.8
M10/2-inIOR22[A]LVCMOS18NAUPONNONENANANANA1.8
N11/2-inIOR22[B]LVCMOS18NAUPONNONENANANANA1.8
T11/2-inIOR24[A]LVCMOS18NAUPONNONENANANANA1.8
P11/2-inIOR24[B]LVCMOS18NAUPONNONENANANANA1.8
C6/2-outIOR25[A]LVCMOS188UPNANAOFFNANANA1.8
B8/2-inIOR25[B]LVCMOS18NAUPONNONENANANANA1.8
A7/2-inIOR26[A]LVCMOS18NAUPONNONENANANANA1.8
A6/2-inIOR26[B]LVCMOS18NAUPONNONENANANANA1.8
N10/2-inIOR27[A]LVCMOS18NAUPONNONENANANANA1.8
M11/2-inIOR27[B]LVCMOS18NAUPONNONENANANANA1.8
T7/3-inIOR29[A]LVCMOS18NAUPONNONENANANANA1.8
R8/3-inIOR29[B]LVCMOS18NAUPONNONENANANANA1.8
M16/3-inIOR30[A]LVCMOS18NAUPONNONENANANANA1.8
B16/3-inIOR30[B]LVCMOS18NAUPONNONENANANANA1.8
C15/3-inIOR31[A]LVCMOS18NAUPONNONENANANANA1.8
B10/3-inIOR31[B]LVCMOS18NAUPONNONENANANANA1.8
A13/3-inIOR32[A]LVCMOS18NAUPONNONENANANANA1.8
C13/3-inIOR32[B]LVCMOS18NAUPONNONENANANANA1.8
P10/3-inIOR33[A]LVCMOS18NAUPONNONENANANANA1.8
R10/3-inIOR33[B]LVCMOS18NAUPONNONENANANANA1.8
M9/3-inIOR34[A]LVCMOS18NAUPONNONENANANANA1.8
L10/3-inIOR34[B]LVCMOS18NAUPONNONENANANANA1.8
R9/3-inIOR35[A]LVCMOS18NAUPONNONENANANANA1.8
T10/3-inIOR35[B]LVCMOS18NAUPONNONENANANANA1.8
M8/3-inIOR36[A]LVCMOS18NAUPONNONENANANANA1.8
N9/3-inIOR36[B]LVCMOS18NAUPONNONENANANANA1.8
T9/3-inIOR38[A]LVCMOS18NAUPONNONENANANANA1.8
P9/3-inIOR38[B]LVCMOS18NAUPONNONENANANANA1.8
C10/3-inIOR39[A]LVCMOS18NAUPONNONENANANANA1.8
N8/3-inIOR40[A]LVCMOS18NAUPONNONENANANANA1.8
L9/3-inIOR40[B]LVCMOS18NAUPONNONENANANANA1.8
P8/3-inIOR42[A]LVCMOS18NAUPONNONENANANANA1.8
T8/3-inIOR42[B]LVCMOS18NAUPONNONENANANANA1.8
M6/3-inIOR44[A]LVCMOS18NAUPONNONENANANANA1.8
L8/3-inIOR44[B]LVCMOS18NAUPONNONENANANANA1.8
M7/3-inIOR47[A]LVCMOS18NAUPONNONENANANANA1.8
N7/3-inIOR47[B]LVCMOS18NAUPONNONENANANANA1.8
R7/3-inIOR49[A]LVCMOS18NAUPONNONENANANANA1.8
P7/3-inIOR49[B]LVCMOS18NAUPONNONENANANANA1.8
N6/3-inIOR51[A]LVCMOS18NAUPONNONENANANANA1.8
P6/3-inIOR53[A]LVCMOS18NAUPONNONENANANANA1.8
T6/3-inIOR53[B]LVCMOS18NAUPONNONENANANANA1.8
-
-
-
- - diff --git a/gowin/seq_light_test/impl/pnr/seq_light_test.rpt.txt b/gowin/seq_light_test/impl/pnr/seq_light_test.rpt.txt deleted file mode 100644 index 0c326e9..0000000 --- a/gowin/seq_light_test/impl/pnr/seq_light_test.rpt.txt +++ /dev/null @@ -1,345 +0,0 @@ -//Copyright (C)2014-2024 Gowin Semiconductor Corporation. -//All rights reserved. - - -1. PnR Messages - - : PnR Report - : \\wsl.localhost\Debian\home\koray\code\verilog\gowin\seq_light_test\impl\gwsynthesis\seq_light_test.vg - : \\wsl.localhost\Debian\home\koray\code\verilog\gowin\seq_light_test\src\seq_light_test.cst - : --- - : V1.9.9.03 Education (64-bit) - : GW2A-LV18PG256C8/I7 - : GW2A-18 - : C - :Sun Jul 7 15:45:18 2024 - - -2. PnR Details - - Running placement: - Placement Phase 0: CPU time = 0h 0m 0.01s, Elapsed time = 0h 0m 0.01s - Placement Phase 1: CPU time = 0h 0m 0.529s, Elapsed time = 0h 0m 0.529s - Placement Phase 2: CPU time = 0h 0m 0.012s, Elapsed time = 0h 0m 0.012s - Placement Phase 3: CPU time = 0h 0m 1s, Elapsed time = 0h 0m 1s - Total Placement: CPU time = 0h 0m 2s, Elapsed time = 0h 0m 2s - Running routing: - Routing Phase 0: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0s - Routing Phase 1: CPU time = 0h 0m 0.254s, Elapsed time = 0h 0m 0.254s - Routing Phase 2: CPU time = 0h 0m 0.283s, Elapsed time = 0h 0m 0.283s - Routing Phase 3: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0s - Total Routing: CPU time = 0h 0m 0.537s, Elapsed time = 0h 0m 0.537s - Generate output files: - CPU time = 0h 0m 5s, Elapsed time = 0h 0m 5s - - Total Time and Memory Usage: CPU time = 0h 0m 7s, Elapsed time = 0h 0m 7s, Peak memory usage = 439MB - - -3. Resource Usage Summary - - ---------------------------------------------------------- - Resources | Usage - ---------------------------------------------------------- - Logic | 55/20736 <1% - --LUT,ALU,ROM16 | 55(23 LUT, 32 ALU, 0 ROM16) - --SSRAM(RAM16) | 0 - Register | 40/16173 <1% - --Logic Register as Latch | 0/15552 0% - --Logic Register as FF | 36/15552 <1% - --I/O Register as Latch | 0/621 0% - --I/O Register as FF | 4/621 <1% - CLS | 30/10368 <1% - I/O Port | 5 - I/O Buf | 5 - --Input Buf | 1 - --Output Buf | 4 - --Inout Buf | 0 - IOLOGIC | 0% - BSRAM | 0% - DSP | 0% - PLL | 0/4 0% - DCS | 0/8 0% - DQCE | 0/24 0% - OSC | 0/1 0% - CLKDIV | 0/8 0% - DLLDLY | 0/8 0% - DQS | 0/9 0% - DHCEN | 0/16 0% - ========================================================== - - - -4. I/O Bank Usage Summary - - ----------------------- - I/O Bank | Usage - ----------------------- - bank 0 | 1/29(3%) - bank 1 | 4/20(20%) - bank 2 | 0/20(0%) - bank 3 | 0/32(0%) - bank 4 | 0/36(0%) - bank 5 | 0/36(0%) - bank 6 | 0/18(0%) - bank 7 | 0/16(0%) - ======================= - - -5. Global Clock Usage Summary - - ------------------------------- - Global Clock | Usage - ------------------------------- - PRIMARY | 2/8(25%) - LW | 0/8(0%) - GCLK_PIN | 1/8(13%) - PLL | 0/4(0%) - CLKDIV | 0/8(0%) - DLLDLY | 0/8(0%) - =============================== - - -6. Global Clock Signals - - ------------------------------------------- - Signal | Global Clock | Location - ------------------------------------------- - clock_d | PRIMARY | TR TL BL - newclk | PRIMARY | TR BL - =========================================== - - -7. Pinout by Port Name - ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -Port Name | Diff Pair | Loc./Bank | Constraint | Dir. | Site | IO Type | Drive | Pull Mode | PCI Clamp | Hysteresis | Open Drain | Vref | Single Resistor | Diff Resistor | BankVccio ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -clock | | H11/0 | Y | in | IOT27[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -led[0] | | N16/1 | Y | out | IOT52[A] | LVCMOS18 | 8 | UP | NA | NA | OFF | NA | NA | NA | 1.8 -led[1] | | N14/1 | Y | out | IOT52[B] | LVCMOS18 | 8 | UP | NA | NA | OFF | NA | NA | NA | 1.8 -led[2] | | L14/1 | Y | out | IOT34[B] | LVCMOS18 | 8 | UP | NA | NA | OFF | NA | NA | NA | 1.8 -led[3] | | L16/1 | Y | out | IOT34[A] | LVCMOS18 | 8 | UP | NA | NA | OFF | NA | NA | NA | 1.8 -================================================================================================================================================================================================================== - - - - -8. All Package Pins - ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -Loc./Bank| Signal | Dir. | Site | IO Type | Drive | Pull Mode | PCI Clamp | Hysteresis | Open Drain | Vref | Single Resistor | Diff Resistor | Bank Vccio ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -L15/0 | - | in | IOT2[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -D16/0 | - | in | IOT4[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -E14/0 | - | in | IOT4[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -C16/0 | - | in | IOT5[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -D15/0 | - | in | IOT5[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -E16/0 | - | in | IOT6[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -F15/0 | - | in | IOT6[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -F13/0 | - | in | IOT8[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -G12/0 | - | in | IOT8[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -F14/0 | - | in | IOT9[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -F16/0 | - | in | IOT9[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -F12/0 | - | in | IOT12[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -G13/0 | - | in | IOT12[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -G15/0 | - | in | IOT13[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -G14/0 | - | in | IOT13[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -G11/0 | - | in | IOT14[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -H12/0 | - | in | IOT14[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -G16/0 | - | in | IOT16[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -H15/0 | - | in | IOT16[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -H13/0 | - | in | IOT18[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -J12/0 | - | in | IOT18[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -H14/0 | - | in | IOT20[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -H16/0 | - | in | IOT20[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -J16/0 | - | in | IOT22[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -J14/0 | - | in | IOT22[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -J15/0 | - | in | IOT24[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -K16/0 | - | in | IOT24[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -H11/0 | clock | in | IOT27[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -J13/0 | - | in | IOT27[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -K14/1 | - | in | IOT30[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -K15/1 | - | in | IOT30[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -J11/1 | - | in | IOT32[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -L12/1 | - | in | IOT32[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -L16/1 | led[3] | out | IOT34[A] | LVCMOS18 | 8 | UP | NA | NA | OFF | NA | NA | NA | 1.8 -L14/1 | led[2] | out | IOT34[B] | LVCMOS18 | 8 | UP | NA | NA | OFF | NA | NA | NA | 1.8 -K13/1 | - | in | IOT36[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -K12/1 | - | in | IOT36[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -K11/1 | - | in | IOT38[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -L13/1 | - | in | IOT38[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -M14/1 | - | in | IOT40[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -M15/1 | - | in | IOT40[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -D14/1 | - | in | IOT44[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -E15/1 | - | in | IOT44[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -N15/1 | - | in | IOT48[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -P16/1 | - | in | IOT48[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -N16/1 | led[0] | out | IOT52[A] | LVCMOS18 | 8 | UP | NA | NA | OFF | NA | NA | NA | 1.8 -N14/1 | led[1] | out | IOT52[B] | LVCMOS18 | 8 | UP | NA | NA | OFF | NA | NA | NA | 1.8 -P15/1 | - | in | IOT54[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -R16/1 | - | in | IOT54[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -A4/5 | - | in | IOB2[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -C5/5 | - | in | IOB2[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -D6/5 | - | in | IOB3[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -E7/5 | - | in | IOB3[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -A3/5 | - | in | IOB4[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -B4/5 | - | in | IOB4[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -A5/5 | - | in | IOB7[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -B6/5 | - | in | IOB7[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -B1/5 | - | in | IOB8[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -C2/5 | - | in | IOB8[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -D3/5 | - | in | IOB9[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -D1/5 | - | in | IOB9[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -E2/5 | - | in | IOB12[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -E3/5 | - | in | IOB12[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -B3/5 | - | in | IOB13[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -A2/5 | - | in | IOB13[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -C1/5 | - | in | IOB14[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -D2/5 | - | in | IOB14[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -E1/5 | - | in | IOB16[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -F2/5 | - | in | IOB16[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -F4/5 | - | in | IOB18[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -G6/5 | - | in | IOB18[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -F3/5 | - | in | IOB19[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -F1/5 | - | in | IOB19[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -G5/5 | - | in | IOB20[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -G4/5 | - | in | IOB20[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -G2/5 | - | in | IOB21[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -G3/5 | - | in | IOB21[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -F5/5 | - | in | IOB22[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -H6/5 | - | in | IOB22[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -G1/5 | - | in | IOB24[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -H2/5 | - | in | IOB24[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -H4/5 | - | in | IOB26[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -J6/5 | - | in | IOB26[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -J1/5 | - | in | IOB27[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -J3/5 | - | in | IOB27[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -L2/4 | - | in | IOB30[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -M1/4 | - | in | IOB30[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -H3/4 | - | in | IOB32[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -H1/4 | - | in | IOB32[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -J2/4 | - | in | IOB34[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -K1/4 | - | in | IOB34[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -H5/4 | - | in | IOB35[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -J4/4 | - | in | IOB35[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -K3/4 | - | in | IOB36[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -K2/4 | - | in | IOB36[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -J5/4 | - | in | IOB37[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -K6/4 | - | in | IOB37[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -L1/4 | - | in | IOB38[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -L3/4 | - | in | IOB38[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -K4/4 | - | in | IOB39[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -L5/4 | - | in | IOB39[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -K5/4 | - | in | IOB40[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -L4/4 | - | in | IOB40[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -N2/4 | - | in | IOB41[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -P1/4 | - | in | IOB41[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -M3/4 | - | in | IOB42[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -N1/4 | - | in | IOB42[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -M2/4 | - | in | IOB43[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -N3/4 | - | in | IOB43[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -R1/4 | - | in | IOB44[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -P2/4 | - | in | IOB44[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -P4/4 | - | in | IOB45[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -T4/4 | - | in | IOB45[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -R3/4 | - | in | IOB48[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -T2/4 | - | in | IOB48[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -P5/4 | - | in | IOB50[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -R5/4 | - | in | IOB50[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -R4/4 | - | in | IOB52[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -T3/4 | - | in | IOB52[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -R6/4 | - | in | IOB54[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -T5/4 | - | in | IOB54[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -B14/7 | - | in | IOL2[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -A15/7 | - | in | IOL2[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -C12/7 | - | in | IOL7[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -B12/7 | - | in | IOL7[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -B13/7 | - | in | IOL8[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -A14/7 | - | in | IOL8[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -F10/7 | - | in | IOL11[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -B11/7 | - | in | IOL13[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -A12/7 | - | in | IOL13[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -A11/7 | - | in | IOL15[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -C11/7 | - | in | IOL15[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -D10/7 | - | in | IOL17[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -E10/7 | - | in | IOL17[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -D11/7 | - | in | IOL22[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -A9/7 | - | in | IOL27[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -C9/7 | - | in | IOL27[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -C8/6 | - | in | IOL29[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -A8/6 | - | in | IOL29[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -F9/6 | - | in | IOL31[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -E11/6 | - | in | IOL31[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -B9/6 | - | in | IOL33[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -A10/6 | - | in | IOL33[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -F8/6 | - | in | IOL35[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -D9/6 | - | in | IOL35[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -D8/6 | - | in | IOL38[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -E9/6 | - | in | IOL38[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -B7/6 | - | in | IOL40[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -C7/6 | - | in | IOL40[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -F7/6 | - | in | IOL45[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -E8/6 | - | in | IOL45[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -C4/6 | - | in | IOL47[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -B5/6 | - | in | IOL47[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -E6/6 | - | in | IOL53[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -D7/6 | - | in | IOL53[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -T15/2 | - | in | IOR7[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -R14/2 | - | in | IOR7[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -P12/2 | - | in | IOR8[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -T13/2 | - | in | IOR8[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -R12/2 | - | in | IOR11[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -P13/2 | - | in | IOR11[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -R11/2 | - | in | IOR17[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -T12/2 | - | in | IOR17[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -R13/2 | - | in | IOR20[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -T14/2 | - | in | IOR20[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -M10/2 | - | in | IOR22[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -N11/2 | - | in | IOR22[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -T11/2 | - | in | IOR24[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -P11/2 | - | in | IOR24[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -C6/2 | - | out | IOR25[A] | LVCMOS18 | 8 | UP | NA | NA | OFF | NA | NA | NA | 1.8 -B8/2 | - | in | IOR25[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -A7/2 | - | in | IOR26[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -A6/2 | - | in | IOR26[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -N10/2 | - | in | IOR27[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -M11/2 | - | in | IOR27[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -T7/3 | - | in | IOR29[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -R8/3 | - | in | IOR29[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -M16/3 | - | in | IOR30[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -B16/3 | - | in | IOR30[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -C15/3 | - | in | IOR31[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -B10/3 | - | in | IOR31[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -A13/3 | - | in | IOR32[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -C13/3 | - | in | IOR32[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -P10/3 | - | in | IOR33[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -R10/3 | - | in | IOR33[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -M9/3 | - | in | IOR34[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -L10/3 | - | in | IOR34[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -R9/3 | - | in | IOR35[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -T10/3 | - | in | IOR35[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -M8/3 | - | in | IOR36[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -N9/3 | - | in | IOR36[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -T9/3 | - | in | IOR38[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -P9/3 | - | in | IOR38[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -C10/3 | - | in | IOR39[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -N8/3 | - | in | IOR40[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -L9/3 | - | in | IOR40[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -P8/3 | - | in | IOR42[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -T8/3 | - | in | IOR42[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -M6/3 | - | in | IOR44[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -L8/3 | - | in | IOR44[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -M7/3 | - | in | IOR47[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -N7/3 | - | in | IOR47[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -R7/3 | - | in | IOR49[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -P7/3 | - | in | IOR49[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -N6/3 | - | in | IOR51[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -P6/3 | - | in | IOR53[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -T6/3 | - | in | IOR53[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -==================================================================================================================================================================================== - - diff --git a/gowin/seq_light_test/impl/pnr/seq_light_test.timing_paths b/gowin/seq_light_test/impl/pnr/seq_light_test.timing_paths deleted file mode 100644 index 62780b1..0000000 --- a/gowin/seq_light_test/impl/pnr/seq_light_test.timing_paths +++ /dev/null @@ -1,941 +0,0 @@ -===== -SETUP -6.732 -9.734 -16.466 -clock_ibuf -0.000 -4.230 -clkcnt_26_s0 -6.501 -6.733 -n38_s108 -6.890 -7.460 -n38_s100 -7.632 -8.187 -n38_s96 -8.600 -9.170 -clkcnt_24_s0 -9.734 -===== -SETUP -6.732 -9.734 -16.466 -clock_ibuf -0.000 -4.230 -clkcnt_26_s0 -6.501 -6.733 -n38_s108 -6.890 -7.460 -n38_s100 -7.632 -8.187 -n38_s96 -8.600 -9.170 -clkcnt_25_s0 -9.734 -===== -SETUP -6.732 -9.734 -16.466 -clock_ibuf -0.000 -4.230 -clkcnt_26_s0 -6.501 -6.733 -n38_s108 -6.890 -7.460 -n38_s100 -7.632 -8.187 -n38_s96 -8.600 -9.170 -clkcnt_26_s0 -9.734 -===== -SETUP -6.732 -9.734 -16.466 -clock_ibuf -0.000 -4.230 -clkcnt_26_s0 -6.501 -6.733 -n38_s108 -6.890 -7.460 -n38_s100 -7.632 -8.187 -n38_s96 -8.600 -9.170 -clkcnt_27_s0 -9.734 -===== -SETUP -6.732 -9.734 -16.466 -clock_ibuf -0.000 -4.230 -clkcnt_26_s0 -6.501 -6.733 -n38_s108 -6.890 -7.460 -n38_s100 -7.632 -8.187 -n38_s96 -8.600 -9.170 -clkcnt_28_s0 -9.734 -===== -SETUP -6.732 -9.734 -16.466 -clock_ibuf -0.000 -4.230 -clkcnt_26_s0 -6.501 -6.733 -n38_s108 -6.890 -7.460 -n38_s100 -7.632 -8.187 -n38_s96 -8.600 -9.170 -clkcnt_29_s0 -9.734 -===== -SETUP -6.740 -9.726 -16.466 -clock_ibuf -0.000 -4.230 -clkcnt_26_s0 -6.501 -6.733 -n38_s108 -6.890 -7.460 -n38_s100 -7.632 -8.187 -n38_s96 -8.600 -9.170 -clkcnt_31_s0 -9.726 -===== -SETUP -6.740 -9.726 -16.466 -clock_ibuf -0.000 -4.230 -clkcnt_26_s0 -6.501 -6.733 -n38_s108 -6.890 -7.460 -n38_s100 -7.632 -8.187 -n38_s96 -8.600 -9.170 -clkcnt_30_s0 -9.726 -===== -SETUP -6.923 -9.543 -16.466 -clock_ibuf -0.000 -4.230 -clkcnt_26_s0 -6.501 -6.733 -n38_s108 -6.890 -7.460 -n38_s100 -7.632 -8.187 -n38_s96 -8.600 -9.170 -clkcnt_12_s0 -9.543 -===== -SETUP -6.923 -9.543 -16.466 -clock_ibuf -0.000 -4.230 -clkcnt_26_s0 -6.501 -6.733 -n38_s108 -6.890 -7.460 -n38_s100 -7.632 -8.187 -n38_s96 -8.600 -9.170 -clkcnt_13_s0 -9.543 -===== -SETUP -6.923 -9.543 -16.466 -clock_ibuf -0.000 -4.230 -clkcnt_26_s0 -6.501 -6.733 -n38_s108 -6.890 -7.460 -n38_s100 -7.632 -8.187 -n38_s96 -8.600 -9.170 -clkcnt_14_s0 -9.543 -===== -SETUP -6.923 -9.543 -16.466 -clock_ibuf -0.000 -4.230 -clkcnt_26_s0 -6.501 -6.733 -n38_s108 -6.890 -7.460 -n38_s100 -7.632 -8.187 -n38_s96 -8.600 -9.170 -clkcnt_15_s0 -9.543 -===== -SETUP -6.923 -9.543 -16.466 -clock_ibuf -0.000 -4.230 -clkcnt_26_s0 -6.501 -6.733 -n38_s108 -6.890 -7.460 -n38_s100 -7.632 -8.187 -n38_s96 -8.600 -9.170 -clkcnt_16_s0 -9.543 -===== -SETUP -6.923 -9.543 -16.466 -clock_ibuf -0.000 -4.230 -clkcnt_26_s0 -6.501 -6.733 -n38_s108 -6.890 -7.460 -n38_s100 -7.632 -8.187 -n38_s96 -8.600 -9.170 -clkcnt_17_s0 -9.543 -===== -SETUP -6.923 -9.543 -16.466 -clock_ibuf -0.000 -4.230 -clkcnt_26_s0 -6.501 -6.733 -n38_s108 -6.890 -7.460 -n38_s100 -7.632 -8.187 -n38_s96 -8.600 -9.170 -clkcnt_18_s0 -9.543 -===== -SETUP -6.923 -9.543 -16.466 -clock_ibuf -0.000 -4.230 -clkcnt_26_s0 -6.501 -6.733 -n38_s108 -6.890 -7.460 -n38_s100 -7.632 -8.187 -n38_s96 -8.600 -9.170 -clkcnt_19_s0 -9.543 -===== -SETUP -6.923 -9.543 -16.466 -clock_ibuf -0.000 -4.230 -clkcnt_26_s0 -6.501 -6.733 -n38_s108 -6.890 -7.460 -n38_s100 -7.632 -8.187 -n38_s96 -8.600 -9.170 -clkcnt_20_s0 -9.543 -===== -SETUP -6.923 -9.543 -16.466 -clock_ibuf -0.000 -4.230 -clkcnt_26_s0 -6.501 -6.733 -n38_s108 -6.890 -7.460 -n38_s100 -7.632 -8.187 -n38_s96 -8.600 -9.170 -clkcnt_21_s0 -9.543 -===== -SETUP -6.923 -9.543 -16.466 -clock_ibuf -0.000 -4.230 -clkcnt_26_s0 -6.501 -6.733 -n38_s108 -6.890 -7.460 -n38_s100 -7.632 -8.187 -n38_s96 -8.600 -9.170 -clkcnt_22_s0 -9.543 -===== -SETUP -6.923 -9.543 -16.466 -clock_ibuf -0.000 -4.230 -clkcnt_26_s0 -6.501 -6.733 -n38_s108 -6.890 -7.460 -n38_s100 -7.632 -8.187 -n38_s96 -8.600 -9.170 -clkcnt_23_s0 -9.543 -===== -SETUP -6.927 -9.539 -16.466 -clock_ibuf -0.000 -4.230 -clkcnt_26_s0 -6.501 -6.733 -n38_s108 -6.890 -7.460 -n38_s100 -7.632 -8.187 -n38_s96 -8.600 -9.170 -clkcnt_1_s0 -9.539 -===== -SETUP -6.927 -9.539 -16.466 -clock_ibuf -0.000 -4.230 -clkcnt_26_s0 -6.501 -6.733 -n38_s108 -6.890 -7.460 -n38_s100 -7.632 -8.187 -n38_s96 -8.600 -9.170 -clkcnt_2_s0 -9.539 -===== -SETUP -6.927 -9.539 -16.466 -clock_ibuf -0.000 -4.230 -clkcnt_26_s0 -6.501 -6.733 -n38_s108 -6.890 -7.460 -n38_s100 -7.632 -8.187 -n38_s96 -8.600 -9.170 -clkcnt_3_s0 -9.539 -===== -SETUP -6.927 -9.539 -16.466 -clock_ibuf -0.000 -4.230 -clkcnt_26_s0 -6.501 -6.733 -n38_s108 -6.890 -7.460 -n38_s100 -7.632 -8.187 -n38_s96 -8.600 -9.170 -clkcnt_4_s0 -9.539 -===== -SETUP -6.927 -9.539 -16.466 -clock_ibuf -0.000 -4.230 -clkcnt_26_s0 -6.501 -6.733 -n38_s108 -6.890 -7.460 -n38_s100 -7.632 -8.187 -n38_s96 -8.600 -9.170 -clkcnt_5_s0 -9.539 -===== -HOLD --4.449 -0.234 -4.684 -n72_s2 -0.002 -0.234 -newclk_s1 -0.234 -===== -HOLD -0.425 -5.074 -4.649 -clock_ibuf -0.000 -3.126 -clkcnt_2_s0 -4.638 -4.840 -n35_s -4.842 -5.074 -clkcnt_2_s0 -5.074 -===== -HOLD -0.425 -5.074 -4.649 -clock_ibuf -0.000 -3.126 -clkcnt_6_s0 -4.638 -4.840 -n31_s -4.842 -5.074 -clkcnt_6_s0 -5.074 -===== -HOLD -0.425 -5.074 -4.649 -clock_ibuf -0.000 -3.126 -clkcnt_8_s0 -4.638 -4.840 -n29_s -4.842 -5.074 -clkcnt_8_s0 -5.074 -===== -HOLD -0.425 -5.074 -4.649 -clock_ibuf -0.000 -3.126 -clkcnt_14_s0 -4.638 -4.840 -n23_s -4.842 -5.074 -clkcnt_14_s0 -5.074 -===== -HOLD -0.425 -5.074 -4.649 -clock_ibuf -0.000 -3.126 -clkcnt_20_s0 -4.638 -4.840 -n17_s -4.842 -5.074 -clkcnt_20_s0 -5.074 -===== -HOLD -0.425 -5.074 -4.649 -clock_ibuf -0.000 -3.126 -clkcnt_24_s0 -4.638 -4.840 -n13_s -4.842 -5.074 -clkcnt_24_s0 -5.074 -===== -HOLD -0.425 -5.074 -4.649 -clock_ibuf -0.000 -3.126 -clkcnt_26_s0 -4.638 -4.840 -n11_s -4.842 -5.074 -clkcnt_26_s0 -5.074 -===== -HOLD -0.425 -5.074 -4.649 -clock_ibuf -0.000 -3.126 -clkcnt_30_s0 -4.638 -4.840 -n7_s -4.842 -5.074 -clkcnt_30_s0 -5.074 -===== -HOLD -0.425 -2.197 -1.771 -fsm_2_s0 -1.760 -1.962 -n111_s0 -1.965 -2.197 -fsm_2_s0 -2.197 -===== -HOLD -0.427 -5.075 -4.649 -clock_ibuf -0.000 -3.126 -clkcnt_0_s0 -4.638 -4.840 -n37_s2 -4.843 -5.075 -clkcnt_0_s0 -5.075 -===== -HOLD -0.427 -5.075 -4.649 -clock_ibuf -0.000 -3.126 -clkcnt_12_s0 -4.638 -4.840 -n25_s -4.843 -5.075 -clkcnt_12_s0 -5.075 -===== -HOLD -0.427 -5.075 -4.649 -clock_ibuf -0.000 -3.126 -clkcnt_18_s0 -4.638 -4.840 -n19_s -4.843 -5.075 -clkcnt_18_s0 -5.075 -===== -HOLD -0.542 -5.191 -4.649 -clock_ibuf -0.000 -3.126 -clkcnt_31_s0 -4.638 -4.839 -n6_s -4.959 -5.191 -clkcnt_31_s0 -5.191 -===== -HOLD -0.542 -5.191 -4.649 -clock_ibuf -0.000 -3.126 -clkcnt_11_s0 -4.638 -4.839 -n26_s -4.959 -5.191 -clkcnt_11_s0 -5.191 -===== -HOLD -0.542 -5.191 -4.649 -clock_ibuf -0.000 -3.126 -clkcnt_23_s0 -4.638 -4.839 -n14_s -4.959 -5.191 -clkcnt_23_s0 -5.191 -===== -HOLD -0.546 -5.194 -4.649 -clock_ibuf -0.000 -3.126 -clkcnt_3_s0 -4.638 -4.839 -n34_s -4.962 -5.194 -clkcnt_3_s0 -5.194 -===== -HOLD -0.546 -5.194 -4.649 -clock_ibuf -0.000 -3.126 -clkcnt_4_s0 -4.638 -4.839 -n33_s -4.962 -5.194 -clkcnt_4_s0 -5.194 -===== -HOLD -0.546 -5.194 -4.649 -clock_ibuf -0.000 -3.126 -clkcnt_9_s0 -4.638 -4.839 -n28_s -4.962 -5.194 -clkcnt_9_s0 -5.194 -===== -HOLD -0.546 -5.194 -4.649 -clock_ibuf -0.000 -3.126 -clkcnt_16_s0 -4.638 -4.839 -n21_s -4.962 -5.194 -clkcnt_16_s0 -5.194 -===== -HOLD -0.546 -5.194 -4.649 -clock_ibuf -0.000 -3.126 -clkcnt_21_s0 -4.638 -4.839 -n16_s -4.962 -5.194 -clkcnt_21_s0 -5.194 -===== -HOLD -0.546 -5.194 -4.649 -clock_ibuf -0.000 -3.126 -clkcnt_22_s0 -4.638 -4.839 -n15_s -4.962 -5.194 -clkcnt_22_s0 -5.194 -===== -HOLD -0.546 -5.194 -4.649 -clock_ibuf -0.000 -3.126 -clkcnt_27_s0 -4.638 -4.839 -n10_s -4.962 -5.194 -clkcnt_27_s0 -5.194 -===== -HOLD -0.546 -5.194 -4.649 -clock_ibuf -0.000 -3.126 -clkcnt_28_s0 -4.638 -4.839 -n9_s -4.962 -5.194 -clkcnt_28_s0 -5.194 -===== -HOLD -0.546 -5.194 -4.649 -clock_ibuf -0.000 -3.126 -clkcnt_29_s0 -4.638 -4.839 -n8_s -4.962 -5.194 -clkcnt_29_s0 -5.194 diff --git a/gowin/seq_light_test/impl/pnr/seq_light_test.tr.html b/gowin/seq_light_test/impl/pnr/seq_light_test.tr.html deleted file mode 100644 index dc4e00e..0000000 --- a/gowin/seq_light_test/impl/pnr/seq_light_test.tr.html +++ /dev/null @@ -1,10 +0,0 @@ - - - -Timing Analysis Report - - - - - - diff --git a/gowin/seq_light_test/impl/pnr/seq_light_test_tr_cata.html b/gowin/seq_light_test/impl/pnr/seq_light_test_tr_cata.html deleted file mode 100644 index 4a98bd4..0000000 --- a/gowin/seq_light_test/impl/pnr/seq_light_test_tr_cata.html +++ /dev/null @@ -1,132 +0,0 @@ - - - -Timing Report Navigation - - - - - - - diff --git a/gowin/seq_light_test/impl/pnr/seq_light_test_tr_content.html b/gowin/seq_light_test/impl/pnr/seq_light_test_tr_content.html deleted file mode 100644 index 87f3ab0..0000000 --- a/gowin/seq_light_test/impl/pnr/seq_light_test_tr_content.html +++ /dev/null @@ -1,13983 +0,0 @@ - - - -Timing Analysis Report - - - -
-

Timing Messages

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Report TitleTiming Analysis Report
Design File\\wsl.localhost\Debian\home\koray\code\verilog\gowin\seq_light_test\impl\gwsynthesis\seq_light_test.vg
Physical Constraints File\\wsl.localhost\Debian\home\koray\code\verilog\gowin\seq_light_test\src\seq_light_test.cst
Timing Constraint File---
Tool VersionV1.9.9.03 Education (64-bit)
Part NumberGW2A-LV18PG256C8/I7
DeviceGW2A-18
Device VersionC
Created TimeSun Jul 7 15:45:18 2024 -
Legal AnnouncementCopyright (C)2014-2024 Gowin Semiconductor Corporation. All rights reserved.
-

Timing Summaries

-

STA Tool Run Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Setup Delay ModelSlow 0.95V 85C C8/I7
Hold Delay ModelFast 1.05V 0C C8/I7
Numbers of Paths Analyzed82
Numbers of Endpoints Analyzed81
Numbers of Falling Endpoints0
Numbers of Setup Violated Endpoints0
Numbers of Hold Violated Endpoints1
-

Clock Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Clock NameTypePeriodFrequency(MHz)RiseFallSourceMasterObjects
clockBase10.000100.000 -0.0005.000clock_ibuf/I
newclkBase10.000100.000 -0.0005.000newclk_s1/Q
-

Max Frequency Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - -
NO.Clock NameConstraintActual FmaxLogic LevelEntity
1clock100.000(MHz)306.038(MHz)4TOP
2newclk100.000(MHz)328.985(MHz)2TOP
-

Total Negative Slack Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Clock NameAnalysis TypeEndpoints TNSNumber of Endpoints
clockSetup0.0000
clockHold0.0000
newclkSetup0.0000
newclkHold0.0000
-

Timing Details

-

Path Slacks Table:

-

Setup Paths Table

-

Report Command:report_timing -setup -max_paths 25 -max_common_paths 1

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Path NumberPath SlackFrom NodeTo NodeFrom ClockTo ClockRelationClock SkewData Delay
16.732clkcnt_26_s0/Qclkcnt_24_s0/RESETclock:[R]clock:[R]10.0000.0003.233
26.732clkcnt_26_s0/Qclkcnt_25_s0/RESETclock:[R]clock:[R]10.0000.0003.233
36.732clkcnt_26_s0/Qclkcnt_26_s0/RESETclock:[R]clock:[R]10.0000.0003.233
46.732clkcnt_26_s0/Qclkcnt_27_s0/RESETclock:[R]clock:[R]10.0000.0003.233
56.732clkcnt_26_s0/Qclkcnt_28_s0/RESETclock:[R]clock:[R]10.0000.0003.233
66.732clkcnt_26_s0/Qclkcnt_29_s0/RESETclock:[R]clock:[R]10.0000.0003.233
76.740clkcnt_26_s0/Qclkcnt_31_s0/RESETclock:[R]clock:[R]10.0000.0003.225
86.740clkcnt_26_s0/Qclkcnt_30_s0/RESETclock:[R]clock:[R]10.0000.0003.225
96.923clkcnt_26_s0/Qclkcnt_12_s0/RESETclock:[R]clock:[R]10.0000.0003.042
106.923clkcnt_26_s0/Qclkcnt_13_s0/RESETclock:[R]clock:[R]10.0000.0003.042
116.923clkcnt_26_s0/Qclkcnt_14_s0/RESETclock:[R]clock:[R]10.0000.0003.042
126.923clkcnt_26_s0/Qclkcnt_15_s0/RESETclock:[R]clock:[R]10.0000.0003.042
136.923clkcnt_26_s0/Qclkcnt_16_s0/RESETclock:[R]clock:[R]10.0000.0003.042
146.923clkcnt_26_s0/Qclkcnt_17_s0/RESETclock:[R]clock:[R]10.0000.0003.042
156.923clkcnt_26_s0/Qclkcnt_18_s0/RESETclock:[R]clock:[R]10.0000.0003.042
166.923clkcnt_26_s0/Qclkcnt_19_s0/RESETclock:[R]clock:[R]10.0000.0003.042
176.923clkcnt_26_s0/Qclkcnt_20_s0/RESETclock:[R]clock:[R]10.0000.0003.042
186.923clkcnt_26_s0/Qclkcnt_21_s0/RESETclock:[R]clock:[R]10.0000.0003.042
196.923clkcnt_26_s0/Qclkcnt_22_s0/RESETclock:[R]clock:[R]10.0000.0003.042
206.923clkcnt_26_s0/Qclkcnt_23_s0/RESETclock:[R]clock:[R]10.0000.0003.042
216.927clkcnt_26_s0/Qclkcnt_1_s0/RESETclock:[R]clock:[R]10.0000.0003.038
226.927clkcnt_26_s0/Qclkcnt_2_s0/RESETclock:[R]clock:[R]10.0000.0003.038
236.927clkcnt_26_s0/Qclkcnt_3_s0/RESETclock:[R]clock:[R]10.0000.0003.038
246.927clkcnt_26_s0/Qclkcnt_4_s0/RESETclock:[R]clock:[R]10.0000.0003.038
256.927clkcnt_26_s0/Qclkcnt_5_s0/RESETclock:[R]clock:[R]10.0000.0003.038
-

Hold Paths Table

-

Report Command:report_timing -hold -max_paths 25 -max_common_paths 1

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Path NumberPath SlackFrom NodeTo NodeFrom ClockTo ClockRelationClock SkewData Delay
1-4.449n72_s2/I0newclk_s1/Dnewclk:[R]clock:[R]0.000-4.6380.234
20.425clkcnt_2_s0/Qclkcnt_2_s0/Dclock:[R]clock:[R]0.0000.0000.436
30.425clkcnt_6_s0/Qclkcnt_6_s0/Dclock:[R]clock:[R]0.0000.0000.436
40.425clkcnt_8_s0/Qclkcnt_8_s0/Dclock:[R]clock:[R]0.0000.0000.436
50.425clkcnt_14_s0/Qclkcnt_14_s0/Dclock:[R]clock:[R]0.0000.0000.436
60.425clkcnt_20_s0/Qclkcnt_20_s0/Dclock:[R]clock:[R]0.0000.0000.436
70.425clkcnt_24_s0/Qclkcnt_24_s0/Dclock:[R]clock:[R]0.0000.0000.436
80.425clkcnt_26_s0/Qclkcnt_26_s0/Dclock:[R]clock:[R]0.0000.0000.436
90.425clkcnt_30_s0/Qclkcnt_30_s0/Dclock:[R]clock:[R]0.0000.0000.436
100.425fsm_2_s0/Qfsm_2_s0/Dnewclk:[R]newclk:[R]0.0000.0000.436
110.427clkcnt_0_s0/Qclkcnt_0_s0/Dclock:[R]clock:[R]0.0000.0000.438
120.427clkcnt_12_s0/Qclkcnt_12_s0/Dclock:[R]clock:[R]0.0000.0000.438
130.427clkcnt_18_s0/Qclkcnt_18_s0/Dclock:[R]clock:[R]0.0000.0000.438
140.542clkcnt_31_s0/Qclkcnt_31_s0/Dclock:[R]clock:[R]0.0000.0000.553
150.542clkcnt_11_s0/Qclkcnt_11_s0/Dclock:[R]clock:[R]0.0000.0000.553
160.542clkcnt_23_s0/Qclkcnt_23_s0/Dclock:[R]clock:[R]0.0000.0000.553
170.546clkcnt_3_s0/Qclkcnt_3_s0/Dclock:[R]clock:[R]0.0000.0000.557
180.546clkcnt_4_s0/Qclkcnt_4_s0/Dclock:[R]clock:[R]0.0000.0000.557
190.546clkcnt_9_s0/Qclkcnt_9_s0/Dclock:[R]clock:[R]0.0000.0000.557
200.546clkcnt_16_s0/Qclkcnt_16_s0/Dclock:[R]clock:[R]0.0000.0000.557
210.546clkcnt_21_s0/Qclkcnt_21_s0/Dclock:[R]clock:[R]0.0000.0000.557
220.546clkcnt_22_s0/Qclkcnt_22_s0/Dclock:[R]clock:[R]0.0000.0000.557
230.546clkcnt_27_s0/Qclkcnt_27_s0/Dclock:[R]clock:[R]0.0000.0000.557
240.546clkcnt_28_s0/Qclkcnt_28_s0/Dclock:[R]clock:[R]0.0000.0000.557
250.546clkcnt_29_s0/Qclkcnt_29_s0/Dclock:[R]clock:[R]0.0000.0000.557
-

Recovery Paths Table

-

Report Command:report_timing -recovery -max_paths 25 -max_common_paths 1

-

Nothing to report!

-

Removal Paths Table

-

Report Command:report_timing -removal -max_paths 25 -max_common_paths 1

-

Nothing to report!

-

Minimum Pulse Width Table:

- - - - - - - - - - -

Report Command:report_min_pulse_width -nworst 10 -detail

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NumberSlackActual WidthRequired WidthTypeClockObjects
11.1522.1521.000High Pulse Widthclockclkcnt_30_s0
21.1522.1521.000High Pulse Widthclockclkcnt_29_s0
31.1522.1521.000High Pulse Widthclockclkcnt_27_s0
41.1522.1521.000High Pulse Widthclockclkcnt_23_s0
51.1522.1521.000High Pulse Widthclockclkcnt_15_s0
61.1522.1521.000High Pulse Widthclockclkcnt_31_s0
71.1522.1521.000High Pulse Widthclockclkcnt_0_s0
81.1522.1521.000High Pulse Widthclockclkcnt_16_s0
91.1522.1521.000High Pulse Widthclockclkcnt_1_s0
101.1522.1521.000High Pulse Widthclockclkcnt_2_s0
-

Timing Report By Analysis Type:

-

Setup Analysis Report

-

Report Command:report_timing -setup -max_paths 25 -max_common_paths 1

-

Path1

-

Path Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Slack6.732
Data Arrival Time9.734
Data Required Time16.466
Fromclkcnt_26_s0
Toclkcnt_24_s0
Launch Clkclock:[R]
Latch Clkclock:[R]
-

Data Arrival Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
4.2304.230tINSRR33IOT27[A]clock_ibuf/O
6.5012.271tNETRR1R26C31[1][A]clkcnt_26_s0/CLK
6.7330.232tC2QRF2R26C31[1][A]clkcnt_26_s0/Q
6.8900.156tNETFF1R26C31[3][B]n38_s108/I1
7.4600.570tINSFR1R26C31[3][B]n38_s108/F
7.6320.172tNETRR1R26C30[3][B]n38_s100/I3
8.1870.555tINSRF1R26C30[3][B]n38_s100/F
8.6000.413tNETFF1R27C28[0][B]n38_s96/I3
9.1700.570tINSFR33R27C28[0][B]n38_s96/F
9.7340.563tNETRR1R26C31[0][A]clkcnt_24_s0/RESET
-

Data Required Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
10.00010.000active clock edge time
10.0000.000clock
10.0000.000tCLRR1IOT27[A]clock_ibuf/I
14.2304.230tINSRR33IOT27[A]clock_ibuf/O
16.5012.271tNETRR1R26C31[0][A]clkcnt_24_s0/CLK
16.466-0.035tSu1R26C31[0][A]clkcnt_24_s0
-

Path Statistics:

- - - - - - - - - - - - - - - - - - - - - - - - - -
Clock Skew0.000
Setup Relationship 10.000
Logic Level4
Arrival Clock Path Delaycell: 4.230, 65.063%; route: 2.271, 34.937%
Arrival Data Path Delaycell: 1.695, 52.435%; route: 1.306, 40.388%; tC2Q: 0.232, 7.177%
Required Clock Path Delaycell: 4.230, 65.063%; route: 2.271, 34.937%
-

Path2

-

Path Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Slack6.732
Data Arrival Time9.734
Data Required Time16.466
Fromclkcnt_26_s0
Toclkcnt_25_s0
Launch Clkclock:[R]
Latch Clkclock:[R]
-

Data Arrival Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
4.2304.230tINSRR33IOT27[A]clock_ibuf/O
6.5012.271tNETRR1R26C31[1][A]clkcnt_26_s0/CLK
6.7330.232tC2QRF2R26C31[1][A]clkcnt_26_s0/Q
6.8900.156tNETFF1R26C31[3][B]n38_s108/I1
7.4600.570tINSFR1R26C31[3][B]n38_s108/F
7.6320.172tNETRR1R26C30[3][B]n38_s100/I3
8.1870.555tINSRF1R26C30[3][B]n38_s100/F
8.6000.413tNETFF1R27C28[0][B]n38_s96/I3
9.1700.570tINSFR33R27C28[0][B]n38_s96/F
9.7340.563tNETRR1R26C31[0][B]clkcnt_25_s0/RESET
-

Data Required Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
10.00010.000active clock edge time
10.0000.000clock
10.0000.000tCLRR1IOT27[A]clock_ibuf/I
14.2304.230tINSRR33IOT27[A]clock_ibuf/O
16.5012.271tNETRR1R26C31[0][B]clkcnt_25_s0/CLK
16.466-0.035tSu1R26C31[0][B]clkcnt_25_s0
-

Path Statistics:

- - - - - - - - - - - - - - - - - - - - - - - - - -
Clock Skew0.000
Setup Relationship 10.000
Logic Level4
Arrival Clock Path Delaycell: 4.230, 65.063%; route: 2.271, 34.937%
Arrival Data Path Delaycell: 1.695, 52.435%; route: 1.306, 40.388%; tC2Q: 0.232, 7.177%
Required Clock Path Delaycell: 4.230, 65.063%; route: 2.271, 34.937%
-

Path3

-

Path Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Slack6.732
Data Arrival Time9.734
Data Required Time16.466
Fromclkcnt_26_s0
Toclkcnt_26_s0
Launch Clkclock:[R]
Latch Clkclock:[R]
-

Data Arrival Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
4.2304.230tINSRR33IOT27[A]clock_ibuf/O
6.5012.271tNETRR1R26C31[1][A]clkcnt_26_s0/CLK
6.7330.232tC2QRF2R26C31[1][A]clkcnt_26_s0/Q
6.8900.156tNETFF1R26C31[3][B]n38_s108/I1
7.4600.570tINSFR1R26C31[3][B]n38_s108/F
7.6320.172tNETRR1R26C30[3][B]n38_s100/I3
8.1870.555tINSRF1R26C30[3][B]n38_s100/F
8.6000.413tNETFF1R27C28[0][B]n38_s96/I3
9.1700.570tINSFR33R27C28[0][B]n38_s96/F
9.7340.563tNETRR1R26C31[1][A]clkcnt_26_s0/RESET
-

Data Required Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
10.00010.000active clock edge time
10.0000.000clock
10.0000.000tCLRR1IOT27[A]clock_ibuf/I
14.2304.230tINSRR33IOT27[A]clock_ibuf/O
16.5012.271tNETRR1R26C31[1][A]clkcnt_26_s0/CLK
16.466-0.035tSu1R26C31[1][A]clkcnt_26_s0
-

Path Statistics:

- - - - - - - - - - - - - - - - - - - - - - - - - -
Clock Skew0.000
Setup Relationship 10.000
Logic Level4
Arrival Clock Path Delaycell: 4.230, 65.063%; route: 2.271, 34.937%
Arrival Data Path Delaycell: 1.695, 52.435%; route: 1.306, 40.388%; tC2Q: 0.232, 7.177%
Required Clock Path Delaycell: 4.230, 65.063%; route: 2.271, 34.937%
-

Path4

-

Path Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Slack6.732
Data Arrival Time9.734
Data Required Time16.466
Fromclkcnt_26_s0
Toclkcnt_27_s0
Launch Clkclock:[R]
Latch Clkclock:[R]
-

Data Arrival Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
4.2304.230tINSRR33IOT27[A]clock_ibuf/O
6.5012.271tNETRR1R26C31[1][A]clkcnt_26_s0/CLK
6.7330.232tC2QRF2R26C31[1][A]clkcnt_26_s0/Q
6.8900.156tNETFF1R26C31[3][B]n38_s108/I1
7.4600.570tINSFR1R26C31[3][B]n38_s108/F
7.6320.172tNETRR1R26C30[3][B]n38_s100/I3
8.1870.555tINSRF1R26C30[3][B]n38_s100/F
8.6000.413tNETFF1R27C28[0][B]n38_s96/I3
9.1700.570tINSFR33R27C28[0][B]n38_s96/F
9.7340.563tNETRR1R26C31[1][B]clkcnt_27_s0/RESET
-

Data Required Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
10.00010.000active clock edge time
10.0000.000clock
10.0000.000tCLRR1IOT27[A]clock_ibuf/I
14.2304.230tINSRR33IOT27[A]clock_ibuf/O
16.5012.271tNETRR1R26C31[1][B]clkcnt_27_s0/CLK
16.466-0.035tSu1R26C31[1][B]clkcnt_27_s0
-

Path Statistics:

- - - - - - - - - - - - - - - - - - - - - - - - - -
Clock Skew0.000
Setup Relationship 10.000
Logic Level4
Arrival Clock Path Delaycell: 4.230, 65.063%; route: 2.271, 34.937%
Arrival Data Path Delaycell: 1.695, 52.435%; route: 1.306, 40.388%; tC2Q: 0.232, 7.177%
Required Clock Path Delaycell: 4.230, 65.063%; route: 2.271, 34.937%
-

Path5

-

Path Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Slack6.732
Data Arrival Time9.734
Data Required Time16.466
Fromclkcnt_26_s0
Toclkcnt_28_s0
Launch Clkclock:[R]
Latch Clkclock:[R]
-

Data Arrival Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
4.2304.230tINSRR33IOT27[A]clock_ibuf/O
6.5012.271tNETRR1R26C31[1][A]clkcnt_26_s0/CLK
6.7330.232tC2QRF2R26C31[1][A]clkcnt_26_s0/Q
6.8900.156tNETFF1R26C31[3][B]n38_s108/I1
7.4600.570tINSFR1R26C31[3][B]n38_s108/F
7.6320.172tNETRR1R26C30[3][B]n38_s100/I3
8.1870.555tINSRF1R26C30[3][B]n38_s100/F
8.6000.413tNETFF1R27C28[0][B]n38_s96/I3
9.1700.570tINSFR33R27C28[0][B]n38_s96/F
9.7340.563tNETRR1R26C31[2][A]clkcnt_28_s0/RESET
-

Data Required Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
10.00010.000active clock edge time
10.0000.000clock
10.0000.000tCLRR1IOT27[A]clock_ibuf/I
14.2304.230tINSRR33IOT27[A]clock_ibuf/O
16.5012.271tNETRR1R26C31[2][A]clkcnt_28_s0/CLK
16.466-0.035tSu1R26C31[2][A]clkcnt_28_s0
-

Path Statistics:

- - - - - - - - - - - - - - - - - - - - - - - - - -
Clock Skew0.000
Setup Relationship 10.000
Logic Level4
Arrival Clock Path Delaycell: 4.230, 65.063%; route: 2.271, 34.937%
Arrival Data Path Delaycell: 1.695, 52.435%; route: 1.306, 40.388%; tC2Q: 0.232, 7.177%
Required Clock Path Delaycell: 4.230, 65.063%; route: 2.271, 34.937%
-

Path6

-

Path Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Slack6.732
Data Arrival Time9.734
Data Required Time16.466
Fromclkcnt_26_s0
Toclkcnt_29_s0
Launch Clkclock:[R]
Latch Clkclock:[R]
-

Data Arrival Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
4.2304.230tINSRR33IOT27[A]clock_ibuf/O
6.5012.271tNETRR1R26C31[1][A]clkcnt_26_s0/CLK
6.7330.232tC2QRF2R26C31[1][A]clkcnt_26_s0/Q
6.8900.156tNETFF1R26C31[3][B]n38_s108/I1
7.4600.570tINSFR1R26C31[3][B]n38_s108/F
7.6320.172tNETRR1R26C30[3][B]n38_s100/I3
8.1870.555tINSRF1R26C30[3][B]n38_s100/F
8.6000.413tNETFF1R27C28[0][B]n38_s96/I3
9.1700.570tINSFR33R27C28[0][B]n38_s96/F
9.7340.563tNETRR1R26C31[2][B]clkcnt_29_s0/RESET
-

Data Required Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
10.00010.000active clock edge time
10.0000.000clock
10.0000.000tCLRR1IOT27[A]clock_ibuf/I
14.2304.230tINSRR33IOT27[A]clock_ibuf/O
16.5012.271tNETRR1R26C31[2][B]clkcnt_29_s0/CLK
16.466-0.035tSu1R26C31[2][B]clkcnt_29_s0
-

Path Statistics:

- - - - - - - - - - - - - - - - - - - - - - - - - -
Clock Skew0.000
Setup Relationship 10.000
Logic Level4
Arrival Clock Path Delaycell: 4.230, 65.063%; route: 2.271, 34.937%
Arrival Data Path Delaycell: 1.695, 52.435%; route: 1.306, 40.388%; tC2Q: 0.232, 7.177%
Required Clock Path Delaycell: 4.230, 65.063%; route: 2.271, 34.937%
-

Path7

-

Path Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Slack6.740
Data Arrival Time9.726
Data Required Time16.466
Fromclkcnt_26_s0
Toclkcnt_31_s0
Launch Clkclock:[R]
Latch Clkclock:[R]
-

Data Arrival Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
4.2304.230tINSRR33IOT27[A]clock_ibuf/O
6.5012.271tNETRR1R26C31[1][A]clkcnt_26_s0/CLK
6.7330.232tC2QRF2R26C31[1][A]clkcnt_26_s0/Q
6.8900.156tNETFF1R26C31[3][B]n38_s108/I1
7.4600.570tINSFR1R26C31[3][B]n38_s108/F
7.6320.172tNETRR1R26C30[3][B]n38_s100/I3
8.1870.555tINSRF1R26C30[3][B]n38_s100/F
8.6000.413tNETFF1R27C28[0][B]n38_s96/I3
9.1700.570tINSFR33R27C28[0][B]n38_s96/F
9.7260.556tNETRR1R26C32[0][B]clkcnt_31_s0/RESET
-

Data Required Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
10.00010.000active clock edge time
10.0000.000clock
10.0000.000tCLRR1IOT27[A]clock_ibuf/I
14.2304.230tINSRR33IOT27[A]clock_ibuf/O
16.5012.271tNETRR1R26C32[0][B]clkcnt_31_s0/CLK
16.466-0.035tSu1R26C32[0][B]clkcnt_31_s0
-

Path Statistics:

- - - - - - - - - - - - - - - - - - - - - - - - - -
Clock Skew0.000
Setup Relationship 10.000
Logic Level4
Arrival Clock Path Delaycell: 4.230, 65.063%; route: 2.271, 34.937%
Arrival Data Path Delaycell: 1.695, 52.554%; route: 1.298, 40.252%; tC2Q: 0.232, 7.193%
Required Clock Path Delaycell: 4.230, 65.063%; route: 2.271, 34.937%
-

Path8

-

Path Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Slack6.740
Data Arrival Time9.726
Data Required Time16.466
Fromclkcnt_26_s0
Toclkcnt_30_s0
Launch Clkclock:[R]
Latch Clkclock:[R]
-

Data Arrival Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
4.2304.230tINSRR33IOT27[A]clock_ibuf/O
6.5012.271tNETRR1R26C31[1][A]clkcnt_26_s0/CLK
6.7330.232tC2QRF2R26C31[1][A]clkcnt_26_s0/Q
6.8900.156tNETFF1R26C31[3][B]n38_s108/I1
7.4600.570tINSFR1R26C31[3][B]n38_s108/F
7.6320.172tNETRR1R26C30[3][B]n38_s100/I3
8.1870.555tINSRF1R26C30[3][B]n38_s100/F
8.6000.413tNETFF1R27C28[0][B]n38_s96/I3
9.1700.570tINSFR33R27C28[0][B]n38_s96/F
9.7260.556tNETRR1R26C32[0][A]clkcnt_30_s0/RESET
-

Data Required Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
10.00010.000active clock edge time
10.0000.000clock
10.0000.000tCLRR1IOT27[A]clock_ibuf/I
14.2304.230tINSRR33IOT27[A]clock_ibuf/O
16.5012.271tNETRR1R26C32[0][A]clkcnt_30_s0/CLK
16.466-0.035tSu1R26C32[0][A]clkcnt_30_s0
-

Path Statistics:

- - - - - - - - - - - - - - - - - - - - - - - - - -
Clock Skew0.000
Setup Relationship 10.000
Logic Level4
Arrival Clock Path Delaycell: 4.230, 65.063%; route: 2.271, 34.937%
Arrival Data Path Delaycell: 1.695, 52.554%; route: 1.298, 40.252%; tC2Q: 0.232, 7.193%
Required Clock Path Delaycell: 4.230, 65.063%; route: 2.271, 34.937%
-

Path9

-

Path Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Slack6.923
Data Arrival Time9.543
Data Required Time16.466
Fromclkcnt_26_s0
Toclkcnt_12_s0
Launch Clkclock:[R]
Latch Clkclock:[R]
-

Data Arrival Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
4.2304.230tINSRR33IOT27[A]clock_ibuf/O
6.5012.271tNETRR1R26C31[1][A]clkcnt_26_s0/CLK
6.7330.232tC2QRF2R26C31[1][A]clkcnt_26_s0/Q
6.8900.156tNETFF1R26C31[3][B]n38_s108/I1
7.4600.570tINSFR1R26C31[3][B]n38_s108/F
7.6320.172tNETRR1R26C30[3][B]n38_s100/I3
8.1870.555tINSRF1R26C30[3][B]n38_s100/F
8.6000.413tNETFF1R27C28[0][B]n38_s96/I3
9.1700.570tINSFR33R27C28[0][B]n38_s96/F
9.5430.373tNETRR1R26C29[0][A]clkcnt_12_s0/RESET
-

Data Required Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
10.00010.000active clock edge time
10.0000.000clock
10.0000.000tCLRR1IOT27[A]clock_ibuf/I
14.2304.230tINSRR33IOT27[A]clock_ibuf/O
16.5012.271tNETRR1R26C29[0][A]clkcnt_12_s0/CLK
16.466-0.035tSu1R26C29[0][A]clkcnt_12_s0
-

Path Statistics:

- - - - - - - - - - - - - - - - - - - - - - - - - -
Clock Skew0.000
Setup Relationship 10.000
Logic Level4
Arrival Clock Path Delaycell: 4.230, 65.063%; route: 2.271, 34.937%
Arrival Data Path Delaycell: 1.695, 55.728%; route: 1.115, 36.645%; tC2Q: 0.232, 7.628%
Required Clock Path Delaycell: 4.230, 65.063%; route: 2.271, 34.937%
-

Path10

-

Path Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Slack6.923
Data Arrival Time9.543
Data Required Time16.466
Fromclkcnt_26_s0
Toclkcnt_13_s0
Launch Clkclock:[R]
Latch Clkclock:[R]
-

Data Arrival Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
4.2304.230tINSRR33IOT27[A]clock_ibuf/O
6.5012.271tNETRR1R26C31[1][A]clkcnt_26_s0/CLK
6.7330.232tC2QRF2R26C31[1][A]clkcnt_26_s0/Q
6.8900.156tNETFF1R26C31[3][B]n38_s108/I1
7.4600.570tINSFR1R26C31[3][B]n38_s108/F
7.6320.172tNETRR1R26C30[3][B]n38_s100/I3
8.1870.555tINSRF1R26C30[3][B]n38_s100/F
8.6000.413tNETFF1R27C28[0][B]n38_s96/I3
9.1700.570tINSFR33R27C28[0][B]n38_s96/F
9.5430.373tNETRR1R26C29[0][B]clkcnt_13_s0/RESET
-

Data Required Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
10.00010.000active clock edge time
10.0000.000clock
10.0000.000tCLRR1IOT27[A]clock_ibuf/I
14.2304.230tINSRR33IOT27[A]clock_ibuf/O
16.5012.271tNETRR1R26C29[0][B]clkcnt_13_s0/CLK
16.466-0.035tSu1R26C29[0][B]clkcnt_13_s0
-

Path Statistics:

- - - - - - - - - - - - - - - - - - - - - - - - - -
Clock Skew0.000
Setup Relationship 10.000
Logic Level4
Arrival Clock Path Delaycell: 4.230, 65.063%; route: 2.271, 34.937%
Arrival Data Path Delaycell: 1.695, 55.728%; route: 1.115, 36.645%; tC2Q: 0.232, 7.628%
Required Clock Path Delaycell: 4.230, 65.063%; route: 2.271, 34.937%
-

Path11

-

Path Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Slack6.923
Data Arrival Time9.543
Data Required Time16.466
Fromclkcnt_26_s0
Toclkcnt_14_s0
Launch Clkclock:[R]
Latch Clkclock:[R]
-

Data Arrival Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
4.2304.230tINSRR33IOT27[A]clock_ibuf/O
6.5012.271tNETRR1R26C31[1][A]clkcnt_26_s0/CLK
6.7330.232tC2QRF2R26C31[1][A]clkcnt_26_s0/Q
6.8900.156tNETFF1R26C31[3][B]n38_s108/I1
7.4600.570tINSFR1R26C31[3][B]n38_s108/F
7.6320.172tNETRR1R26C30[3][B]n38_s100/I3
8.1870.555tINSRF1R26C30[3][B]n38_s100/F
8.6000.413tNETFF1R27C28[0][B]n38_s96/I3
9.1700.570tINSFR33R27C28[0][B]n38_s96/F
9.5430.373tNETRR1R26C29[1][A]clkcnt_14_s0/RESET
-

Data Required Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
10.00010.000active clock edge time
10.0000.000clock
10.0000.000tCLRR1IOT27[A]clock_ibuf/I
14.2304.230tINSRR33IOT27[A]clock_ibuf/O
16.5012.271tNETRR1R26C29[1][A]clkcnt_14_s0/CLK
16.466-0.035tSu1R26C29[1][A]clkcnt_14_s0
-

Path Statistics:

- - - - - - - - - - - - - - - - - - - - - - - - - -
Clock Skew0.000
Setup Relationship 10.000
Logic Level4
Arrival Clock Path Delaycell: 4.230, 65.063%; route: 2.271, 34.937%
Arrival Data Path Delaycell: 1.695, 55.728%; route: 1.115, 36.645%; tC2Q: 0.232, 7.628%
Required Clock Path Delaycell: 4.230, 65.063%; route: 2.271, 34.937%
-

Path12

-

Path Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Slack6.923
Data Arrival Time9.543
Data Required Time16.466
Fromclkcnt_26_s0
Toclkcnt_15_s0
Launch Clkclock:[R]
Latch Clkclock:[R]
-

Data Arrival Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
4.2304.230tINSRR33IOT27[A]clock_ibuf/O
6.5012.271tNETRR1R26C31[1][A]clkcnt_26_s0/CLK
6.7330.232tC2QRF2R26C31[1][A]clkcnt_26_s0/Q
6.8900.156tNETFF1R26C31[3][B]n38_s108/I1
7.4600.570tINSFR1R26C31[3][B]n38_s108/F
7.6320.172tNETRR1R26C30[3][B]n38_s100/I3
8.1870.555tINSRF1R26C30[3][B]n38_s100/F
8.6000.413tNETFF1R27C28[0][B]n38_s96/I3
9.1700.570tINSFR33R27C28[0][B]n38_s96/F
9.5430.373tNETRR1R26C29[1][B]clkcnt_15_s0/RESET
-

Data Required Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
10.00010.000active clock edge time
10.0000.000clock
10.0000.000tCLRR1IOT27[A]clock_ibuf/I
14.2304.230tINSRR33IOT27[A]clock_ibuf/O
16.5012.271tNETRR1R26C29[1][B]clkcnt_15_s0/CLK
16.466-0.035tSu1R26C29[1][B]clkcnt_15_s0
-

Path Statistics:

- - - - - - - - - - - - - - - - - - - - - - - - - -
Clock Skew0.000
Setup Relationship 10.000
Logic Level4
Arrival Clock Path Delaycell: 4.230, 65.063%; route: 2.271, 34.937%
Arrival Data Path Delaycell: 1.695, 55.728%; route: 1.115, 36.645%; tC2Q: 0.232, 7.628%
Required Clock Path Delaycell: 4.230, 65.063%; route: 2.271, 34.937%
-

Path13

-

Path Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Slack6.923
Data Arrival Time9.543
Data Required Time16.466
Fromclkcnt_26_s0
Toclkcnt_16_s0
Launch Clkclock:[R]
Latch Clkclock:[R]
-

Data Arrival Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
4.2304.230tINSRR33IOT27[A]clock_ibuf/O
6.5012.271tNETRR1R26C31[1][A]clkcnt_26_s0/CLK
6.7330.232tC2QRF2R26C31[1][A]clkcnt_26_s0/Q
6.8900.156tNETFF1R26C31[3][B]n38_s108/I1
7.4600.570tINSFR1R26C31[3][B]n38_s108/F
7.6320.172tNETRR1R26C30[3][B]n38_s100/I3
8.1870.555tINSRF1R26C30[3][B]n38_s100/F
8.6000.413tNETFF1R27C28[0][B]n38_s96/I3
9.1700.570tINSFR33R27C28[0][B]n38_s96/F
9.5430.373tNETRR1R26C29[2][A]clkcnt_16_s0/RESET
-

Data Required Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
10.00010.000active clock edge time
10.0000.000clock
10.0000.000tCLRR1IOT27[A]clock_ibuf/I
14.2304.230tINSRR33IOT27[A]clock_ibuf/O
16.5012.271tNETRR1R26C29[2][A]clkcnt_16_s0/CLK
16.466-0.035tSu1R26C29[2][A]clkcnt_16_s0
-

Path Statistics:

- - - - - - - - - - - - - - - - - - - - - - - - - -
Clock Skew0.000
Setup Relationship 10.000
Logic Level4
Arrival Clock Path Delaycell: 4.230, 65.063%; route: 2.271, 34.937%
Arrival Data Path Delaycell: 1.695, 55.728%; route: 1.115, 36.645%; tC2Q: 0.232, 7.628%
Required Clock Path Delaycell: 4.230, 65.063%; route: 2.271, 34.937%
-

Path14

-

Path Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Slack6.923
Data Arrival Time9.543
Data Required Time16.466
Fromclkcnt_26_s0
Toclkcnt_17_s0
Launch Clkclock:[R]
Latch Clkclock:[R]
-

Data Arrival Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
4.2304.230tINSRR33IOT27[A]clock_ibuf/O
6.5012.271tNETRR1R26C31[1][A]clkcnt_26_s0/CLK
6.7330.232tC2QRF2R26C31[1][A]clkcnt_26_s0/Q
6.8900.156tNETFF1R26C31[3][B]n38_s108/I1
7.4600.570tINSFR1R26C31[3][B]n38_s108/F
7.6320.172tNETRR1R26C30[3][B]n38_s100/I3
8.1870.555tINSRF1R26C30[3][B]n38_s100/F
8.6000.413tNETFF1R27C28[0][B]n38_s96/I3
9.1700.570tINSFR33R27C28[0][B]n38_s96/F
9.5430.373tNETRR1R26C29[2][B]clkcnt_17_s0/RESET
-

Data Required Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
10.00010.000active clock edge time
10.0000.000clock
10.0000.000tCLRR1IOT27[A]clock_ibuf/I
14.2304.230tINSRR33IOT27[A]clock_ibuf/O
16.5012.271tNETRR1R26C29[2][B]clkcnt_17_s0/CLK
16.466-0.035tSu1R26C29[2][B]clkcnt_17_s0
-

Path Statistics:

- - - - - - - - - - - - - - - - - - - - - - - - - -
Clock Skew0.000
Setup Relationship 10.000
Logic Level4
Arrival Clock Path Delaycell: 4.230, 65.063%; route: 2.271, 34.937%
Arrival Data Path Delaycell: 1.695, 55.728%; route: 1.115, 36.645%; tC2Q: 0.232, 7.628%
Required Clock Path Delaycell: 4.230, 65.063%; route: 2.271, 34.937%
-

Path15

-

Path Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Slack6.923
Data Arrival Time9.543
Data Required Time16.466
Fromclkcnt_26_s0
Toclkcnt_18_s0
Launch Clkclock:[R]
Latch Clkclock:[R]
-

Data Arrival Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
4.2304.230tINSRR33IOT27[A]clock_ibuf/O
6.5012.271tNETRR1R26C31[1][A]clkcnt_26_s0/CLK
6.7330.232tC2QRF2R26C31[1][A]clkcnt_26_s0/Q
6.8900.156tNETFF1R26C31[3][B]n38_s108/I1
7.4600.570tINSFR1R26C31[3][B]n38_s108/F
7.6320.172tNETRR1R26C30[3][B]n38_s100/I3
8.1870.555tINSRF1R26C30[3][B]n38_s100/F
8.6000.413tNETFF1R27C28[0][B]n38_s96/I3
9.1700.570tINSFR33R27C28[0][B]n38_s96/F
9.5430.373tNETRR1R26C30[0][A]clkcnt_18_s0/RESET
-

Data Required Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
10.00010.000active clock edge time
10.0000.000clock
10.0000.000tCLRR1IOT27[A]clock_ibuf/I
14.2304.230tINSRR33IOT27[A]clock_ibuf/O
16.5012.271tNETRR1R26C30[0][A]clkcnt_18_s0/CLK
16.466-0.035tSu1R26C30[0][A]clkcnt_18_s0
-

Path Statistics:

- - - - - - - - - - - - - - - - - - - - - - - - - -
Clock Skew0.000
Setup Relationship 10.000
Logic Level4
Arrival Clock Path Delaycell: 4.230, 65.063%; route: 2.271, 34.937%
Arrival Data Path Delaycell: 1.695, 55.728%; route: 1.115, 36.645%; tC2Q: 0.232, 7.628%
Required Clock Path Delaycell: 4.230, 65.063%; route: 2.271, 34.937%
-

Path16

-

Path Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Slack6.923
Data Arrival Time9.543
Data Required Time16.466
Fromclkcnt_26_s0
Toclkcnt_19_s0
Launch Clkclock:[R]
Latch Clkclock:[R]
-

Data Arrival Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
4.2304.230tINSRR33IOT27[A]clock_ibuf/O
6.5012.271tNETRR1R26C31[1][A]clkcnt_26_s0/CLK
6.7330.232tC2QRF2R26C31[1][A]clkcnt_26_s0/Q
6.8900.156tNETFF1R26C31[3][B]n38_s108/I1
7.4600.570tINSFR1R26C31[3][B]n38_s108/F
7.6320.172tNETRR1R26C30[3][B]n38_s100/I3
8.1870.555tINSRF1R26C30[3][B]n38_s100/F
8.6000.413tNETFF1R27C28[0][B]n38_s96/I3
9.1700.570tINSFR33R27C28[0][B]n38_s96/F
9.5430.373tNETRR1R26C30[0][B]clkcnt_19_s0/RESET
-

Data Required Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
10.00010.000active clock edge time
10.0000.000clock
10.0000.000tCLRR1IOT27[A]clock_ibuf/I
14.2304.230tINSRR33IOT27[A]clock_ibuf/O
16.5012.271tNETRR1R26C30[0][B]clkcnt_19_s0/CLK
16.466-0.035tSu1R26C30[0][B]clkcnt_19_s0
-

Path Statistics:

- - - - - - - - - - - - - - - - - - - - - - - - - -
Clock Skew0.000
Setup Relationship 10.000
Logic Level4
Arrival Clock Path Delaycell: 4.230, 65.063%; route: 2.271, 34.937%
Arrival Data Path Delaycell: 1.695, 55.728%; route: 1.115, 36.645%; tC2Q: 0.232, 7.628%
Required Clock Path Delaycell: 4.230, 65.063%; route: 2.271, 34.937%
-

Path17

-

Path Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Slack6.923
Data Arrival Time9.543
Data Required Time16.466
Fromclkcnt_26_s0
Toclkcnt_20_s0
Launch Clkclock:[R]
Latch Clkclock:[R]
-

Data Arrival Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
4.2304.230tINSRR33IOT27[A]clock_ibuf/O
6.5012.271tNETRR1R26C31[1][A]clkcnt_26_s0/CLK
6.7330.232tC2QRF2R26C31[1][A]clkcnt_26_s0/Q
6.8900.156tNETFF1R26C31[3][B]n38_s108/I1
7.4600.570tINSFR1R26C31[3][B]n38_s108/F
7.6320.172tNETRR1R26C30[3][B]n38_s100/I3
8.1870.555tINSRF1R26C30[3][B]n38_s100/F
8.6000.413tNETFF1R27C28[0][B]n38_s96/I3
9.1700.570tINSFR33R27C28[0][B]n38_s96/F
9.5430.373tNETRR1R26C30[1][A]clkcnt_20_s0/RESET
-

Data Required Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
10.00010.000active clock edge time
10.0000.000clock
10.0000.000tCLRR1IOT27[A]clock_ibuf/I
14.2304.230tINSRR33IOT27[A]clock_ibuf/O
16.5012.271tNETRR1R26C30[1][A]clkcnt_20_s0/CLK
16.466-0.035tSu1R26C30[1][A]clkcnt_20_s0
-

Path Statistics:

- - - - - - - - - - - - - - - - - - - - - - - - - -
Clock Skew0.000
Setup Relationship 10.000
Logic Level4
Arrival Clock Path Delaycell: 4.230, 65.063%; route: 2.271, 34.937%
Arrival Data Path Delaycell: 1.695, 55.728%; route: 1.115, 36.645%; tC2Q: 0.232, 7.628%
Required Clock Path Delaycell: 4.230, 65.063%; route: 2.271, 34.937%
-

Path18

-

Path Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Slack6.923
Data Arrival Time9.543
Data Required Time16.466
Fromclkcnt_26_s0
Toclkcnt_21_s0
Launch Clkclock:[R]
Latch Clkclock:[R]
-

Data Arrival Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
4.2304.230tINSRR33IOT27[A]clock_ibuf/O
6.5012.271tNETRR1R26C31[1][A]clkcnt_26_s0/CLK
6.7330.232tC2QRF2R26C31[1][A]clkcnt_26_s0/Q
6.8900.156tNETFF1R26C31[3][B]n38_s108/I1
7.4600.570tINSFR1R26C31[3][B]n38_s108/F
7.6320.172tNETRR1R26C30[3][B]n38_s100/I3
8.1870.555tINSRF1R26C30[3][B]n38_s100/F
8.6000.413tNETFF1R27C28[0][B]n38_s96/I3
9.1700.570tINSFR33R27C28[0][B]n38_s96/F
9.5430.373tNETRR1R26C30[1][B]clkcnt_21_s0/RESET
-

Data Required Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
10.00010.000active clock edge time
10.0000.000clock
10.0000.000tCLRR1IOT27[A]clock_ibuf/I
14.2304.230tINSRR33IOT27[A]clock_ibuf/O
16.5012.271tNETRR1R26C30[1][B]clkcnt_21_s0/CLK
16.466-0.035tSu1R26C30[1][B]clkcnt_21_s0
-

Path Statistics:

- - - - - - - - - - - - - - - - - - - - - - - - - -
Clock Skew0.000
Setup Relationship 10.000
Logic Level4
Arrival Clock Path Delaycell: 4.230, 65.063%; route: 2.271, 34.937%
Arrival Data Path Delaycell: 1.695, 55.728%; route: 1.115, 36.645%; tC2Q: 0.232, 7.628%
Required Clock Path Delaycell: 4.230, 65.063%; route: 2.271, 34.937%
-

Path19

-

Path Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Slack6.923
Data Arrival Time9.543
Data Required Time16.466
Fromclkcnt_26_s0
Toclkcnt_22_s0
Launch Clkclock:[R]
Latch Clkclock:[R]
-

Data Arrival Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
4.2304.230tINSRR33IOT27[A]clock_ibuf/O
6.5012.271tNETRR1R26C31[1][A]clkcnt_26_s0/CLK
6.7330.232tC2QRF2R26C31[1][A]clkcnt_26_s0/Q
6.8900.156tNETFF1R26C31[3][B]n38_s108/I1
7.4600.570tINSFR1R26C31[3][B]n38_s108/F
7.6320.172tNETRR1R26C30[3][B]n38_s100/I3
8.1870.555tINSRF1R26C30[3][B]n38_s100/F
8.6000.413tNETFF1R27C28[0][B]n38_s96/I3
9.1700.570tINSFR33R27C28[0][B]n38_s96/F
9.5430.373tNETRR1R26C30[2][A]clkcnt_22_s0/RESET
-

Data Required Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
10.00010.000active clock edge time
10.0000.000clock
10.0000.000tCLRR1IOT27[A]clock_ibuf/I
14.2304.230tINSRR33IOT27[A]clock_ibuf/O
16.5012.271tNETRR1R26C30[2][A]clkcnt_22_s0/CLK
16.466-0.035tSu1R26C30[2][A]clkcnt_22_s0
-

Path Statistics:

- - - - - - - - - - - - - - - - - - - - - - - - - -
Clock Skew0.000
Setup Relationship 10.000
Logic Level4
Arrival Clock Path Delaycell: 4.230, 65.063%; route: 2.271, 34.937%
Arrival Data Path Delaycell: 1.695, 55.728%; route: 1.115, 36.645%; tC2Q: 0.232, 7.628%
Required Clock Path Delaycell: 4.230, 65.063%; route: 2.271, 34.937%
-

Path20

-

Path Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Slack6.923
Data Arrival Time9.543
Data Required Time16.466
Fromclkcnt_26_s0
Toclkcnt_23_s0
Launch Clkclock:[R]
Latch Clkclock:[R]
-

Data Arrival Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
4.2304.230tINSRR33IOT27[A]clock_ibuf/O
6.5012.271tNETRR1R26C31[1][A]clkcnt_26_s0/CLK
6.7330.232tC2QRF2R26C31[1][A]clkcnt_26_s0/Q
6.8900.156tNETFF1R26C31[3][B]n38_s108/I1
7.4600.570tINSFR1R26C31[3][B]n38_s108/F
7.6320.172tNETRR1R26C30[3][B]n38_s100/I3
8.1870.555tINSRF1R26C30[3][B]n38_s100/F
8.6000.413tNETFF1R27C28[0][B]n38_s96/I3
9.1700.570tINSFR33R27C28[0][B]n38_s96/F
9.5430.373tNETRR1R26C30[2][B]clkcnt_23_s0/RESET
-

Data Required Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
10.00010.000active clock edge time
10.0000.000clock
10.0000.000tCLRR1IOT27[A]clock_ibuf/I
14.2304.230tINSRR33IOT27[A]clock_ibuf/O
16.5012.271tNETRR1R26C30[2][B]clkcnt_23_s0/CLK
16.466-0.035tSu1R26C30[2][B]clkcnt_23_s0
-

Path Statistics:

- - - - - - - - - - - - - - - - - - - - - - - - - -
Clock Skew0.000
Setup Relationship 10.000
Logic Level4
Arrival Clock Path Delaycell: 4.230, 65.063%; route: 2.271, 34.937%
Arrival Data Path Delaycell: 1.695, 55.728%; route: 1.115, 36.645%; tC2Q: 0.232, 7.628%
Required Clock Path Delaycell: 4.230, 65.063%; route: 2.271, 34.937%
-

Path21

-

Path Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Slack6.927
Data Arrival Time9.539
Data Required Time16.466
Fromclkcnt_26_s0
Toclkcnt_1_s0
Launch Clkclock:[R]
Latch Clkclock:[R]
-

Data Arrival Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
4.2304.230tINSRR33IOT27[A]clock_ibuf/O
6.5012.271tNETRR1R26C31[1][A]clkcnt_26_s0/CLK
6.7330.232tC2QRF2R26C31[1][A]clkcnt_26_s0/Q
6.8900.156tNETFF1R26C31[3][B]n38_s108/I1
7.4600.570tINSFR1R26C31[3][B]n38_s108/F
7.6320.172tNETRR1R26C30[3][B]n38_s100/I3
8.1870.555tINSRF1R26C30[3][B]n38_s100/F
8.6000.413tNETFF1R27C28[0][B]n38_s96/I3
9.1700.570tINSFR33R27C28[0][B]n38_s96/F
9.5390.369tNETRR1R26C27[0][B]clkcnt_1_s0/RESET
-

Data Required Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
10.00010.000active clock edge time
10.0000.000clock
10.0000.000tCLRR1IOT27[A]clock_ibuf/I
14.2304.230tINSRR33IOT27[A]clock_ibuf/O
16.5012.271tNETRR1R26C27[0][B]clkcnt_1_s0/CLK
16.466-0.035tSu1R26C27[0][B]clkcnt_1_s0
-

Path Statistics:

- - - - - - - - - - - - - - - - - - - - - - - - - -
Clock Skew0.000
Setup Relationship 10.000
Logic Level4
Arrival Clock Path Delaycell: 4.230, 65.063%; route: 2.271, 34.937%
Arrival Data Path Delaycell: 1.695, 55.795%; route: 1.111, 36.568%; tC2Q: 0.232, 7.637%
Required Clock Path Delaycell: 4.230, 65.063%; route: 2.271, 34.937%
-

Path22

-

Path Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Slack6.927
Data Arrival Time9.539
Data Required Time16.466
Fromclkcnt_26_s0
Toclkcnt_2_s0
Launch Clkclock:[R]
Latch Clkclock:[R]
-

Data Arrival Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
4.2304.230tINSRR33IOT27[A]clock_ibuf/O
6.5012.271tNETRR1R26C31[1][A]clkcnt_26_s0/CLK
6.7330.232tC2QRF2R26C31[1][A]clkcnt_26_s0/Q
6.8900.156tNETFF1R26C31[3][B]n38_s108/I1
7.4600.570tINSFR1R26C31[3][B]n38_s108/F
7.6320.172tNETRR1R26C30[3][B]n38_s100/I3
8.1870.555tINSRF1R26C30[3][B]n38_s100/F
8.6000.413tNETFF1R27C28[0][B]n38_s96/I3
9.1700.570tINSFR33R27C28[0][B]n38_s96/F
9.5390.369tNETRR1R26C27[1][A]clkcnt_2_s0/RESET
-

Data Required Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
10.00010.000active clock edge time
10.0000.000clock
10.0000.000tCLRR1IOT27[A]clock_ibuf/I
14.2304.230tINSRR33IOT27[A]clock_ibuf/O
16.5012.271tNETRR1R26C27[1][A]clkcnt_2_s0/CLK
16.466-0.035tSu1R26C27[1][A]clkcnt_2_s0
-

Path Statistics:

- - - - - - - - - - - - - - - - - - - - - - - - - -
Clock Skew0.000
Setup Relationship 10.000
Logic Level4
Arrival Clock Path Delaycell: 4.230, 65.063%; route: 2.271, 34.937%
Arrival Data Path Delaycell: 1.695, 55.795%; route: 1.111, 36.568%; tC2Q: 0.232, 7.637%
Required Clock Path Delaycell: 4.230, 65.063%; route: 2.271, 34.937%
-

Path23

-

Path Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Slack6.927
Data Arrival Time9.539
Data Required Time16.466
Fromclkcnt_26_s0
Toclkcnt_3_s0
Launch Clkclock:[R]
Latch Clkclock:[R]
-

Data Arrival Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
4.2304.230tINSRR33IOT27[A]clock_ibuf/O
6.5012.271tNETRR1R26C31[1][A]clkcnt_26_s0/CLK
6.7330.232tC2QRF2R26C31[1][A]clkcnt_26_s0/Q
6.8900.156tNETFF1R26C31[3][B]n38_s108/I1
7.4600.570tINSFR1R26C31[3][B]n38_s108/F
7.6320.172tNETRR1R26C30[3][B]n38_s100/I3
8.1870.555tINSRF1R26C30[3][B]n38_s100/F
8.6000.413tNETFF1R27C28[0][B]n38_s96/I3
9.1700.570tINSFR33R27C28[0][B]n38_s96/F
9.5390.369tNETRR1R26C27[1][B]clkcnt_3_s0/RESET
-

Data Required Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
10.00010.000active clock edge time
10.0000.000clock
10.0000.000tCLRR1IOT27[A]clock_ibuf/I
14.2304.230tINSRR33IOT27[A]clock_ibuf/O
16.5012.271tNETRR1R26C27[1][B]clkcnt_3_s0/CLK
16.466-0.035tSu1R26C27[1][B]clkcnt_3_s0
-

Path Statistics:

- - - - - - - - - - - - - - - - - - - - - - - - - -
Clock Skew0.000
Setup Relationship 10.000
Logic Level4
Arrival Clock Path Delaycell: 4.230, 65.063%; route: 2.271, 34.937%
Arrival Data Path Delaycell: 1.695, 55.795%; route: 1.111, 36.568%; tC2Q: 0.232, 7.637%
Required Clock Path Delaycell: 4.230, 65.063%; route: 2.271, 34.937%
-

Path24

-

Path Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Slack6.927
Data Arrival Time9.539
Data Required Time16.466
Fromclkcnt_26_s0
Toclkcnt_4_s0
Launch Clkclock:[R]
Latch Clkclock:[R]
-

Data Arrival Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
4.2304.230tINSRR33IOT27[A]clock_ibuf/O
6.5012.271tNETRR1R26C31[1][A]clkcnt_26_s0/CLK
6.7330.232tC2QRF2R26C31[1][A]clkcnt_26_s0/Q
6.8900.156tNETFF1R26C31[3][B]n38_s108/I1
7.4600.570tINSFR1R26C31[3][B]n38_s108/F
7.6320.172tNETRR1R26C30[3][B]n38_s100/I3
8.1870.555tINSRF1R26C30[3][B]n38_s100/F
8.6000.413tNETFF1R27C28[0][B]n38_s96/I3
9.1700.570tINSFR33R27C28[0][B]n38_s96/F
9.5390.369tNETRR1R26C27[2][A]clkcnt_4_s0/RESET
-

Data Required Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
10.00010.000active clock edge time
10.0000.000clock
10.0000.000tCLRR1IOT27[A]clock_ibuf/I
14.2304.230tINSRR33IOT27[A]clock_ibuf/O
16.5012.271tNETRR1R26C27[2][A]clkcnt_4_s0/CLK
16.466-0.035tSu1R26C27[2][A]clkcnt_4_s0
-

Path Statistics:

- - - - - - - - - - - - - - - - - - - - - - - - - -
Clock Skew0.000
Setup Relationship 10.000
Logic Level4
Arrival Clock Path Delaycell: 4.230, 65.063%; route: 2.271, 34.937%
Arrival Data Path Delaycell: 1.695, 55.795%; route: 1.111, 36.568%; tC2Q: 0.232, 7.637%
Required Clock Path Delaycell: 4.230, 65.063%; route: 2.271, 34.937%
-

Path25

-

Path Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Slack6.927
Data Arrival Time9.539
Data Required Time16.466
Fromclkcnt_26_s0
Toclkcnt_5_s0
Launch Clkclock:[R]
Latch Clkclock:[R]
-

Data Arrival Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
4.2304.230tINSRR33IOT27[A]clock_ibuf/O
6.5012.271tNETRR1R26C31[1][A]clkcnt_26_s0/CLK
6.7330.232tC2QRF2R26C31[1][A]clkcnt_26_s0/Q
6.8900.156tNETFF1R26C31[3][B]n38_s108/I1
7.4600.570tINSFR1R26C31[3][B]n38_s108/F
7.6320.172tNETRR1R26C30[3][B]n38_s100/I3
8.1870.555tINSRF1R26C30[3][B]n38_s100/F
8.6000.413tNETFF1R27C28[0][B]n38_s96/I3
9.1700.570tINSFR33R27C28[0][B]n38_s96/F
9.5390.369tNETRR1R26C27[2][B]clkcnt_5_s0/RESET
-

Data Required Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
10.00010.000active clock edge time
10.0000.000clock
10.0000.000tCLRR1IOT27[A]clock_ibuf/I
14.2304.230tINSRR33IOT27[A]clock_ibuf/O
16.5012.271tNETRR1R26C27[2][B]clkcnt_5_s0/CLK
16.466-0.035tSu1R26C27[2][B]clkcnt_5_s0
-

Path Statistics:

- - - - - - - - - - - - - - - - - - - - - - - - - -
Clock Skew0.000
Setup Relationship 10.000
Logic Level4
Arrival Clock Path Delaycell: 4.230, 65.063%; route: 2.271, 34.937%
Arrival Data Path Delaycell: 1.695, 55.795%; route: 1.111, 36.568%; tC2Q: 0.232, 7.637%
Required Clock Path Delaycell: 4.230, 65.063%; route: 2.271, 34.937%
-

Hold Analysis Report

-

Report Command:report_timing -hold -max_paths 25 -max_common_paths 1

-

Path1

-

Path Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Slack-4.449
Data Arrival Time0.234
Data Required Time4.684
Fromn72_s2
Tonewclk_s1
Launch Clknewclk:[R]
Latch Clkclock:[R]
-

Data Arrival Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000newclk
0.0000.000tCLRR8R29C28[0][A]newclk_s1/Q
0.0020.002tNETRR1R29C28[0][A]n72_s2/I0
0.2340.232tINSRF1R29C28[0][A]n72_s2/F
0.2340.000tNETFF1R29C28[0][A]newclk_s1/D
-

Data Required Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
3.1263.126tINSRR33IOT27[A]clock_ibuf/O
4.6381.511tNETRR1R29C28[0][A]newclk_s1/CLK
4.6730.035tUncnewclk_s1
4.6840.011tHld1R29C28[0][A]newclk_s1
-

Path Statistics:

- - - - - - - - - - - - - - - - - - - - - - - - - -
Clock Skew4.638
Hold Relationship 0.000
Logic Level2
Arrival Clock Path Delaycell: 0.000, 0.000%; route: 0.000, 0.000%
Arrival Data Path Delaycell: 0.232, 98.957%; route: 0.000, 0.000%; tC2Q: 0.002, 1.043%
Required Clock Path Delaycell: 3.126, 67.413%; route: 1.511, 32.587%
-

Path2

-

Path Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Slack0.425
Data Arrival Time5.074
Data Required Time4.649
Fromclkcnt_2_s0
Toclkcnt_2_s0
Launch Clkclock:[R]
Latch Clkclock:[R]
-

Data Arrival Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
3.1263.126tINSRR33IOT27[A]clock_ibuf/O
4.6381.511tNETRR1R26C27[1][A]clkcnt_2_s0/CLK
4.8400.202tC2QRR2R26C27[1][A]clkcnt_2_s0/Q
4.8420.002tNETRR2R26C27[1][A]n35_s/I1
5.0740.232tINSRF1R26C27[1][A]n35_s/SUM
5.0740.000tNETFF1R26C27[1][A]clkcnt_2_s0/D
-

Data Required Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
3.1263.126tINSRR33IOT27[A]clock_ibuf/O
4.6381.511tNETRR1R26C27[1][A]clkcnt_2_s0/CLK
4.6490.011tHld1R26C27[1][A]clkcnt_2_s0
-

Path Statistics:

- - - - - - - - - - - - - - - - - - - - - - - - - -
Clock Skew0.000
Hold Relationship 0.000
Logic Level2
Arrival Clock Path Delaycell: 3.126, 67.413%; route: 1.511, 32.587%
Arrival Data Path Delaycell: 0.232, 53.157%; route: 0.002, 0.560%; tC2Q: 0.202, 46.283%
Required Clock Path Delaycell: 3.126, 67.413%; route: 1.511, 32.587%
-

Path3

-

Path Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Slack0.425
Data Arrival Time5.074
Data Required Time4.649
Fromclkcnt_6_s0
Toclkcnt_6_s0
Launch Clkclock:[R]
Latch Clkclock:[R]
-

Data Arrival Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
3.1263.126tINSRR33IOT27[A]clock_ibuf/O
4.6381.511tNETRR1R26C28[0][A]clkcnt_6_s0/CLK
4.8400.202tC2QRR2R26C28[0][A]clkcnt_6_s0/Q
4.8420.002tNETRR2R26C28[0][A]n31_s/I1
5.0740.232tINSRF1R26C28[0][A]n31_s/SUM
5.0740.000tNETFF1R26C28[0][A]clkcnt_6_s0/D
-

Data Required Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
3.1263.126tINSRR33IOT27[A]clock_ibuf/O
4.6381.511tNETRR1R26C28[0][A]clkcnt_6_s0/CLK
4.6490.011tHld1R26C28[0][A]clkcnt_6_s0
-

Path Statistics:

- - - - - - - - - - - - - - - - - - - - - - - - - -
Clock Skew0.000
Hold Relationship 0.000
Logic Level2
Arrival Clock Path Delaycell: 3.126, 67.413%; route: 1.511, 32.587%
Arrival Data Path Delaycell: 0.232, 53.157%; route: 0.002, 0.560%; tC2Q: 0.202, 46.283%
Required Clock Path Delaycell: 3.126, 67.413%; route: 1.511, 32.587%
-

Path4

-

Path Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Slack0.425
Data Arrival Time5.074
Data Required Time4.649
Fromclkcnt_8_s0
Toclkcnt_8_s0
Launch Clkclock:[R]
Latch Clkclock:[R]
-

Data Arrival Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
3.1263.126tINSRR33IOT27[A]clock_ibuf/O
4.6381.511tNETRR1R26C28[1][A]clkcnt_8_s0/CLK
4.8400.202tC2QRR2R26C28[1][A]clkcnt_8_s0/Q
4.8420.002tNETRR2R26C28[1][A]n29_s/I1
5.0740.232tINSRF1R26C28[1][A]n29_s/SUM
5.0740.000tNETFF1R26C28[1][A]clkcnt_8_s0/D
-

Data Required Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
3.1263.126tINSRR33IOT27[A]clock_ibuf/O
4.6381.511tNETRR1R26C28[1][A]clkcnt_8_s0/CLK
4.6490.011tHld1R26C28[1][A]clkcnt_8_s0
-

Path Statistics:

- - - - - - - - - - - - - - - - - - - - - - - - - -
Clock Skew0.000
Hold Relationship 0.000
Logic Level2
Arrival Clock Path Delaycell: 3.126, 67.413%; route: 1.511, 32.587%
Arrival Data Path Delaycell: 0.232, 53.157%; route: 0.002, 0.560%; tC2Q: 0.202, 46.283%
Required Clock Path Delaycell: 3.126, 67.413%; route: 1.511, 32.587%
-

Path5

-

Path Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Slack0.425
Data Arrival Time5.074
Data Required Time4.649
Fromclkcnt_14_s0
Toclkcnt_14_s0
Launch Clkclock:[R]
Latch Clkclock:[R]
-

Data Arrival Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
3.1263.126tINSRR33IOT27[A]clock_ibuf/O
4.6381.511tNETRR1R26C29[1][A]clkcnt_14_s0/CLK
4.8400.202tC2QRR2R26C29[1][A]clkcnt_14_s0/Q
4.8420.002tNETRR2R26C29[1][A]n23_s/I1
5.0740.232tINSRF1R26C29[1][A]n23_s/SUM
5.0740.000tNETFF1R26C29[1][A]clkcnt_14_s0/D
-

Data Required Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
3.1263.126tINSRR33IOT27[A]clock_ibuf/O
4.6381.511tNETRR1R26C29[1][A]clkcnt_14_s0/CLK
4.6490.011tHld1R26C29[1][A]clkcnt_14_s0
-

Path Statistics:

- - - - - - - - - - - - - - - - - - - - - - - - - -
Clock Skew0.000
Hold Relationship 0.000
Logic Level2
Arrival Clock Path Delaycell: 3.126, 67.413%; route: 1.511, 32.587%
Arrival Data Path Delaycell: 0.232, 53.157%; route: 0.002, 0.560%; tC2Q: 0.202, 46.283%
Required Clock Path Delaycell: 3.126, 67.413%; route: 1.511, 32.587%
-

Path6

-

Path Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Slack0.425
Data Arrival Time5.074
Data Required Time4.649
Fromclkcnt_20_s0
Toclkcnt_20_s0
Launch Clkclock:[R]
Latch Clkclock:[R]
-

Data Arrival Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
3.1263.126tINSRR33IOT27[A]clock_ibuf/O
4.6381.511tNETRR1R26C30[1][A]clkcnt_20_s0/CLK
4.8400.202tC2QRR2R26C30[1][A]clkcnt_20_s0/Q
4.8420.002tNETRR2R26C30[1][A]n17_s/I1
5.0740.232tINSRF1R26C30[1][A]n17_s/SUM
5.0740.000tNETFF1R26C30[1][A]clkcnt_20_s0/D
-

Data Required Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
3.1263.126tINSRR33IOT27[A]clock_ibuf/O
4.6381.511tNETRR1R26C30[1][A]clkcnt_20_s0/CLK
4.6490.011tHld1R26C30[1][A]clkcnt_20_s0
-

Path Statistics:

- - - - - - - - - - - - - - - - - - - - - - - - - -
Clock Skew0.000
Hold Relationship 0.000
Logic Level2
Arrival Clock Path Delaycell: 3.126, 67.413%; route: 1.511, 32.587%
Arrival Data Path Delaycell: 0.232, 53.157%; route: 0.002, 0.560%; tC2Q: 0.202, 46.283%
Required Clock Path Delaycell: 3.126, 67.413%; route: 1.511, 32.587%
-

Path7

-

Path Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Slack0.425
Data Arrival Time5.074
Data Required Time4.649
Fromclkcnt_24_s0
Toclkcnt_24_s0
Launch Clkclock:[R]
Latch Clkclock:[R]
-

Data Arrival Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
3.1263.126tINSRR33IOT27[A]clock_ibuf/O
4.6381.511tNETRR1R26C31[0][A]clkcnt_24_s0/CLK
4.8400.202tC2QRR2R26C31[0][A]clkcnt_24_s0/Q
4.8420.002tNETRR2R26C31[0][A]n13_s/I1
5.0740.232tINSRF1R26C31[0][A]n13_s/SUM
5.0740.000tNETFF1R26C31[0][A]clkcnt_24_s0/D
-

Data Required Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
3.1263.126tINSRR33IOT27[A]clock_ibuf/O
4.6381.511tNETRR1R26C31[0][A]clkcnt_24_s0/CLK
4.6490.011tHld1R26C31[0][A]clkcnt_24_s0
-

Path Statistics:

- - - - - - - - - - - - - - - - - - - - - - - - - -
Clock Skew0.000
Hold Relationship 0.000
Logic Level2
Arrival Clock Path Delaycell: 3.126, 67.413%; route: 1.511, 32.587%
Arrival Data Path Delaycell: 0.232, 53.157%; route: 0.002, 0.560%; tC2Q: 0.202, 46.283%
Required Clock Path Delaycell: 3.126, 67.413%; route: 1.511, 32.587%
-

Path8

-

Path Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Slack0.425
Data Arrival Time5.074
Data Required Time4.649
Fromclkcnt_26_s0
Toclkcnt_26_s0
Launch Clkclock:[R]
Latch Clkclock:[R]
-

Data Arrival Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
3.1263.126tINSRR33IOT27[A]clock_ibuf/O
4.6381.511tNETRR1R26C31[1][A]clkcnt_26_s0/CLK
4.8400.202tC2QRR2R26C31[1][A]clkcnt_26_s0/Q
4.8420.002tNETRR2R26C31[1][A]n11_s/I1
5.0740.232tINSRF1R26C31[1][A]n11_s/SUM
5.0740.000tNETFF1R26C31[1][A]clkcnt_26_s0/D
-

Data Required Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
3.1263.126tINSRR33IOT27[A]clock_ibuf/O
4.6381.511tNETRR1R26C31[1][A]clkcnt_26_s0/CLK
4.6490.011tHld1R26C31[1][A]clkcnt_26_s0
-

Path Statistics:

- - - - - - - - - - - - - - - - - - - - - - - - - -
Clock Skew0.000
Hold Relationship 0.000
Logic Level2
Arrival Clock Path Delaycell: 3.126, 67.413%; route: 1.511, 32.587%
Arrival Data Path Delaycell: 0.232, 53.157%; route: 0.002, 0.560%; tC2Q: 0.202, 46.283%
Required Clock Path Delaycell: 3.126, 67.413%; route: 1.511, 32.587%
-

Path9

-

Path Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Slack0.425
Data Arrival Time5.074
Data Required Time4.649
Fromclkcnt_30_s0
Toclkcnt_30_s0
Launch Clkclock:[R]
Latch Clkclock:[R]
-

Data Arrival Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
3.1263.126tINSRR33IOT27[A]clock_ibuf/O
4.6381.511tNETRR1R26C32[0][A]clkcnt_30_s0/CLK
4.8400.202tC2QRR2R26C32[0][A]clkcnt_30_s0/Q
4.8420.002tNETRR2R26C32[0][A]n7_s/I1
5.0740.232tINSRF1R26C32[0][A]n7_s/SUM
5.0740.000tNETFF1R26C32[0][A]clkcnt_30_s0/D
-

Data Required Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
3.1263.126tINSRR33IOT27[A]clock_ibuf/O
4.6381.511tNETRR1R26C32[0][A]clkcnt_30_s0/CLK
4.6490.011tHld1R26C32[0][A]clkcnt_30_s0
-

Path Statistics:

- - - - - - - - - - - - - - - - - - - - - - - - - -
Clock Skew0.000
Hold Relationship 0.000
Logic Level2
Arrival Clock Path Delaycell: 3.126, 67.413%; route: 1.511, 32.587%
Arrival Data Path Delaycell: 0.232, 53.157%; route: 0.002, 0.560%; tC2Q: 0.202, 46.283%
Required Clock Path Delaycell: 3.126, 67.413%; route: 1.511, 32.587%
-

Path10

-

Path Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Slack0.425
Data Arrival Time2.197
Data Required Time1.771
Fromfsm_2_s0
Tofsm_2_s0
Launch Clknewclk:[R]
Latch Clknewclk:[R]
-

Data Arrival Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000newclk
0.0000.000tCLRR8R29C28[0][A]newclk_s1/Q
1.7601.760tNETRR1R27C31[0][A]fsm_2_s0/CLK
1.9620.202tC2QRR5R27C31[0][A]fsm_2_s0/Q
1.9650.002tNETRR1R27C31[0][A]n111_s0/I2
2.1970.232tINSRF1R27C31[0][A]n111_s0/F
2.1970.000tNETFF1R27C31[0][A]fsm_2_s0/D
-

Data Required Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000newclk
0.0000.000tCLRR8R29C28[0][A]newclk_s1/Q
1.7601.760tNETRR1R27C31[0][A]fsm_2_s0/CLK
1.7710.011tHld1R27C31[0][A]fsm_2_s0
-

Path Statistics:

- - - - - - - - - - - - - - - - - - - - - - - - - -
Clock Skew0.000
Hold Relationship 0.000
Logic Level2
Arrival Clock Path Delaycell: 0.000, 0.000%; route: 1.760, 100.000%
Arrival Data Path Delaycell: 0.232, 53.157%; route: 0.002, 0.560%; tC2Q: 0.202, 46.283%
Required Clock Path Delaycell: 0.000, 0.000%; route: 1.760, 100.000%
-

Path11

-

Path Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Slack0.427
Data Arrival Time5.075
Data Required Time4.649
Fromclkcnt_0_s0
Toclkcnt_0_s0
Launch Clkclock:[R]
Latch Clkclock:[R]
-

Data Arrival Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
3.1263.126tINSRR33IOT27[A]clock_ibuf/O
4.6381.511tNETRR1R29C28[1][A]clkcnt_0_s0/CLK
4.8400.202tC2QRR3R29C28[1][A]clkcnt_0_s0/Q
4.8430.004tNETRR1R29C28[1][A]n37_s2/I0
5.0750.232tINSRF1R29C28[1][A]n37_s2/F
5.0750.000tNETFF1R29C28[1][A]clkcnt_0_s0/D
-

Data Required Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
3.1263.126tINSRR33IOT27[A]clock_ibuf/O
4.6381.511tNETRR1R29C28[1][A]clkcnt_0_s0/CLK
4.6490.011tHld1R29C28[1][A]clkcnt_0_s0
-

Path Statistics:

- - - - - - - - - - - - - - - - - - - - - - - - - -
Clock Skew0.000
Hold Relationship 0.000
Logic Level2
Arrival Clock Path Delaycell: 3.126, 67.413%; route: 1.511, 32.587%
Arrival Data Path Delaycell: 0.232, 53.008%; route: 0.004, 0.838%; tC2Q: 0.202, 46.154%
Required Clock Path Delaycell: 3.126, 67.413%; route: 1.511, 32.587%
-

Path12

-

Path Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Slack0.427
Data Arrival Time5.075
Data Required Time4.649
Fromclkcnt_12_s0
Toclkcnt_12_s0
Launch Clkclock:[R]
Latch Clkclock:[R]
-

Data Arrival Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
3.1263.126tINSRR33IOT27[A]clock_ibuf/O
4.6381.511tNETRR1R26C29[0][A]clkcnt_12_s0/CLK
4.8400.202tC2QRR3R26C29[0][A]clkcnt_12_s0/Q
4.8430.004tNETRR2R26C29[0][A]n25_s/I1
5.0750.232tINSRF1R26C29[0][A]n25_s/SUM
5.0750.000tNETFF1R26C29[0][A]clkcnt_12_s0/D
-

Data Required Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
3.1263.126tINSRR33IOT27[A]clock_ibuf/O
4.6381.511tNETRR1R26C29[0][A]clkcnt_12_s0/CLK
4.6490.011tHld1R26C29[0][A]clkcnt_12_s0
-

Path Statistics:

- - - - - - - - - - - - - - - - - - - - - - - - - -
Clock Skew0.000
Hold Relationship 0.000
Logic Level2
Arrival Clock Path Delaycell: 3.126, 67.413%; route: 1.511, 32.587%
Arrival Data Path Delaycell: 0.232, 53.008%; route: 0.004, 0.838%; tC2Q: 0.202, 46.154%
Required Clock Path Delaycell: 3.126, 67.413%; route: 1.511, 32.587%
-

Path13

-

Path Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Slack0.427
Data Arrival Time5.075
Data Required Time4.649
Fromclkcnt_18_s0
Toclkcnt_18_s0
Launch Clkclock:[R]
Latch Clkclock:[R]
-

Data Arrival Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
3.1263.126tINSRR33IOT27[A]clock_ibuf/O
4.6381.511tNETRR1R26C30[0][A]clkcnt_18_s0/CLK
4.8400.202tC2QRR3R26C30[0][A]clkcnt_18_s0/Q
4.8430.004tNETRR2R26C30[0][A]n19_s/I1
5.0750.232tINSRF1R26C30[0][A]n19_s/SUM
5.0750.000tNETFF1R26C30[0][A]clkcnt_18_s0/D
-

Data Required Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
3.1263.126tINSRR33IOT27[A]clock_ibuf/O
4.6381.511tNETRR1R26C30[0][A]clkcnt_18_s0/CLK
4.6490.011tHld1R26C30[0][A]clkcnt_18_s0
-

Path Statistics:

- - - - - - - - - - - - - - - - - - - - - - - - - -
Clock Skew0.000
Hold Relationship 0.000
Logic Level2
Arrival Clock Path Delaycell: 3.126, 67.413%; route: 1.511, 32.587%
Arrival Data Path Delaycell: 0.232, 53.008%; route: 0.004, 0.838%; tC2Q: 0.202, 46.154%
Required Clock Path Delaycell: 3.126, 67.413%; route: 1.511, 32.587%
-

Path14

-

Path Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Slack0.542
Data Arrival Time5.191
Data Required Time4.649
Fromclkcnt_31_s0
Toclkcnt_31_s0
Launch Clkclock:[R]
Latch Clkclock:[R]
-

Data Arrival Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
3.1263.126tINSRR33IOT27[A]clock_ibuf/O
4.6381.511tNETRR1R26C32[0][B]clkcnt_31_s0/CLK
4.8390.201tC2QRF2R26C32[0][B]clkcnt_31_s0/Q
4.9590.120tNETFF2R26C32[0][B]n6_s/I1
5.1910.232tINSFF1R26C32[0][B]n6_s/SUM
5.1910.000tNETFF1R26C32[0][B]clkcnt_31_s0/D
-

Data Required Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
3.1263.126tINSRR33IOT27[A]clock_ibuf/O
4.6381.511tNETRR1R26C32[0][B]clkcnt_31_s0/CLK
4.6490.011tHld1R26C32[0][B]clkcnt_31_s0
-

Path Statistics:

- - - - - - - - - - - - - - - - - - - - - - - - - -
Clock Skew0.000
Hold Relationship 0.000
Logic Level2
Arrival Clock Path Delaycell: 3.126, 67.413%; route: 1.511, 32.587%
Arrival Data Path Delaycell: 0.232, 41.934%; route: 0.120, 21.736%; tC2Q: 0.201, 36.331%
Required Clock Path Delaycell: 3.126, 67.413%; route: 1.511, 32.587%
-

Path15

-

Path Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Slack0.542
Data Arrival Time5.191
Data Required Time4.649
Fromclkcnt_11_s0
Toclkcnt_11_s0
Launch Clkclock:[R]
Latch Clkclock:[R]
-

Data Arrival Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
3.1263.126tINSRR33IOT27[A]clock_ibuf/O
4.6381.511tNETRR1R26C28[2][B]clkcnt_11_s0/CLK
4.8390.201tC2QRF2R26C28[2][B]clkcnt_11_s0/Q
4.9590.120tNETFF2R26C28[2][B]n26_s/I1
5.1910.232tINSFF1R26C28[2][B]n26_s/SUM
5.1910.000tNETFF1R26C28[2][B]clkcnt_11_s0/D
-

Data Required Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
3.1263.126tINSRR33IOT27[A]clock_ibuf/O
4.6381.511tNETRR1R26C28[2][B]clkcnt_11_s0/CLK
4.6490.011tHld1R26C28[2][B]clkcnt_11_s0
-

Path Statistics:

- - - - - - - - - - - - - - - - - - - - - - - - - -
Clock Skew0.000
Hold Relationship 0.000
Logic Level2
Arrival Clock Path Delaycell: 3.126, 67.413%; route: 1.511, 32.587%
Arrival Data Path Delaycell: 0.232, 41.934%; route: 0.120, 21.736%; tC2Q: 0.201, 36.331%
Required Clock Path Delaycell: 3.126, 67.413%; route: 1.511, 32.587%
-

Path16

-

Path Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Slack0.542
Data Arrival Time5.191
Data Required Time4.649
Fromclkcnt_23_s0
Toclkcnt_23_s0
Launch Clkclock:[R]
Latch Clkclock:[R]
-

Data Arrival Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
3.1263.126tINSRR33IOT27[A]clock_ibuf/O
4.6381.511tNETRR1R26C30[2][B]clkcnt_23_s0/CLK
4.8390.201tC2QRF3R26C30[2][B]clkcnt_23_s0/Q
4.9590.120tNETFF2R26C30[2][B]n14_s/I1
5.1910.232tINSFF1R26C30[2][B]n14_s/SUM
5.1910.000tNETFF1R26C30[2][B]clkcnt_23_s0/D
-

Data Required Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
3.1263.126tINSRR33IOT27[A]clock_ibuf/O
4.6381.511tNETRR1R26C30[2][B]clkcnt_23_s0/CLK
4.6490.011tHld1R26C30[2][B]clkcnt_23_s0
-

Path Statistics:

- - - - - - - - - - - - - - - - - - - - - - - - - -
Clock Skew0.000
Hold Relationship 0.000
Logic Level2
Arrival Clock Path Delaycell: 3.126, 67.413%; route: 1.511, 32.587%
Arrival Data Path Delaycell: 0.232, 41.934%; route: 0.120, 21.736%; tC2Q: 0.201, 36.331%
Required Clock Path Delaycell: 3.126, 67.413%; route: 1.511, 32.587%
-

Path17

-

Path Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Slack0.546
Data Arrival Time5.194
Data Required Time4.649
Fromclkcnt_3_s0
Toclkcnt_3_s0
Launch Clkclock:[R]
Latch Clkclock:[R]
-

Data Arrival Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
3.1263.126tINSRR33IOT27[A]clock_ibuf/O
4.6381.511tNETRR1R26C27[1][B]clkcnt_3_s0/CLK
4.8390.201tC2QRF2R26C27[1][B]clkcnt_3_s0/Q
4.9620.124tNETFF2R26C27[1][B]n34_s/I1
5.1940.232tINSFF1R26C27[1][B]n34_s/SUM
5.1940.000tNETFF1R26C27[1][B]clkcnt_3_s0/D
-

Data Required Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
3.1263.126tINSRR33IOT27[A]clock_ibuf/O
4.6381.511tNETRR1R26C27[1][B]clkcnt_3_s0/CLK
4.6490.011tHld1R26C27[1][B]clkcnt_3_s0
-

Path Statistics:

- - - - - - - - - - - - - - - - - - - - - - - - - -
Clock Skew0.000
Hold Relationship 0.000
Logic Level2
Arrival Clock Path Delaycell: 3.126, 67.413%; route: 1.511, 32.587%
Arrival Data Path Delaycell: 0.232, 41.676%; route: 0.124, 22.216%; tC2Q: 0.201, 36.107%
Required Clock Path Delaycell: 3.126, 67.413%; route: 1.511, 32.587%
-

Path18

-

Path Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Slack0.546
Data Arrival Time5.194
Data Required Time4.649
Fromclkcnt_4_s0
Toclkcnt_4_s0
Launch Clkclock:[R]
Latch Clkclock:[R]
-

Data Arrival Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
3.1263.126tINSRR33IOT27[A]clock_ibuf/O
4.6381.511tNETRR1R26C27[2][A]clkcnt_4_s0/CLK
4.8390.201tC2QRF2R26C27[2][A]clkcnt_4_s0/Q
4.9620.124tNETFF2R26C27[2][A]n33_s/I1
5.1940.232tINSFF1R26C27[2][A]n33_s/SUM
5.1940.000tNETFF1R26C27[2][A]clkcnt_4_s0/D
-

Data Required Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
3.1263.126tINSRR33IOT27[A]clock_ibuf/O
4.6381.511tNETRR1R26C27[2][A]clkcnt_4_s0/CLK
4.6490.011tHld1R26C27[2][A]clkcnt_4_s0
-

Path Statistics:

- - - - - - - - - - - - - - - - - - - - - - - - - -
Clock Skew0.000
Hold Relationship 0.000
Logic Level2
Arrival Clock Path Delaycell: 3.126, 67.413%; route: 1.511, 32.587%
Arrival Data Path Delaycell: 0.232, 41.676%; route: 0.124, 22.216%; tC2Q: 0.201, 36.107%
Required Clock Path Delaycell: 3.126, 67.413%; route: 1.511, 32.587%
-

Path19

-

Path Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Slack0.546
Data Arrival Time5.194
Data Required Time4.649
Fromclkcnt_9_s0
Toclkcnt_9_s0
Launch Clkclock:[R]
Latch Clkclock:[R]
-

Data Arrival Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
3.1263.126tINSRR33IOT27[A]clock_ibuf/O
4.6381.511tNETRR1R26C28[1][B]clkcnt_9_s0/CLK
4.8390.201tC2QRF2R26C28[1][B]clkcnt_9_s0/Q
4.9620.124tNETFF2R26C28[1][B]n28_s/I1
5.1940.232tINSFF1R26C28[1][B]n28_s/SUM
5.1940.000tNETFF1R26C28[1][B]clkcnt_9_s0/D
-

Data Required Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
3.1263.126tINSRR33IOT27[A]clock_ibuf/O
4.6381.511tNETRR1R26C28[1][B]clkcnt_9_s0/CLK
4.6490.011tHld1R26C28[1][B]clkcnt_9_s0
-

Path Statistics:

- - - - - - - - - - - - - - - - - - - - - - - - - -
Clock Skew0.000
Hold Relationship 0.000
Logic Level2
Arrival Clock Path Delaycell: 3.126, 67.413%; route: 1.511, 32.587%
Arrival Data Path Delaycell: 0.232, 41.676%; route: 0.124, 22.216%; tC2Q: 0.201, 36.107%
Required Clock Path Delaycell: 3.126, 67.413%; route: 1.511, 32.587%
-

Path20

-

Path Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Slack0.546
Data Arrival Time5.194
Data Required Time4.649
Fromclkcnt_16_s0
Toclkcnt_16_s0
Launch Clkclock:[R]
Latch Clkclock:[R]
-

Data Arrival Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
3.1263.126tINSRR33IOT27[A]clock_ibuf/O
4.6381.511tNETRR1R26C29[2][A]clkcnt_16_s0/CLK
4.8390.201tC2QRF2R26C29[2][A]clkcnt_16_s0/Q
4.9620.124tNETFF2R26C29[2][A]n21_s/I1
5.1940.232tINSFF1R26C29[2][A]n21_s/SUM
5.1940.000tNETFF1R26C29[2][A]clkcnt_16_s0/D
-

Data Required Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
3.1263.126tINSRR33IOT27[A]clock_ibuf/O
4.6381.511tNETRR1R26C29[2][A]clkcnt_16_s0/CLK
4.6490.011tHld1R26C29[2][A]clkcnt_16_s0
-

Path Statistics:

- - - - - - - - - - - - - - - - - - - - - - - - - -
Clock Skew0.000
Hold Relationship 0.000
Logic Level2
Arrival Clock Path Delaycell: 3.126, 67.413%; route: 1.511, 32.587%
Arrival Data Path Delaycell: 0.232, 41.676%; route: 0.124, 22.216%; tC2Q: 0.201, 36.107%
Required Clock Path Delaycell: 3.126, 67.413%; route: 1.511, 32.587%
-

Path21

-

Path Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Slack0.546
Data Arrival Time5.194
Data Required Time4.649
Fromclkcnt_21_s0
Toclkcnt_21_s0
Launch Clkclock:[R]
Latch Clkclock:[R]
-

Data Arrival Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
3.1263.126tINSRR33IOT27[A]clock_ibuf/O
4.6381.511tNETRR1R26C30[1][B]clkcnt_21_s0/CLK
4.8390.201tC2QRF2R26C30[1][B]clkcnt_21_s0/Q
4.9620.124tNETFF2R26C30[1][B]n16_s/I1
5.1940.232tINSFF1R26C30[1][B]n16_s/SUM
5.1940.000tNETFF1R26C30[1][B]clkcnt_21_s0/D
-

Data Required Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
3.1263.126tINSRR33IOT27[A]clock_ibuf/O
4.6381.511tNETRR1R26C30[1][B]clkcnt_21_s0/CLK
4.6490.011tHld1R26C30[1][B]clkcnt_21_s0
-

Path Statistics:

- - - - - - - - - - - - - - - - - - - - - - - - - -
Clock Skew0.000
Hold Relationship 0.000
Logic Level2
Arrival Clock Path Delaycell: 3.126, 67.413%; route: 1.511, 32.587%
Arrival Data Path Delaycell: 0.232, 41.676%; route: 0.124, 22.216%; tC2Q: 0.201, 36.107%
Required Clock Path Delaycell: 3.126, 67.413%; route: 1.511, 32.587%
-

Path22

-

Path Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Slack0.546
Data Arrival Time5.194
Data Required Time4.649
Fromclkcnt_22_s0
Toclkcnt_22_s0
Launch Clkclock:[R]
Latch Clkclock:[R]
-

Data Arrival Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
3.1263.126tINSRR33IOT27[A]clock_ibuf/O
4.6381.511tNETRR1R26C30[2][A]clkcnt_22_s0/CLK
4.8390.201tC2QRF2R26C30[2][A]clkcnt_22_s0/Q
4.9620.124tNETFF2R26C30[2][A]n15_s/I1
5.1940.232tINSFF1R26C30[2][A]n15_s/SUM
5.1940.000tNETFF1R26C30[2][A]clkcnt_22_s0/D
-

Data Required Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
3.1263.126tINSRR33IOT27[A]clock_ibuf/O
4.6381.511tNETRR1R26C30[2][A]clkcnt_22_s0/CLK
4.6490.011tHld1R26C30[2][A]clkcnt_22_s0
-

Path Statistics:

- - - - - - - - - - - - - - - - - - - - - - - - - -
Clock Skew0.000
Hold Relationship 0.000
Logic Level2
Arrival Clock Path Delaycell: 3.126, 67.413%; route: 1.511, 32.587%
Arrival Data Path Delaycell: 0.232, 41.676%; route: 0.124, 22.216%; tC2Q: 0.201, 36.107%
Required Clock Path Delaycell: 3.126, 67.413%; route: 1.511, 32.587%
-

Path23

-

Path Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Slack0.546
Data Arrival Time5.194
Data Required Time4.649
Fromclkcnt_27_s0
Toclkcnt_27_s0
Launch Clkclock:[R]
Latch Clkclock:[R]
-

Data Arrival Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
3.1263.126tINSRR33IOT27[A]clock_ibuf/O
4.6381.511tNETRR1R26C31[1][B]clkcnt_27_s0/CLK
4.8390.201tC2QRF2R26C31[1][B]clkcnt_27_s0/Q
4.9620.124tNETFF2R26C31[1][B]n10_s/I1
5.1940.232tINSFF1R26C31[1][B]n10_s/SUM
5.1940.000tNETFF1R26C31[1][B]clkcnt_27_s0/D
-

Data Required Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
3.1263.126tINSRR33IOT27[A]clock_ibuf/O
4.6381.511tNETRR1R26C31[1][B]clkcnt_27_s0/CLK
4.6490.011tHld1R26C31[1][B]clkcnt_27_s0
-

Path Statistics:

- - - - - - - - - - - - - - - - - - - - - - - - - -
Clock Skew0.000
Hold Relationship 0.000
Logic Level2
Arrival Clock Path Delaycell: 3.126, 67.413%; route: 1.511, 32.587%
Arrival Data Path Delaycell: 0.232, 41.676%; route: 0.124, 22.216%; tC2Q: 0.201, 36.107%
Required Clock Path Delaycell: 3.126, 67.413%; route: 1.511, 32.587%
-

Path24

-

Path Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Slack0.546
Data Arrival Time5.194
Data Required Time4.649
Fromclkcnt_28_s0
Toclkcnt_28_s0
Launch Clkclock:[R]
Latch Clkclock:[R]
-

Data Arrival Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
3.1263.126tINSRR33IOT27[A]clock_ibuf/O
4.6381.511tNETRR1R26C31[2][A]clkcnt_28_s0/CLK
4.8390.201tC2QRF2R26C31[2][A]clkcnt_28_s0/Q
4.9620.124tNETFF2R26C31[2][A]n9_s/I1
5.1940.232tINSFF1R26C31[2][A]n9_s/SUM
5.1940.000tNETFF1R26C31[2][A]clkcnt_28_s0/D
-

Data Required Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
3.1263.126tINSRR33IOT27[A]clock_ibuf/O
4.6381.511tNETRR1R26C31[2][A]clkcnt_28_s0/CLK
4.6490.011tHld1R26C31[2][A]clkcnt_28_s0
-

Path Statistics:

- - - - - - - - - - - - - - - - - - - - - - - - - -
Clock Skew0.000
Hold Relationship 0.000
Logic Level2
Arrival Clock Path Delaycell: 3.126, 67.413%; route: 1.511, 32.587%
Arrival Data Path Delaycell: 0.232, 41.676%; route: 0.124, 22.216%; tC2Q: 0.201, 36.107%
Required Clock Path Delaycell: 3.126, 67.413%; route: 1.511, 32.587%
-

Path25

-

Path Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Slack0.546
Data Arrival Time5.194
Data Required Time4.649
Fromclkcnt_29_s0
Toclkcnt_29_s0
Launch Clkclock:[R]
Latch Clkclock:[R]
-

Data Arrival Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
3.1263.126tINSRR33IOT27[A]clock_ibuf/O
4.6381.511tNETRR1R26C31[2][B]clkcnt_29_s0/CLK
4.8390.201tC2QRF2R26C31[2][B]clkcnt_29_s0/Q
4.9620.124tNETFF2R26C31[2][B]n8_s/I1
5.1940.232tINSFF1R26C31[2][B]n8_s/SUM
5.1940.000tNETFF1R26C31[2][B]clkcnt_29_s0/D
-

Data Required Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFFANOUTLOCNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRR1IOT27[A]clock_ibuf/I
3.1263.126tINSRR33IOT27[A]clock_ibuf/O
4.6381.511tNETRR1R26C31[2][B]clkcnt_29_s0/CLK
4.6490.011tHld1R26C31[2][B]clkcnt_29_s0
-

Path Statistics:

- - - - - - - - - - - - - - - - - - - - - - - - - -
Clock Skew0.000
Hold Relationship 0.000
Logic Level2
Arrival Clock Path Delaycell: 3.126, 67.413%; route: 1.511, 32.587%
Arrival Data Path Delaycell: 0.232, 41.676%; route: 0.124, 22.216%; tC2Q: 0.201, 36.107%
Required Clock Path Delaycell: 3.126, 67.413%; route: 1.511, 32.587%
-

Recovery Analysis Report

-

Report Command:report_timing -recovery -max_paths 25 -max_common_paths 1

-

No recovery paths to report!

-

Removal Analysis Report

-

Report Command:report_timing -removal -max_paths 25 -max_common_paths 1

-

No removal paths to report!

-

Minimum Pulse Width Report:

-

Report Command:report_min_pulse_width -nworst 10 -detail

-

MPW1

-

MPW Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - -
Slack:1.152
Actual Width:2.152
Required Width:1.000
Type:High Pulse Width
Clock:clock
Objects:clkcnt_30_s0
-

Late clock Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRRclock_ibuf/I
4.2304.230tINSRRclock_ibuf/O
6.5012.271tNETRRclkcnt_30_s0/CLK
-

Early clock Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFNODE
5.0000.000active clock edge time
5.0000.000clock
5.0000.000tCLFFclock_ibuf/I
7.1402.140tINSFFclock_ibuf/O
8.6531.514tNETFFclkcnt_30_s0/CLK
-

MPW2

-

MPW Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - -
Slack:1.152
Actual Width:2.152
Required Width:1.000
Type:High Pulse Width
Clock:clock
Objects:clkcnt_29_s0
-

Late clock Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRRclock_ibuf/I
4.2304.230tINSRRclock_ibuf/O
6.5012.271tNETRRclkcnt_29_s0/CLK
-

Early clock Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFNODE
5.0000.000active clock edge time
5.0000.000clock
5.0000.000tCLFFclock_ibuf/I
7.1402.140tINSFFclock_ibuf/O
8.6531.514tNETFFclkcnt_29_s0/CLK
-

MPW3

-

MPW Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - -
Slack:1.152
Actual Width:2.152
Required Width:1.000
Type:High Pulse Width
Clock:clock
Objects:clkcnt_27_s0
-

Late clock Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRRclock_ibuf/I
4.2304.230tINSRRclock_ibuf/O
6.5012.271tNETRRclkcnt_27_s0/CLK
-

Early clock Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFNODE
5.0000.000active clock edge time
5.0000.000clock
5.0000.000tCLFFclock_ibuf/I
7.1402.140tINSFFclock_ibuf/O
8.6531.514tNETFFclkcnt_27_s0/CLK
-

MPW4

-

MPW Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - -
Slack:1.152
Actual Width:2.152
Required Width:1.000
Type:High Pulse Width
Clock:clock
Objects:clkcnt_23_s0
-

Late clock Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRRclock_ibuf/I
4.2304.230tINSRRclock_ibuf/O
6.5012.271tNETRRclkcnt_23_s0/CLK
-

Early clock Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFNODE
5.0000.000active clock edge time
5.0000.000clock
5.0000.000tCLFFclock_ibuf/I
7.1402.140tINSFFclock_ibuf/O
8.6531.514tNETFFclkcnt_23_s0/CLK
-

MPW5

-

MPW Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - -
Slack:1.152
Actual Width:2.152
Required Width:1.000
Type:High Pulse Width
Clock:clock
Objects:clkcnt_15_s0
-

Late clock Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRRclock_ibuf/I
4.2304.230tINSRRclock_ibuf/O
6.5012.271tNETRRclkcnt_15_s0/CLK
-

Early clock Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFNODE
5.0000.000active clock edge time
5.0000.000clock
5.0000.000tCLFFclock_ibuf/I
7.1402.140tINSFFclock_ibuf/O
8.6531.514tNETFFclkcnt_15_s0/CLK
-

MPW6

-

MPW Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - -
Slack:1.152
Actual Width:2.152
Required Width:1.000
Type:High Pulse Width
Clock:clock
Objects:clkcnt_31_s0
-

Late clock Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRRclock_ibuf/I
4.2304.230tINSRRclock_ibuf/O
6.5012.271tNETRRclkcnt_31_s0/CLK
-

Early clock Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFNODE
5.0000.000active clock edge time
5.0000.000clock
5.0000.000tCLFFclock_ibuf/I
7.1402.140tINSFFclock_ibuf/O
8.6531.514tNETFFclkcnt_31_s0/CLK
-

MPW7

-

MPW Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - -
Slack:1.152
Actual Width:2.152
Required Width:1.000
Type:High Pulse Width
Clock:clock
Objects:clkcnt_0_s0
-

Late clock Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRRclock_ibuf/I
4.2304.230tINSRRclock_ibuf/O
6.5012.271tNETRRclkcnt_0_s0/CLK
-

Early clock Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFNODE
5.0000.000active clock edge time
5.0000.000clock
5.0000.000tCLFFclock_ibuf/I
7.1402.140tINSFFclock_ibuf/O
8.6531.514tNETFFclkcnt_0_s0/CLK
-

MPW8

-

MPW Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - -
Slack:1.152
Actual Width:2.152
Required Width:1.000
Type:High Pulse Width
Clock:clock
Objects:clkcnt_16_s0
-

Late clock Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRRclock_ibuf/I
4.2304.230tINSRRclock_ibuf/O
6.5012.271tNETRRclkcnt_16_s0/CLK
-

Early clock Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFNODE
5.0000.000active clock edge time
5.0000.000clock
5.0000.000tCLFFclock_ibuf/I
7.1402.140tINSFFclock_ibuf/O
8.6531.514tNETFFclkcnt_16_s0/CLK
-

MPW9

-

MPW Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - -
Slack:1.152
Actual Width:2.152
Required Width:1.000
Type:High Pulse Width
Clock:clock
Objects:clkcnt_1_s0
-

Late clock Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRRclock_ibuf/I
4.2304.230tINSRRclock_ibuf/O
6.5012.271tNETRRclkcnt_1_s0/CLK
-

Early clock Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFNODE
5.0000.000active clock edge time
5.0000.000clock
5.0000.000tCLFFclock_ibuf/I
7.1402.140tINSFFclock_ibuf/O
8.6531.514tNETFFclkcnt_1_s0/CLK
-

MPW10

-

MPW Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - -
Slack:1.152
Actual Width:2.152
Required Width:1.000
Type:High Pulse Width
Clock:clock
Objects:clkcnt_2_s0
-

Late clock Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFNODE
0.0000.000active clock edge time
0.0000.000clock
0.0000.000tCLRRclock_ibuf/I
4.2304.230tINSRRclock_ibuf/O
6.5012.271tNETRRclkcnt_2_s0/CLK
-

Early clock Path:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ATDELAYTYPERFNODE
5.0000.000active clock edge time
5.0000.000clock
5.0000.000tCLFFclock_ibuf/I
7.1402.140tINSFFclock_ibuf/O
8.6531.514tNETFFclkcnt_2_s0/CLK
-

High Fanout Nets Report:

-

Report Command:report_high_fanout_nets -max_nets 10

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FANOUTNET NAMEWORST SLACKMAX DELAY
33clock_d6.7322.274
33n38_1326.7320.702
8newclk6.9602.669
7fsm[0]6.9600.197
7fsm[1]7.1320.989
5fsm[2]6.9980.180
3clkcnt[23]7.1850.424
3n109_58.8540.162
3clkcnt[12]7.0600.419
3clkcnt[15]7.1830.169
-

Route Congestions Report:

-

Report Command:report_route_congestion -max_grids 10

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GRID LOCROUTE CONGESTIONS
R26C2980.56%
R26C2879.17%
R26C3079.17%
R26C3177.78%
R26C2759.72%
R27C3148.61%
R26C3240.28%
R29C2831.94%
R27C288.33%
R28C315.56%
-

Timing Exceptions Report:

-

Setup Analysis Report

-

Report Command:report_exceptions -setup -max_paths 5 -max_common_paths 1

-

No timing exceptions to report!

-

Hold Analysis Report

-

Report Command:report_exceptions -hold -max_paths 5 -max_common_paths 1

-

No timing exceptions to report!

-

Recovery Analysis Report

-

Report Command:report_exceptions -recovery -max_paths 5 -max_common_paths 1

-

No timing exceptions to report!

-

Removal Analysis Report

-

Report Command:report_exceptions -removal -max_paths 5 -max_common_paths 1

-

No timing exceptions to report!

-

Timing Constraints Report:

- - - - - - -
SDC Command TypeStateDetail Command
-
- - diff --git a/gowin/seq_light_test/impl/seq_light_test_process_config.json b/gowin/seq_light_test/impl/seq_light_test_process_config.json deleted file mode 100644 index fec840d..0000000 --- a/gowin/seq_light_test/impl/seq_light_test_process_config.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "BACKGROUND_PROGRAMMING" : "off", - "COMPRESS" : false, - "CPU" : false, - "CRC_CHECK" : true, - "Clock_Route_Order" : 0, - "Correct_Hold_Violation" : true, - "DONE" : false, - "DOWNLOAD_SPEED" : "default", - "Disable_Insert_Pad" : false, - "ENABLE_CTP" : false, - "ENABLE_MERGE_MODE" : false, - "ENCRYPTION_KEY" : false, - "ENCRYPTION_KEY_TEXT" : "00000000000000000000000000000000", - "ERROR_DECTION_AND_CORRECTION" : false, - "ERROR_DECTION_ONLY" : false, - "ERROR_INJECTION" : false, - "EXTERNAL_MASTER_CONFIG_CLOCK" : false, - "Enable_DSRM" : false, - "FORMAT" : "binary", - "FREQUENCY_DIVIDER" : "", - "Generate_Constraint_File_of_Ports" : false, - "Generate_IBIS_File" : false, - "Generate_Plain_Text_Timing_Report" : false, - "Generate_Post_PNR_Simulation_Model_File" : false, - "Generate_Post_Place_File" : false, - "Generate_SDF_File" : false, - "Generate_VHDL_Post_PNR_Simulation_Model_File" : false, - "Global_Freq" : "default", - "GwSyn_Loop_Limit" : 2000, - "HOTBOOT" : false, - "I2C" : false, - "I2C_SLAVE_ADDR" : "00", - "IncludePath" : [ - - ], - "Incremental_Compile" : "", - "Initialize_Primitives" : false, - "JTAG" : false, - "MODE_IO" : false, - "MSPI" : false, - "MSPI_JUMP" : false, - "MULTIBOOT_ADDRESS_WIDTH" : "24", - "MULTIBOOT_MODE" : "Normal", - "MULTIBOOT_SPI_FLASH_ADDRESS" : "00000000", - "MULTIJUMP_ADDRESS_WIDTH" : "24", - "MULTIJUMP_MODE" : "Normal", - "MULTIJUMP_SPI_FLASH_ADDRESS" : "000000", - "Multi_Boot" : true, - "OUTPUT_BASE_NAME" : "seq_light_test", - "POWER_ON_RESET_MONITOR" : true, - "PRINT_BSRAM_VALUE" : true, - "PROGRAM_DONE_BYPASS" : false, - "PlaceInRegToIob" : true, - "PlaceIoRegToIob" : true, - "PlaceOutRegToIob" : true, - "Place_Option" : "0", - "Process_Configuration_Verion" : "1.0", - "Promote_Physical_Constraint_Warning_to_Error" : true, - "READY" : false, - "RECONFIG_N" : false, - "Ram_RW_Check" : false, - "Replicate_Resources" : false, - "Report_Auto-Placed_Io_Information" : false, - "Route_Maxfan" : 23, - "Route_Option" : "0", - "Run_Timing_Driven" : true, - "SECURE_MODE" : false, - "SECURITY_BIT" : true, - "SEU_HANDLER" : false, - "SEU_HANDLER_CHECKSUM" : false, - "SEU_HANDLER_MODE" : "auto", - "SSPI" : false, - "STOP_SEU_HANDLER" : false, - "Show_All_Warnings" : false, - "Synthesize_tool" : "GowinSyn", - "TclPre" : "", - "TopModule" : "", - "USERCODE" : "default", - "Unused_Pin" : "As_input_tri_stated_with_pull_up", - "VCCAUX" : 3.3, - "VCCX" : "3.3", - "VHDL_Standard" : "VHDL_Std_1993", - "Verilog_Standard" : "Vlg_Std_2001", - "WAKE_UP" : "0", - "show_all_warnings" : false, - "turn_off_bg" : false -} \ No newline at end of file diff --git a/gowin/seq_light_test/impl/temp/rtl_parser.result b/gowin/seq_light_test/impl/temp/rtl_parser.result deleted file mode 100644 index 02ab89f..0000000 --- a/gowin/seq_light_test/impl/temp/rtl_parser.result +++ /dev/null @@ -1,10 +0,0 @@ -[ - { - "InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/seq_light_test/src/seqBlink.v", - "InstLine" : 1, - "InstName" : "seqBlink", - "ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/seq_light_test/src/seqBlink.v", - "ModuleLine" : 1, - "ModuleName" : "seqBlink" - } -] \ No newline at end of file diff --git a/gowin/seq_light_test/impl/temp/rtl_parser_arg.json b/gowin/seq_light_test/impl/temp/rtl_parser_arg.json deleted file mode 100644 index e534016..0000000 --- a/gowin/seq_light_test/impl/temp/rtl_parser_arg.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "Device" : "GW2A-18C", - "Files" : [ - { - "Path" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/seq_light_test/src/seqBlink.v", - "Type" : "verilog" - } - ], - "IncludePath" : [ - - ], - "LoopLimit" : 2000, - "ResultFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/seq_light_test/impl/temp/rtl_parser.result", - "Top" : "", - "VerilogStd" : "verilog_2001", - "VhdlStd" : "vhdl_93" -} \ No newline at end of file diff --git a/gowin/seq_light_test/impl/temp/style.css b/gowin/seq_light_test/impl/temp/style.css deleted file mode 100644 index e69de29..0000000 diff --git a/gowin/seq_light_test/seq_light_test.gprj b/gowin/seq_light_test/seq_light_test.gprj deleted file mode 100644 index 04a3080..0000000 --- a/gowin/seq_light_test/seq_light_test.gprj +++ /dev/null @@ -1,12 +0,0 @@ - - - - - 5 - gw2a18c-011 - - - - - - diff --git a/gowin/seq_light_test/seq_light_test.gprj.user b/gowin/seq_light_test/seq_light_test.gprj.user deleted file mode 100644 index d4560f7..0000000 --- a/gowin/seq_light_test/seq_light_test.gprj.user +++ /dev/null @@ -1,24 +0,0 @@ - - - - 1.0 - - - - - - - - - - - - - - - - - - - 000000ff00000001fd00000002000000000000018e00000260fc0200000001fc00000063000002600000000000fffffffaffffffff0200000003fb00000030004600700067006100500072006f006a006500630074002e00500061006e0065006c002e00440065007300690067006e0100000000ffffffff0000000000000000fb00000032004600700067006100500072006f006a006500630074002e00500061006e0065006c002e00500072006f00630065007300730100000000ffffffff0000000000000000fb00000036004600700067006100500072006f006a006500630074002e00500061006e0065006c002e0048006900650072006100720063006800790100000000ffffffff0000000000000000000000030000078000000142fc0100000001fc00000000000007800000009b00fffffffa000000000100000002fb00000032004600700067006100500072006f006a006500630074002e00500061006e0065006c002e00470065006e006500720061006c0100000000ffffffff0000007800fffffffb0000002e004600700067006100500072006f006a006500630074002e00500061006e0065006c002e004900730073007500650100000000ffffffff0000009b00ffffff000005ea0000026000000004000000040000000800000008fc000000010000000200000003000000220043006f00720065002e0054006f006f006c006200610072002e00460069006c00650100000000ffffffff0000000000000000000000220043006f00720065002e0054006f006f006c006200610072002e004500640069007401000000afffffffff0000000000000000000000240043006f00720065002e0054006f006f006c006200610072002e0054006f006f006c00730100000183ffffffff0000000000000000 - diff --git a/gowin/seq_light_test/src/seqBlink.v b/gowin/seq_light_test/src/seqBlink.v deleted file mode 100644 index a85d36c..0000000 --- a/gowin/seq_light_test/src/seqBlink.v +++ /dev/null @@ -1,36 +0,0 @@ -module seqBlink ( - input clock, - output reg [3:0] led -); - -reg [2:0] fsm = 0; - -reg [31:0] clkcnt = 0; -reg newclk = 0; - -always@(posedge clock) begin - clkcnt <= clkcnt + 1'b1; - if (clkcnt > 9_000_000) begin - clkcnt <= 0; - newclk <= ~newclk; - end -end - -always@(posedge newclk) begin - if (fsm == 3'd6) begin - fsm <= 0; - end else begin - fsm <= fsm + 1; - end - case (fsm) - 3'b000 : led <= 4'b0111; - 3'b001 : led <= 4'b1011; - 3'b010 : led <= 4'b1101; - 3'b011 : led <= 4'b1110; - 3'b100 : led <= 4'b1101; - 3'b101 : led <= 4'b1011; - 3'b110 : led <= 4'b0111; - default: led <= 4'b0000; - endcase -end -endmodule diff --git a/gowin/seq_light_test/src/seqBlinkTB.v b/gowin/seq_light_test/src/seqBlinkTB.v deleted file mode 100644 index 0d552e3..0000000 --- a/gowin/seq_light_test/src/seqBlinkTB.v +++ /dev/null @@ -1,24 +0,0 @@ -module seqBlinkTB(); - -reg clock; -wire [3:0] leds; - -seqBlink uut(clock, leds); - -initial begin - clock = 0; - end - -always begin - clock = ~clock; #5; - end -initial begin - $dumpfile("lab5v.vcd"); - $dumpvars; - - #100; - - $finish; -end - -endmodule \ No newline at end of file diff --git a/gowin/seq_light_test/src/seq_light_test.cst b/gowin/seq_light_test/src/seq_light_test.cst deleted file mode 100644 index 93098f8..0000000 --- a/gowin/seq_light_test/src/seq_light_test.cst +++ /dev/null @@ -1,19 +0,0 @@ -//Copyright (C)2014-2024 Gowin Semiconductor Corporation. -//All rights reserved. -//File Title: Physical Constraints file -//Tool Version: V1.9.9.03 Education (64-bit) -//Part Number: GW2A-LV18PG256C8/I7 -//Device: GW2A-18 -//Device Version: C -//Created Time: Sun 07 07 15:26:30 2024 - -IO_LOC "led[3]" L16; -IO_PORT "led[3]" IO_TYPE=LVCMOS18 PULL_MODE=UP DRIVE=8 BANK_VCCIO=1.8; -IO_LOC "led[2]" L14; -IO_PORT "led[2]" IO_TYPE=LVCMOS18 PULL_MODE=UP DRIVE=8 BANK_VCCIO=1.8; -IO_LOC "led[1]" N14; -IO_PORT "led[1]" IO_TYPE=LVCMOS18 PULL_MODE=UP DRIVE=8 BANK_VCCIO=1.8; -IO_LOC "led[0]" N16; -IO_PORT "led[0]" IO_TYPE=LVCMOS18 PULL_MODE=UP DRIVE=8 BANK_VCCIO=1.8; -IO_LOC "clock" H11; -IO_PORT "clock" IO_TYPE=LVCMOS18 PULL_MODE=UP BANK_VCCIO=1.8; diff --git a/iverilog/tobb/lab2/HammingDistance/ham.vcd b/iverilog/tobb/lab2/HammingDistance/ham.vcd deleted file mode 100644 index 8a33edd..0000000 --- a/iverilog/tobb/lab2/HammingDistance/ham.vcd +++ /dev/null @@ -1,38 +0,0 @@ -$date - Wed Nov 6 15:42:14 2024 -$end -$version - Icarus Verilog -$end -$timescale - 1s -$end -$scope module htb $end -$var wire 4 ! hammingValue [3:0] $end -$var reg 8 " value1 [7:0] $end -$var reg 8 # value2 [7:0] $end -$scope module uut $end -$var wire 8 $ value1 [7:0] $end -$var wire 8 % value2 [7:0] $end -$var reg 4 & hammingValue [3:0] $end -$var integer 32 ' i [31:0] $end -$upscope $end -$upscope $end -$enddefinitions $end -#0 -$dumpvars -b1000 ' -b100 & -b10111111 % -b10110000 $ -b10111111 # -b10110000 " -b100 ! -$end -#10 -b1000 ' -b0 ! -b0 & -b10111111 " -b10111111 $ -#20 diff --git a/iverilog/tobb/lab2/HammingDistance/hamming b/iverilog/tobb/lab2/HammingDistance/hamming deleted file mode 100644 index 94dda2f..0000000 --- a/iverilog/tobb/lab2/HammingDistance/hamming +++ /dev/null @@ -1,83 +0,0 @@ -#! /usr/bin/vvp -:ivl_version "11.0 (stable)"; -:ivl_delay_selection "TYPICAL"; -:vpi_time_precision + 0; -:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/system.vpi"; -:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/vhdl_sys.vpi"; -:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/vhdl_textio.vpi"; -:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/v2005_math.vpi"; -:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/va_math.vpi"; -S_0x55be1d5c3f90 .scope module, "htb" "htb" 2 1; - .timescale 0 0; -v0x55be1d5d5ae0_0 .net "hammingValue", 3 0, v0x55be1d58ab00_0; 1 drivers -v0x55be1d5d5bd0_0 .var "value1", 7 0; -v0x55be1d5d5ca0_0 .var "value2", 7 0; -S_0x55be1d5c4120 .scope module, "uut" "hamming" 2 7, 3 1 0, S_0x55be1d5c3f90; - .timescale 0 0; - .port_info 0 /INPUT 8 "value1"; - .port_info 1 /INPUT 8 "value2"; - .port_info 2 /OUTPUT 4 "hammingValue"; -v0x55be1d58ab00_0 .var "hammingValue", 3 0; -v0x55be1d58af10_0 .var/i "i", 31 0; -v0x55be1d5d58c0_0 .net "value1", 7 0, v0x55be1d5d5bd0_0; 1 drivers -v0x55be1d5d5980_0 .net "value2", 7 0, v0x55be1d5d5ca0_0; 1 drivers -E_0x55be1d589690 .event edge, v0x55be1d5d58c0_0, v0x55be1d5d5980_0, v0x55be1d58ab00_0; - .scope S_0x55be1d5c4120; -T_0 ; - %pushi/vec4 0, 0, 32; - %store/vec4 v0x55be1d58af10_0, 0, 32; - %end; - .thread T_0; - .scope S_0x55be1d5c4120; -T_1 ; - %wait E_0x55be1d589690; - %pushi/vec4 0, 0, 4; - %store/vec4 v0x55be1d58ab00_0, 0, 4; - %pushi/vec4 0, 0, 32; - %store/vec4 v0x55be1d58af10_0, 0, 32; -T_1.0 ; - %load/vec4 v0x55be1d58af10_0; - %cmpi/s 8, 0, 32; - %jmp/0xz T_1.1, 5; - %load/vec4 v0x55be1d5d58c0_0; - %load/vec4 v0x55be1d58af10_0; - %part/s 1; - %load/vec4 v0x55be1d5d5980_0; - %load/vec4 v0x55be1d58af10_0; - %part/s 1; - %cmp/ne; - %jmp/0xz T_1.2, 4; - %load/vec4 v0x55be1d58ab00_0; - %addi 1, 0, 4; - %store/vec4 v0x55be1d58ab00_0, 0, 4; -T_1.2 ; - %load/vec4 v0x55be1d58af10_0; - %addi 1, 0, 32; - %store/vec4 v0x55be1d58af10_0, 0, 32; - %jmp T_1.0; -T_1.1 ; - %jmp T_1; - .thread T_1, $push; - .scope S_0x55be1d5c3f90; -T_2 ; - %vpi_call 2 14 "$dumpfile", "ham.vcd" {0 0 0}; - %vpi_call 2 15 "$dumpvars" {0 0 0}; - %pushi/vec4 176, 0, 8; - %store/vec4 v0x55be1d5d5bd0_0, 0, 8; - %pushi/vec4 191, 0, 8; - %store/vec4 v0x55be1d5d5ca0_0, 0, 8; - %delay 10, 0; - %pushi/vec4 191, 0, 8; - %store/vec4 v0x55be1d5d5bd0_0, 0, 8; - %pushi/vec4 191, 0, 8; - %store/vec4 v0x55be1d5d5ca0_0, 0, 8; - %delay 10, 0; - %vpi_call 2 18 "$display", v0x55be1d5d5ae0_0 {0 0 0}; - %end; - .thread T_2; -# The file index is used to find the file name in the following table. -:file_names 4; - "N/A"; - ""; - "htb.v"; - "hamming.v"; diff --git a/iverilog/tobb/lab2/HammingDistance/hamming.v b/iverilog/tobb/lab2/HammingDistance/hamming.v deleted file mode 100644 index b1c9928..0000000 --- a/iverilog/tobb/lab2/HammingDistance/hamming.v +++ /dev/null @@ -1,17 +0,0 @@ -module hamming ( - input[7:0] value1, - input[7:0] value2, - output reg[3:0] hammingValue -); - -integer i = 0; - -always @(*) begin - hammingValue = 0; - for(i = 0; i < 8; i = i+1) begin - if (value1[i] != value2[i]) begin - hammingValue = hammingValue + 1; - end - end -end -endmodule \ No newline at end of file diff --git a/iverilog/tobb/lab2/HammingDistance/htb.v b/iverilog/tobb/lab2/HammingDistance/htb.v deleted file mode 100644 index 3a54377..0000000 --- a/iverilog/tobb/lab2/HammingDistance/htb.v +++ /dev/null @@ -1,20 +0,0 @@ -module htb (); - -reg [7:0] value1; -reg [7:0] value2; -wire [3:0] hammingValue; - -hamming uut ( - .value1(value1), - .value2(value2), - .hammingValue(hammingValue) -); - -initial begin - $dumpfile("ham.vcd"); - $dumpvars; - value1 = 8'hB0; value2 = 8'hBF; #10; - value1 = 8'hBF; value2 = 8'hBF; #10; - $display(hammingValue); -end -endmodule \ No newline at end of file diff --git a/iverilog/tobb/lab2/hadmp.vcd b/iverilog/tobb/lab2/hadmp.vcd deleted file mode 100644 index ea9234c..0000000 --- a/iverilog/tobb/lab2/hadmp.vcd +++ /dev/null @@ -1,40 +0,0 @@ -$date - Tue Oct 8 10:23:08 2024 -$end -$version - Icarus Verilog -$end -$timescale - 1s -$end -$scope module halfaddertb $end -$var wire 1 ! S $end -$var wire 1 " C $end -$var reg 1 # A $end -$var reg 1 $ B $end -$scope module uut $end -$var wire 1 # A $end -$var wire 1 $ B $end -$var wire 1 " C $end -$var wire 1 ! S $end -$upscope $end -$upscope $end -$enddefinitions $end -#0 -$dumpvars -0$ -0# -0" -0! -$end -#10 -1! -1$ -#20 -0$ -1# -#30 -0! -1" -1$ -#40 diff --git a/iverilog/tobb/lab2/halfadder b/iverilog/tobb/lab2/halfadder deleted file mode 100644 index f043784..0000000 --- a/iverilog/tobb/lab2/halfadder +++ /dev/null @@ -1,59 +0,0 @@ -#! /usr/bin/vvp -:ivl_version "11.0 (stable)"; -:ivl_delay_selection "TYPICAL"; -:vpi_time_precision + 0; -:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/system.vpi"; -:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/vhdl_sys.vpi"; -:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/vhdl_textio.vpi"; -:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/v2005_math.vpi"; -:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/va_math.vpi"; -S_0x5583f1e33260 .scope module, "halfaddertb" "halfaddertb" 2 1; - .timescale 0 0; -v0x5583f1e44440_0 .var "A", 0 0; -v0x5583f1e44500_0 .var "B", 0 0; -v0x5583f1e445d0_0 .net "C", 0 0, L_0x5583f1e44900; 1 drivers -v0x5583f1e446d0_0 .net "S", 0 0, L_0x5583f1e447a0; 1 drivers -S_0x5583f1e333f0 .scope module, "uut" "halfadder" 2 5, 3 1 0, S_0x5583f1e33260; - .timescale 0 0; - .port_info 0 /INPUT 1 "A"; - .port_info 1 /INPUT 1 "B"; - .port_info 2 /OUTPUT 1 "S"; - .port_info 3 /OUTPUT 1 "C"; -L_0x5583f1e447a0 .functor XOR 1, v0x5583f1e44440_0, v0x5583f1e44500_0, C4<0>, C4<0>; -L_0x5583f1e44900 .functor AND 1, v0x5583f1e44440_0, v0x5583f1e44500_0, C4<1>, C4<1>; -v0x5583f1dfbc00_0 .net "A", 0 0, v0x5583f1e44440_0; 1 drivers -v0x5583f1e44140_0 .net "B", 0 0, v0x5583f1e44500_0; 1 drivers -v0x5583f1e44200_0 .net "C", 0 0, L_0x5583f1e44900; alias, 1 drivers -v0x5583f1e442d0_0 .net "S", 0 0, L_0x5583f1e447a0; alias, 1 drivers - .scope S_0x5583f1e33260; -T_0 ; - %vpi_call 2 10 "$dumpfile", "hadmp.vcd" {0 0 0}; - %vpi_call 2 11 "$dumpvars" {0 0 0}; - %pushi/vec4 0, 0, 1; - %store/vec4 v0x5583f1e44440_0, 0, 1; - %pushi/vec4 0, 0, 1; - %store/vec4 v0x5583f1e44500_0, 0, 1; - %delay 10, 0; - %pushi/vec4 0, 0, 1; - %store/vec4 v0x5583f1e44440_0, 0, 1; - %pushi/vec4 1, 0, 1; - %store/vec4 v0x5583f1e44500_0, 0, 1; - %delay 10, 0; - %pushi/vec4 1, 0, 1; - %store/vec4 v0x5583f1e44440_0, 0, 1; - %pushi/vec4 0, 0, 1; - %store/vec4 v0x5583f1e44500_0, 0, 1; - %delay 10, 0; - %pushi/vec4 1, 0, 1; - %store/vec4 v0x5583f1e44440_0, 0, 1; - %pushi/vec4 1, 0, 1; - %store/vec4 v0x5583f1e44500_0, 0, 1; - %delay 10, 0; - %end; - .thread T_0; -# The file index is used to find the file name in the following table. -:file_names 4; - "N/A"; - ""; - "halfaddertb.v"; - "halfadder.v"; diff --git a/iverilog/tobb/lab2/halfadder.v b/iverilog/tobb/lab2/halfadder.v deleted file mode 100644 index d36eb87..0000000 --- a/iverilog/tobb/lab2/halfadder.v +++ /dev/null @@ -1,9 +0,0 @@ -module halfadder ( - input A, - input B, - output S, - output C -); - xor x1(S, A, B); - and a1(C, A, B); -endmodule \ No newline at end of file diff --git a/iverilog/tobb/lab2/halfaddertb.v b/iverilog/tobb/lab2/halfaddertb.v deleted file mode 100644 index 14a73f1..0000000 --- a/iverilog/tobb/lab2/halfaddertb.v +++ /dev/null @@ -1,18 +0,0 @@ -module halfaddertb (); - reg A, B; - wire S, C; - -halfadder uut( - .A(A), .B(B), .S(S), .C(C) -); - -initial begin - $dumpfile("hadmp.vcd"); - $dumpvars; - A = 1'b0; B = 1'b0; #10; - A = 1'b0; B = 1'b1; #10; - A = 1'b1; B = 1'b0; #10; - A = 1'b1; B = 1'b1; #10; -end - -endmodule diff --git a/iverilog/tobb/lab7tetris/a.out b/iverilog/tobb/lab7tetris/a.out deleted file mode 100644 index 4d406a5..0000000 --- a/iverilog/tobb/lab7tetris/a.out +++ /dev/null @@ -1,202 +0,0 @@ -#! /usr/bin/vvp -:ivl_version "11.0 (stable)"; -:ivl_delay_selection "TYPICAL"; -:vpi_time_precision + 0; -:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/system.vpi"; -:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/vhdl_sys.vpi"; -:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/vhdl_textio.vpi"; -:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/v2005_math.vpi"; -:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/va_math.vpi"; -S_0x5555993ec6a0 .scope module, "tb" "tb" 2 1; - .timescale 0 0; -v0x5555994063f0_0 .net "bitti_mi", 0 0, L_0x5555994068b0; 1 drivers -v0x5555994064b0_0 .net "cevrim", 4 0, L_0x5555994067c0; 1 drivers -v0x555599406550_0 .var "clk", 0 0; -v0x555599406650_0 .var "parca", 2 0; -v0x555599406720_0 .net "yukseklik", 4 0, v0x555599406270_0; 1 drivers -S_0x5555993ec830 .scope module, "uut" "tetris" 2 10, 3 1 0, S_0x5555993ec6a0; - .timescale 0 0; - .port_info 0 /INPUT 1 "clk"; - .port_info 1 /INPUT 3 "parca"; - .port_info 2 /OUTPUT 5 "yukseklik"; - .port_info 3 /OUTPUT 5 "cevrim"; - .port_info 4 /OUTPUT 1 "bitti_mi"; -L_0x5555994067c0 .functor BUFZ 5, v0x555599405d00_0, C4<00000>, C4<00000>, C4<00000>; -L_0x7f7b9f218018 .functor BUFT 1, C4<10000>, C4<0>, C4<0>, C4<0>; -v0x5555993ec9e0_0 .net/2u *"_ivl_2", 4 0, L_0x7f7b9f218018; 1 drivers -v0x555599405b80_0 .net "bitti_mi", 0 0, L_0x5555994068b0; alias, 1 drivers -v0x555599405c40_0 .net "cevrim", 4 0, L_0x5555994067c0; alias, 1 drivers -v0x555599405d00_0 .var "cevrim_r", 4 0; -v0x555599405de0_0 .net "clk", 0 0, v0x555599406550_0; 1 drivers -v0x555599405ef0_0 .net "parca", 2 0, v0x555599406650_0; 1 drivers -v0x555599405fd0_0 .var "y_0", 4 0; -v0x5555994060b0_0 .var "y_1", 4 0; -v0x555599406190_0 .var "y_2", 4 0; -v0x555599406270_0 .var "yukseklik", 4 0; -E_0x5555993e7d70 .event posedge, v0x555599405b80_0; -E_0x5555993af500 .event posedge, v0x555599405de0_0; -L_0x5555994068b0 .cmp/eq 5, v0x555599405d00_0, L_0x7f7b9f218018; - .scope S_0x5555993ec830; -T_0 ; - %pushi/vec4 0, 0, 5; - %store/vec4 v0x555599405d00_0, 0, 5; - %pushi/vec4 0, 0, 5; - %store/vec4 v0x555599405fd0_0, 0, 5; - %pushi/vec4 0, 0, 5; - %store/vec4 v0x5555994060b0_0, 0, 5; - %pushi/vec4 0, 0, 5; - %store/vec4 v0x555599406190_0, 0, 5; - %end; - .thread T_0; - .scope S_0x5555993ec830; -T_1 ; - %wait E_0x5555993af500; - %load/vec4 v0x555599405c40_0; - %cmpi/ne 16, 0, 5; - %jmp/0xz T_1.0, 4; - %load/vec4 v0x555599405d00_0; - %addi 1, 0, 5; - %assign/vec4 v0x555599405d00_0, 0; - %load/vec4 v0x555599405fd0_0; - %pushi/vec4 0, 0, 4; - %load/vec4 v0x555599405ef0_0; - %parti/s 1, 0, 2; - %concat/vec4; draw_concat_vec4 - %add; - %assign/vec4 v0x555599405fd0_0, 0; - %load/vec4 v0x5555994060b0_0; - %pushi/vec4 0, 0, 4; - %load/vec4 v0x555599405ef0_0; - %parti/s 1, 1, 2; - %concat/vec4; draw_concat_vec4 - %add; - %assign/vec4 v0x5555994060b0_0, 0; - %load/vec4 v0x555599406190_0; - %pushi/vec4 0, 0, 4; - %load/vec4 v0x555599405ef0_0; - %parti/s 1, 2, 3; - %concat/vec4; draw_concat_vec4 - %add; - %assign/vec4 v0x555599406190_0, 0; -T_1.0 ; - %jmp T_1; - .thread T_1; - .scope S_0x5555993ec830; -T_2 ; - %wait E_0x5555993e7d70; - %load/vec4 v0x5555994060b0_0; - %load/vec4 v0x555599405fd0_0; - %cmp/u; - %jmp/0xz T_2.0, 5; - %load/vec4 v0x555599406190_0; - %load/vec4 v0x555599405fd0_0; - %cmp/u; - %jmp/0xz T_2.2, 5; - %load/vec4 v0x555599405fd0_0; - %assign/vec4 v0x555599406270_0, 0; - %jmp T_2.3; -T_2.2 ; - %load/vec4 v0x555599406190_0; - %assign/vec4 v0x555599406270_0, 0; -T_2.3 ; - %jmp T_2.1; -T_2.0 ; - %load/vec4 v0x5555994060b0_0; - %load/vec4 v0x555599405fd0_0; - %cmp/u; - %jmp/0xz T_2.4, 5; - %load/vec4 v0x555599406190_0; - %load/vec4 v0x5555994060b0_0; - %cmp/u; - %jmp/0xz T_2.6, 5; - %load/vec4 v0x5555994060b0_0; - %assign/vec4 v0x555599406270_0, 0; - %jmp T_2.7; -T_2.6 ; - %load/vec4 v0x555599406190_0; - %assign/vec4 v0x555599406270_0, 0; -T_2.7 ; -T_2.4 ; -T_2.1 ; - %jmp T_2; - .thread T_2; - .scope S_0x5555993ec6a0; -T_3 ; - %pushi/vec4 0, 0, 1; - %store/vec4 v0x555599406550_0, 0, 1; - %end; - .thread T_3; - .scope S_0x5555993ec6a0; -T_4 ; - %load/vec4 v0x555599406550_0; - %inv; - %store/vec4 v0x555599406550_0, 0, 1; - %delay 5, 0; - %jmp T_4; - .thread T_4; - .scope S_0x5555993ec6a0; -T_5 ; - %vpi_call 2 23 "$dumpvars" {0 0 0}; - %pushi/vec4 5, 0, 3; - %store/vec4 v0x555599406650_0, 0, 3; - %delay 10, 0; - %pushi/vec4 0, 0, 3; - %store/vec4 v0x555599406650_0, 0, 3; - %delay 10, 0; - %pushi/vec4 5, 0, 3; - %store/vec4 v0x555599406650_0, 0, 3; - %delay 10, 0; - %pushi/vec4 0, 0, 3; - %store/vec4 v0x555599406650_0, 0, 3; - %delay 10, 0; - %pushi/vec4 5, 0, 3; - %store/vec4 v0x555599406650_0, 0, 3; - %delay 10, 0; - %pushi/vec4 0, 0, 3; - %store/vec4 v0x555599406650_0, 0, 3; - %delay 10, 0; - %pushi/vec4 5, 0, 3; - %store/vec4 v0x555599406650_0, 0, 3; - %delay 10, 0; - %pushi/vec4 0, 0, 3; - %store/vec4 v0x555599406650_0, 0, 3; - %delay 10, 0; - %pushi/vec4 5, 0, 3; - %store/vec4 v0x555599406650_0, 0, 3; - %delay 10, 0; - %pushi/vec4 0, 0, 3; - %store/vec4 v0x555599406650_0, 0, 3; - %delay 10, 0; - %pushi/vec4 5, 0, 3; - %store/vec4 v0x555599406650_0, 0, 3; - %delay 10, 0; - %pushi/vec4 0, 0, 3; - %store/vec4 v0x555599406650_0, 0, 3; - %delay 10, 0; - %pushi/vec4 5, 0, 3; - %store/vec4 v0x555599406650_0, 0, 3; - %delay 10, 0; - %pushi/vec4 0, 0, 3; - %store/vec4 v0x555599406650_0, 0, 3; - %delay 10, 0; - %pushi/vec4 5, 0, 3; - %store/vec4 v0x555599406650_0, 0, 3; - %delay 10, 0; - %pushi/vec4 0, 0, 3; - %store/vec4 v0x555599406650_0, 0, 3; - %delay 10, 0; - %pushi/vec4 5, 0, 3; - %store/vec4 v0x555599406650_0, 0, 3; - %delay 10, 0; - %pushi/vec4 0, 0, 3; - %store/vec4 v0x555599406650_0, 0, 3; - %delay 10, 0; - %vpi_call 2 42 "$finish" {0 0 0}; - %end; - .thread T_5; -# The file index is used to find the file name in the following table. -:file_names 4; - "N/A"; - ""; - "tb.v"; - "tetris.v"; diff --git a/iverilog/tobb/lab7tetris/obj_dir/Vtb b/iverilog/tobb/lab7tetris/obj_dir/Vtb deleted file mode 100644 index 38d5191dfe0d8024046023dcd042fda9380a2e40..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 164304 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 -{ - // Register model with the context - contextp()->addModel(this); -} - -Vtb::Vtb(const char* _vcname__) - : Vtb(Verilated::threadContextp(), _vcname__) -{ -} - -//============================================================ -// Destructor - -Vtb::~Vtb() { - delete vlSymsp; -} - -//============================================================ -// Evaluation function - -#ifdef VL_DEBUG -void Vtb___024root___eval_debug_assertions(Vtb___024root* vlSelf); -#endif // VL_DEBUG -void Vtb___024root___eval_static(Vtb___024root* vlSelf); -void Vtb___024root___eval_initial(Vtb___024root* vlSelf); -void Vtb___024root___eval_settle(Vtb___024root* vlSelf); -void Vtb___024root___eval(Vtb___024root* vlSelf); - -void Vtb::eval_step() { - VL_DEBUG_IF(VL_DBG_MSGF("+++++TOP Evaluate Vtb::eval_step\n"); ); -#ifdef VL_DEBUG - // Debug assertions - Vtb___024root___eval_debug_assertions(&(vlSymsp->TOP)); -#endif // VL_DEBUG - if (VL_UNLIKELY(!vlSymsp->__Vm_didInit)) { - vlSymsp->__Vm_didInit = true; - VL_DEBUG_IF(VL_DBG_MSGF("+ Initial\n");); - Vtb___024root___eval_static(&(vlSymsp->TOP)); - Vtb___024root___eval_initial(&(vlSymsp->TOP)); - Vtb___024root___eval_settle(&(vlSymsp->TOP)); - } - // MTask 0 start - VL_DEBUG_IF(VL_DBG_MSGF("MTask0 starting\n");); - Verilated::mtaskId(0); - VL_DEBUG_IF(VL_DBG_MSGF("+ Eval\n");); - Vtb___024root___eval(&(vlSymsp->TOP)); - // Evaluate cleanup - Verilated::endOfThreadMTask(vlSymsp->__Vm_evalMsgQp); - Verilated::endOfEval(vlSymsp->__Vm_evalMsgQp); -} - -//============================================================ -// Events and timing -bool Vtb::eventsPending() { return !vlSymsp->TOP.__VdlySched.empty(); } - -uint64_t Vtb::nextTimeSlot() { return vlSymsp->TOP.__VdlySched.nextTimeSlot(); } - -//============================================================ -// Utilities - -const char* Vtb::name() const { - return vlSymsp->name(); -} - -//============================================================ -// Invoke final blocks - -void Vtb___024root___eval_final(Vtb___024root* vlSelf); - -VL_ATTR_COLD void Vtb::final() { - Vtb___024root___eval_final(&(vlSymsp->TOP)); -} - -//============================================================ -// Implementations of abstract methods from VerilatedModel - -const char* Vtb::hierName() const { return vlSymsp->name(); } -const char* Vtb::modelName() const { return "Vtb"; } -unsigned Vtb::threads() const { return 1; } diff --git a/iverilog/tobb/lab7tetris/obj_dir/Vtb.h b/iverilog/tobb/lab7tetris/obj_dir/Vtb.h deleted file mode 100644 index c948a07..0000000 --- a/iverilog/tobb/lab7tetris/obj_dir/Vtb.h +++ /dev/null @@ -1,72 +0,0 @@ -// Verilated -*- C++ -*- -// DESCRIPTION: Verilator output: Primary model header -// -// This header should be included by all source files instantiating the design. -// The class here is then constructed to instantiate the design. -// See the Verilator manual for examples. - -#ifndef VERILATED_VTB_H_ -#define VERILATED_VTB_H_ // guard - -#include "verilated.h" - -class Vtb__Syms; -class Vtb___024root; - -// This class is the main interface to the Verilated model -class Vtb VL_NOT_FINAL : public VerilatedModel { - private: - // Symbol table holding complete model state (owned by this class) - Vtb__Syms* const vlSymsp; - - public: - - // PORTS - // The application code writes and reads these signals to - // propagate new values into/out from the Verilated model. - - // CELLS - // Public to allow access to /* verilator public */ items. - // Otherwise the application code can consider these internals. - - // Root instance pointer to allow access to model internals, - // including inlined /* verilator public_flat_* */ items. - Vtb___024root* const rootp; - - // CONSTRUCTORS - /// Construct the model; called by application code - /// If contextp is null, then the model will use the default global context - /// If name is "", then makes a wrapper with a - /// single model invisible with respect to DPI scope names. - explicit Vtb(VerilatedContext* contextp, const char* name = "TOP"); - explicit Vtb(const char* name = "TOP"); - /// Destroy the model; called (often implicitly) by application code - virtual ~Vtb(); - private: - VL_UNCOPYABLE(Vtb); ///< Copying not allowed - - public: - // API METHODS - /// Evaluate the model. Application must call when inputs change. - void eval() { eval_step(); } - /// Evaluate when calling multiple units/models per time step. - void eval_step(); - /// Evaluate at end of a timestep for tracing, when using eval_step(). - /// Application must call after all eval() and before time changes. - void eval_end_step() {} - /// Simulation complete, run final blocks. Application must call on completion. - void final(); - /// Are there scheduled events to handle? - bool eventsPending(); - /// Returns time at next time slot. Aborts if !eventsPending() - uint64_t nextTimeSlot(); - /// Retrieve name of this model instance (as passed to constructor). - const char* name() const; - - // Abstract methods from VerilatedModel - const char* hierName() const override final; - const char* modelName() const override final; - unsigned threads() const override final; -} VL_ATTR_ALIGNED(VL_CACHE_LINE_BYTES); - -#endif // guard diff --git a/iverilog/tobb/lab7tetris/obj_dir/Vtb.mk b/iverilog/tobb/lab7tetris/obj_dir/Vtb.mk deleted file mode 100644 index 67eb3f9..0000000 --- a/iverilog/tobb/lab7tetris/obj_dir/Vtb.mk +++ /dev/null @@ -1,65 +0,0 @@ -# Verilated -*- Makefile -*- -# DESCRIPTION: Verilator output: Makefile for building Verilated archive or executable -# -# Execute this makefile from the object directory: -# make -f Vtb.mk - -default: Vtb - -### Constants... -# Perl executable (from $PERL) -PERL = perl -# Path to Verilator kit (from $VERILATOR_ROOT) -VERILATOR_ROOT = /usr/share/verilator -# SystemC include directory with systemc.h (from $SYSTEMC_INCLUDE) -SYSTEMC_INCLUDE ?= -# SystemC library directory with libsystemc.a (from $SYSTEMC_LIBDIR) -SYSTEMC_LIBDIR ?= - -### Switches... -# C++ code coverage 0/1 (from --prof-c) -VM_PROFC = 0 -# SystemC output mode? 0/1 (from --sc) -VM_SC = 0 -# Legacy or SystemC output mode? 0/1 (from --sc) -VM_SP_OR_SC = $(VM_SC) -# Deprecated -VM_PCLI = 1 -# Deprecated: SystemC architecture to find link library path (from $SYSTEMC_ARCH) -VM_SC_TARGET_ARCH = linux - -### Vars... -# Design prefix (from --prefix) -VM_PREFIX = Vtb -# Module prefix (from --prefix) -VM_MODPREFIX = Vtb -# User CFLAGS (from -CFLAGS on Verilator command line) -VM_USER_CFLAGS = \ - -DVL_TIME_CONTEXT \ - -# User LDLIBS (from -LDFLAGS on Verilator command line) -VM_USER_LDLIBS = \ - -# User .cpp files (from .cpp's on Verilator command line) -VM_USER_CLASSES = \ - -# User .cpp directories (from .cpp's on Verilator command line) -VM_USER_DIR = \ - - -### Default rules... -# Include list of all generated classes -include Vtb_classes.mk -# Include global rules -include $(VERILATOR_ROOT)/include/verilated.mk - -### Executable rules... (from --exe) -VPATH += $(VM_USER_DIR) - - -### Link rules... (from --exe) -Vtb: $(VK_USER_OBJS) $(VK_GLOBAL_OBJS) $(VM_PREFIX)__ALL.a $(VM_HIER_LIBS) - $(LINK) $(LDFLAGS) $^ $(LOADLIBES) $(LDLIBS) $(LIBS) $(SC_LIBS) -o $@ - - -# Verilated -*- Makefile -*- diff --git a/iverilog/tobb/lab7tetris/obj_dir/Vtb__ALL.a b/iverilog/tobb/lab7tetris/obj_dir/Vtb__ALL.a deleted file mode 100644 index ac55f344071f845b6af715691da8c0fc60b6d86c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25372 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 Y7D>BF6z`qV@eg|qiappk7R>zr0|?3srT_o{ diff --git a/iverilog/tobb/lab7tetris/obj_dir/Vtb__ALL.cpp b/iverilog/tobb/lab7tetris/obj_dir/Vtb__ALL.cpp deleted file mode 100644 index 17842e1..0000000 --- a/iverilog/tobb/lab7tetris/obj_dir/Vtb__ALL.cpp +++ /dev/null @@ -1,10 +0,0 @@ -// DESCRIPTION: Generated by verilator_includer via makefile -#define VL_INCLUDE_OPT include -#include "Vtb.cpp" -#include "Vtb___024root__DepSet_hfe20aad3__0.cpp" -#include "Vtb___024root__DepSet_ha183790c__0.cpp" -#include "Vtb__main.cpp" -#include "Vtb___024root__Slow.cpp" -#include "Vtb___024root__DepSet_hfe20aad3__0__Slow.cpp" -#include "Vtb___024root__DepSet_ha183790c__0__Slow.cpp" -#include "Vtb__Syms.cpp" diff --git a/iverilog/tobb/lab7tetris/obj_dir/Vtb__ALL.d b/iverilog/tobb/lab7tetris/obj_dir/Vtb__ALL.d deleted file mode 100644 index b92e953..0000000 --- a/iverilog/tobb/lab7tetris/obj_dir/Vtb__ALL.d +++ /dev/null @@ -1,12 +0,0 @@ -Vtb__ALL.o: Vtb__ALL.cpp Vtb.cpp Vtb.h \ - /usr/share/verilator/include/verilated.h \ - /usr/share/verilator/include/verilatedos.h \ - /usr/share/verilator/include/verilated_config.h \ - /usr/share/verilator/include/verilated_types.h \ - /usr/share/verilator/include/verilated_funcs.h Vtb__Syms.h \ - Vtb___024root.h /usr/share/verilator/include/verilated_timing.h \ - /usr/share/verilator/include/verilated.h \ - Vtb___024root__DepSet_hfe20aad3__0.cpp \ - Vtb___024root__DepSet_ha183790c__0.cpp Vtb__main.cpp \ - Vtb___024root__Slow.cpp Vtb___024root__DepSet_hfe20aad3__0__Slow.cpp \ - Vtb___024root__DepSet_ha183790c__0__Slow.cpp Vtb__Syms.cpp diff --git a/iverilog/tobb/lab7tetris/obj_dir/Vtb__ALL.o b/iverilog/tobb/lab7tetris/obj_dir/Vtb__ALL.o deleted file mode 100644 index 3824ff3afb107dc8d7f5a7c2521f3b3afa597604..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22592 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 - _vm_contextp__->timeprecision(-12); - // Setup each module's pointers to their submodules - // Setup each module's pointer back to symbol table (for public functions) - TOP.__Vconfigure(true); -} diff --git a/iverilog/tobb/lab7tetris/obj_dir/Vtb__Syms.h b/iverilog/tobb/lab7tetris/obj_dir/Vtb__Syms.h deleted file mode 100644 index 59f0ea8..0000000 --- a/iverilog/tobb/lab7tetris/obj_dir/Vtb__Syms.h +++ /dev/null @@ -1,37 +0,0 @@ -// Verilated -*- C++ -*- -// DESCRIPTION: Verilator output: Symbol table internal header -// -// Internal details; most calling programs do not need this header, -// unless using verilator public meta comments. - -#ifndef VERILATED_VTB__SYMS_H_ -#define VERILATED_VTB__SYMS_H_ // guard - -#include "verilated.h" - -// INCLUDE MODEL CLASS - -#include "Vtb.h" - -// INCLUDE MODULE CLASSES -#include "Vtb___024root.h" - -// SYMS CLASS (contains all model state) -class Vtb__Syms final : public VerilatedSyms { - public: - // INTERNAL STATE - Vtb* const __Vm_modelp; - bool __Vm_didInit = false; - - // MODULE INSTANCE STATE - Vtb___024root TOP; - - // CONSTRUCTORS - Vtb__Syms(VerilatedContext* contextp, const char* namep, Vtb* modelp); - ~Vtb__Syms(); - - // METHODS - const char* name() { return TOP.name(); } -} VL_ATTR_ALIGNED(VL_CACHE_LINE_BYTES); - -#endif // guard diff --git a/iverilog/tobb/lab7tetris/obj_dir/Vtb___024root.h b/iverilog/tobb/lab7tetris/obj_dir/Vtb___024root.h deleted file mode 100644 index f6f1f4b..0000000 --- a/iverilog/tobb/lab7tetris/obj_dir/Vtb___024root.h +++ /dev/null @@ -1,52 +0,0 @@ -// Verilated -*- C++ -*- -// DESCRIPTION: Verilator output: Design internal header -// See Vtb.h for the primary calling header - -#ifndef VERILATED_VTB___024ROOT_H_ -#define VERILATED_VTB___024ROOT_H_ // guard - -#include "verilated.h" -#include "verilated_timing.h" - -class Vtb__Syms; - -class Vtb___024root final : public VerilatedModule { - public: - - // DESIGN SPECIFIC STATE - CData/*0:0*/ tb__DOT__clk; - CData/*0:0*/ tb__DOT__bitti_mi; - CData/*2:0*/ tb__DOT__parca; - CData/*4:0*/ tb__DOT__yukseklik; - CData/*4:0*/ tb__DOT__cevrim; - CData/*4:0*/ tb__DOT__uut__DOT__cevrim_r; - CData/*4:0*/ tb__DOT__uut__DOT__y_0; - CData/*4:0*/ tb__DOT__uut__DOT__y_1; - CData/*4:0*/ tb__DOT__uut__DOT__y_2; - CData/*4:0*/ __Vdly__tb__DOT__uut__DOT__y_0; - CData/*4:0*/ __Vdly__tb__DOT__uut__DOT__y_1; - CData/*4:0*/ __Vdly__tb__DOT__uut__DOT__y_2; - CData/*0:0*/ __Vtrigrprev__TOP__tb__DOT__clk; - CData/*0:0*/ __Vtrigrprev__TOP__tb__DOT__bitti_mi; - CData/*0:0*/ __VactContinue; - IData/*31:0*/ __VstlIterCount; - IData/*31:0*/ __VactIterCount; - VlDelayScheduler __VdlySched; - VlTriggerVec<1> __VstlTriggered; - VlTriggerVec<3> __VactTriggered; - VlTriggerVec<3> __VnbaTriggered; - - // INTERNAL VARIABLES - Vtb__Syms* const vlSymsp; - - // CONSTRUCTORS - Vtb___024root(Vtb__Syms* symsp, const char* v__name); - ~Vtb___024root(); - VL_UNCOPYABLE(Vtb___024root); - - // INTERNAL METHODS - void __Vconfigure(bool first); -} VL_ATTR_ALIGNED(VL_CACHE_LINE_BYTES); - - -#endif // guard diff --git a/iverilog/tobb/lab7tetris/obj_dir/Vtb___024root__DepSet_ha183790c__0.cpp b/iverilog/tobb/lab7tetris/obj_dir/Vtb___024root__DepSet_ha183790c__0.cpp deleted file mode 100644 index 52ddcde..0000000 --- a/iverilog/tobb/lab7tetris/obj_dir/Vtb___024root__DepSet_ha183790c__0.cpp +++ /dev/null @@ -1,201 +0,0 @@ -// Verilated -*- C++ -*- -// DESCRIPTION: Verilator output: Design implementation internals -// See Vtb.h for the primary calling header - -#include "verilated.h" - -#include "Vtb___024root.h" - -VlCoroutine Vtb___024root___eval_initial__TOP__0(Vtb___024root* vlSelf); - -void Vtb___024root___eval_initial(Vtb___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - Vtb__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ Vtb___024root___eval_initial\n"); ); - // Body - Vtb___024root___eval_initial__TOP__0(vlSelf); - vlSelf->__Vtrigrprev__TOP__tb__DOT__clk = vlSelf->tb__DOT__clk; - vlSelf->__Vtrigrprev__TOP__tb__DOT__bitti_mi = vlSelf->tb__DOT__bitti_mi; -} - -VL_INLINE_OPT VlCoroutine Vtb___024root___eval_initial__TOP__0(Vtb___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - Vtb__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ Vtb___024root___eval_initial__TOP__0\n"); ); - // Body - while (1U) { - co_await vlSelf->__VdlySched.delay(5U, "tb.v", - 20); - vlSelf->tb__DOT__clk = (1U & (~ (IData)(vlSelf->tb__DOT__clk))); - } - vlSelf->tb__DOT__parca = 5U; - co_await vlSelf->__VdlySched.delay(0xc8U, "tb.v", - 21); - VL_WRITEF("%2#\n%2#\n%1#\n",5,vlSelf->tb__DOT__yukseklik, - 5,(IData)(vlSelf->tb__DOT__uut__DOT__cevrim_r), - 1,vlSelf->tb__DOT__bitti_mi); - VL_FINISH_MT("tb.v", 25, ""); -} - -void Vtb___024root___eval_act(Vtb___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - Vtb__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ Vtb___024root___eval_act\n"); ); -} - -VL_INLINE_OPT void Vtb___024root___nba_sequent__TOP__0(Vtb___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - Vtb__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ Vtb___024root___nba_sequent__TOP__0\n"); ); - // Body - vlSelf->__Vdly__tb__DOT__uut__DOT__y_2 = vlSelf->tb__DOT__uut__DOT__y_2; - vlSelf->__Vdly__tb__DOT__uut__DOT__y_1 = vlSelf->tb__DOT__uut__DOT__y_1; - vlSelf->__Vdly__tb__DOT__uut__DOT__y_0 = vlSelf->tb__DOT__uut__DOT__y_0; - if ((0x10U != (IData)(vlSelf->tb__DOT__uut__DOT__cevrim_r))) { - vlSelf->__Vdly__tb__DOT__uut__DOT__y_2 = (0x1fU - & ((IData)(vlSelf->tb__DOT__uut__DOT__y_2) - + - (1U - & ((IData)(vlSelf->tb__DOT__parca) - >> 2U)))); - vlSelf->__Vdly__tb__DOT__uut__DOT__y_1 = (0x1fU - & ((IData)(vlSelf->tb__DOT__uut__DOT__y_1) - + - (1U - & ((IData)(vlSelf->tb__DOT__parca) - >> 1U)))); - vlSelf->__Vdly__tb__DOT__uut__DOT__y_0 = (0x1fU - & ((IData)(vlSelf->tb__DOT__uut__DOT__y_0) - + - (1U - & (IData)(vlSelf->tb__DOT__parca)))); - } - if ((0x10U != (IData)(vlSelf->tb__DOT__cevrim))) { - vlSelf->tb__DOT__uut__DOT__cevrim_r = (0x1fU - & ((IData)(1U) - + (IData)(vlSelf->tb__DOT__uut__DOT__cevrim_r))); - } - vlSelf->tb__DOT__cevrim = vlSelf->tb__DOT__uut__DOT__cevrim_r; - vlSelf->tb__DOT__bitti_mi = (0x10U == (IData)(vlSelf->tb__DOT__uut__DOT__cevrim_r)); -} - -VL_INLINE_OPT void Vtb___024root___nba_sequent__TOP__1(Vtb___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - Vtb__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ Vtb___024root___nba_sequent__TOP__1\n"); ); - // Body - if (((IData)(vlSelf->tb__DOT__uut__DOT__y_0) > (IData)(vlSelf->tb__DOT__uut__DOT__y_1))) { - vlSelf->tb__DOT__yukseklik = (((IData)(vlSelf->tb__DOT__uut__DOT__y_0) - > (IData)(vlSelf->tb__DOT__uut__DOT__y_2)) - ? (IData)(vlSelf->tb__DOT__uut__DOT__y_0) - : (IData)(vlSelf->tb__DOT__uut__DOT__y_2)); - } else if (((IData)(vlSelf->tb__DOT__uut__DOT__y_0) - > (IData)(vlSelf->tb__DOT__uut__DOT__y_1))) { - vlSelf->tb__DOT__yukseklik = (((IData)(vlSelf->tb__DOT__uut__DOT__y_1) - > (IData)(vlSelf->tb__DOT__uut__DOT__y_2)) - ? (IData)(vlSelf->tb__DOT__uut__DOT__y_1) - : (IData)(vlSelf->tb__DOT__uut__DOT__y_2)); - } -} - -VL_INLINE_OPT void Vtb___024root___nba_sequent__TOP__2(Vtb___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - Vtb__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ Vtb___024root___nba_sequent__TOP__2\n"); ); - // Body - vlSelf->tb__DOT__uut__DOT__y_0 = vlSelf->__Vdly__tb__DOT__uut__DOT__y_0; - vlSelf->tb__DOT__uut__DOT__y_1 = vlSelf->__Vdly__tb__DOT__uut__DOT__y_1; - vlSelf->tb__DOT__uut__DOT__y_2 = vlSelf->__Vdly__tb__DOT__uut__DOT__y_2; -} - -void Vtb___024root___eval_nba(Vtb___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - Vtb__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ Vtb___024root___eval_nba\n"); ); - // Body - if (vlSelf->__VnbaTriggered.at(0U)) { - Vtb___024root___nba_sequent__TOP__0(vlSelf); - } - if (vlSelf->__VnbaTriggered.at(1U)) { - Vtb___024root___nba_sequent__TOP__1(vlSelf); - } - if (vlSelf->__VnbaTriggered.at(0U)) { - Vtb___024root___nba_sequent__TOP__2(vlSelf); - } -} - -void Vtb___024root___eval_triggers__act(Vtb___024root* vlSelf); -#ifdef VL_DEBUG -VL_ATTR_COLD void Vtb___024root___dump_triggers__act(Vtb___024root* vlSelf); -#endif // VL_DEBUG -void Vtb___024root___timing_resume(Vtb___024root* vlSelf); -#ifdef VL_DEBUG -VL_ATTR_COLD void Vtb___024root___dump_triggers__nba(Vtb___024root* vlSelf); -#endif // VL_DEBUG - -void Vtb___024root___eval(Vtb___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - Vtb__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ Vtb___024root___eval\n"); ); - // Init - VlTriggerVec<3> __VpreTriggered; - IData/*31:0*/ __VnbaIterCount; - CData/*0:0*/ __VnbaContinue; - // Body - __VnbaIterCount = 0U; - __VnbaContinue = 1U; - while (__VnbaContinue) { - __VnbaContinue = 0U; - vlSelf->__VnbaTriggered.clear(); - vlSelf->__VactIterCount = 0U; - vlSelf->__VactContinue = 1U; - while (vlSelf->__VactContinue) { - vlSelf->__VactContinue = 0U; - Vtb___024root___eval_triggers__act(vlSelf); - if (vlSelf->__VactTriggered.any()) { - vlSelf->__VactContinue = 1U; - if (VL_UNLIKELY((0x64U < vlSelf->__VactIterCount))) { -#ifdef VL_DEBUG - Vtb___024root___dump_triggers__act(vlSelf); -#endif - VL_FATAL_MT("tb.v", 1, "", "Active region did not converge."); - } - vlSelf->__VactIterCount = ((IData)(1U) - + vlSelf->__VactIterCount); - __VpreTriggered.andNot(vlSelf->__VactTriggered, vlSelf->__VnbaTriggered); - vlSelf->__VnbaTriggered.set(vlSelf->__VactTriggered); - Vtb___024root___timing_resume(vlSelf); - Vtb___024root___eval_act(vlSelf); - } - } - if (vlSelf->__VnbaTriggered.any()) { - __VnbaContinue = 1U; - if (VL_UNLIKELY((0x64U < __VnbaIterCount))) { -#ifdef VL_DEBUG - Vtb___024root___dump_triggers__nba(vlSelf); -#endif - VL_FATAL_MT("tb.v", 1, "", "NBA region did not converge."); - } - __VnbaIterCount = ((IData)(1U) + __VnbaIterCount); - Vtb___024root___eval_nba(vlSelf); - } - } -} - -void Vtb___024root___timing_resume(Vtb___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - Vtb__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ Vtb___024root___timing_resume\n"); ); - // Body - if (vlSelf->__VactTriggered.at(2U)) { - vlSelf->__VdlySched.resume(); - } -} - -#ifdef VL_DEBUG -void Vtb___024root___eval_debug_assertions(Vtb___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - Vtb__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ Vtb___024root___eval_debug_assertions\n"); ); -} -#endif // VL_DEBUG diff --git a/iverilog/tobb/lab7tetris/obj_dir/Vtb___024root__DepSet_ha183790c__0__Slow.cpp b/iverilog/tobb/lab7tetris/obj_dir/Vtb___024root__DepSet_ha183790c__0__Slow.cpp deleted file mode 100644 index c6fbe12..0000000 --- a/iverilog/tobb/lab7tetris/obj_dir/Vtb___024root__DepSet_ha183790c__0__Slow.cpp +++ /dev/null @@ -1,165 +0,0 @@ -// Verilated -*- C++ -*- -// DESCRIPTION: Verilator output: Design implementation internals -// See Vtb.h for the primary calling header - -#include "verilated.h" - -#include "Vtb___024root.h" - -VL_ATTR_COLD void Vtb___024root___eval_static__TOP(Vtb___024root* vlSelf); - -VL_ATTR_COLD void Vtb___024root___eval_static(Vtb___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - Vtb__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ Vtb___024root___eval_static\n"); ); - // Body - Vtb___024root___eval_static__TOP(vlSelf); -} - -VL_ATTR_COLD void Vtb___024root___eval_static__TOP(Vtb___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - Vtb__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ Vtb___024root___eval_static__TOP\n"); ); - // Body - vlSelf->tb__DOT__clk = 0U; - vlSelf->tb__DOT__uut__DOT__cevrim_r = 0U; - vlSelf->tb__DOT__uut__DOT__y_0 = 0U; - vlSelf->tb__DOT__uut__DOT__y_1 = 0U; - vlSelf->tb__DOT__uut__DOT__y_2 = 0U; -} - -VL_ATTR_COLD void Vtb___024root___eval_final(Vtb___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - Vtb__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ Vtb___024root___eval_final\n"); ); -} - -VL_ATTR_COLD void Vtb___024root___eval_triggers__stl(Vtb___024root* vlSelf); -#ifdef VL_DEBUG -VL_ATTR_COLD void Vtb___024root___dump_triggers__stl(Vtb___024root* vlSelf); -#endif // VL_DEBUG -VL_ATTR_COLD void Vtb___024root___eval_stl(Vtb___024root* vlSelf); - -VL_ATTR_COLD void Vtb___024root___eval_settle(Vtb___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - Vtb__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ Vtb___024root___eval_settle\n"); ); - // Init - CData/*0:0*/ __VstlContinue; - // Body - vlSelf->__VstlIterCount = 0U; - __VstlContinue = 1U; - while (__VstlContinue) { - __VstlContinue = 0U; - Vtb___024root___eval_triggers__stl(vlSelf); - if (vlSelf->__VstlTriggered.any()) { - __VstlContinue = 1U; - if (VL_UNLIKELY((0x64U < vlSelf->__VstlIterCount))) { -#ifdef VL_DEBUG - Vtb___024root___dump_triggers__stl(vlSelf); -#endif - VL_FATAL_MT("tb.v", 1, "", "Settle region did not converge."); - } - vlSelf->__VstlIterCount = ((IData)(1U) - + vlSelf->__VstlIterCount); - Vtb___024root___eval_stl(vlSelf); - } - } -} - -#ifdef VL_DEBUG -VL_ATTR_COLD void Vtb___024root___dump_triggers__stl(Vtb___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - Vtb__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ Vtb___024root___dump_triggers__stl\n"); ); - // Body - if ((1U & (~ (IData)(vlSelf->__VstlTriggered.any())))) { - VL_DBG_MSGF(" No triggers active\n"); - } - if (vlSelf->__VstlTriggered.at(0U)) { - VL_DBG_MSGF(" 'stl' region trigger index 0 is active: Internal 'stl' trigger - first iteration\n"); - } -} -#endif // VL_DEBUG - -VL_ATTR_COLD void Vtb___024root___stl_sequent__TOP__0(Vtb___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - Vtb__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ Vtb___024root___stl_sequent__TOP__0\n"); ); - // Body - vlSelf->tb__DOT__cevrim = vlSelf->tb__DOT__uut__DOT__cevrim_r; - vlSelf->tb__DOT__bitti_mi = (0x10U == (IData)(vlSelf->tb__DOT__uut__DOT__cevrim_r)); -} - -VL_ATTR_COLD void Vtb___024root___eval_stl(Vtb___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - Vtb__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ Vtb___024root___eval_stl\n"); ); - // Body - if (vlSelf->__VstlTriggered.at(0U)) { - Vtb___024root___stl_sequent__TOP__0(vlSelf); - } -} - -#ifdef VL_DEBUG -VL_ATTR_COLD void Vtb___024root___dump_triggers__act(Vtb___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - Vtb__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ Vtb___024root___dump_triggers__act\n"); ); - // Body - if ((1U & (~ (IData)(vlSelf->__VactTriggered.any())))) { - VL_DBG_MSGF(" No triggers active\n"); - } - if (vlSelf->__VactTriggered.at(0U)) { - VL_DBG_MSGF(" 'act' region trigger index 0 is active: @(posedge tb.clk)\n"); - } - if (vlSelf->__VactTriggered.at(1U)) { - VL_DBG_MSGF(" 'act' region trigger index 1 is active: @(posedge tb.bitti_mi)\n"); - } - if (vlSelf->__VactTriggered.at(2U)) { - VL_DBG_MSGF(" 'act' region trigger index 2 is active: @([true] __VdlySched.awaitingCurrentTime())\n"); - } -} -#endif // VL_DEBUG - -#ifdef VL_DEBUG -VL_ATTR_COLD void Vtb___024root___dump_triggers__nba(Vtb___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - Vtb__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ Vtb___024root___dump_triggers__nba\n"); ); - // Body - if ((1U & (~ (IData)(vlSelf->__VnbaTriggered.any())))) { - VL_DBG_MSGF(" No triggers active\n"); - } - if (vlSelf->__VnbaTriggered.at(0U)) { - VL_DBG_MSGF(" 'nba' region trigger index 0 is active: @(posedge tb.clk)\n"); - } - if (vlSelf->__VnbaTriggered.at(1U)) { - VL_DBG_MSGF(" 'nba' region trigger index 1 is active: @(posedge tb.bitti_mi)\n"); - } - if (vlSelf->__VnbaTriggered.at(2U)) { - VL_DBG_MSGF(" 'nba' region trigger index 2 is active: @([true] __VdlySched.awaitingCurrentTime())\n"); - } -} -#endif // VL_DEBUG - -VL_ATTR_COLD void Vtb___024root___ctor_var_reset(Vtb___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - Vtb__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ Vtb___024root___ctor_var_reset\n"); ); - // Body - vlSelf->tb__DOT__parca = VL_RAND_RESET_I(3); - vlSelf->tb__DOT__clk = VL_RAND_RESET_I(1); - vlSelf->tb__DOT__yukseklik = VL_RAND_RESET_I(5); - vlSelf->tb__DOT__cevrim = VL_RAND_RESET_I(5); - vlSelf->tb__DOT__bitti_mi = VL_RAND_RESET_I(1); - vlSelf->tb__DOT__uut__DOT__cevrim_r = VL_RAND_RESET_I(5); - vlSelf->tb__DOT__uut__DOT__y_0 = VL_RAND_RESET_I(5); - vlSelf->tb__DOT__uut__DOT__y_1 = VL_RAND_RESET_I(5); - vlSelf->tb__DOT__uut__DOT__y_2 = VL_RAND_RESET_I(5); - vlSelf->__Vdly__tb__DOT__uut__DOT__y_0 = VL_RAND_RESET_I(5); - vlSelf->__Vdly__tb__DOT__uut__DOT__y_1 = VL_RAND_RESET_I(5); - vlSelf->__Vdly__tb__DOT__uut__DOT__y_2 = VL_RAND_RESET_I(5); - vlSelf->__Vtrigrprev__TOP__tb__DOT__clk = VL_RAND_RESET_I(1); - vlSelf->__Vtrigrprev__TOP__tb__DOT__bitti_mi = VL_RAND_RESET_I(1); -} diff --git a/iverilog/tobb/lab7tetris/obj_dir/Vtb___024root__DepSet_hfe20aad3__0.cpp b/iverilog/tobb/lab7tetris/obj_dir/Vtb___024root__DepSet_hfe20aad3__0.cpp deleted file mode 100644 index 30de5fc..0000000 --- a/iverilog/tobb/lab7tetris/obj_dir/Vtb___024root__DepSet_hfe20aad3__0.cpp +++ /dev/null @@ -1,31 +0,0 @@ -// Verilated -*- C++ -*- -// DESCRIPTION: Verilator output: Design implementation internals -// See Vtb.h for the primary calling header - -#include "verilated.h" - -#include "Vtb__Syms.h" -#include "Vtb___024root.h" - -#ifdef VL_DEBUG -VL_ATTR_COLD void Vtb___024root___dump_triggers__act(Vtb___024root* vlSelf); -#endif // VL_DEBUG - -void Vtb___024root___eval_triggers__act(Vtb___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - Vtb__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ Vtb___024root___eval_triggers__act\n"); ); - // Body - vlSelf->__VactTriggered.at(0U) = ((IData)(vlSelf->tb__DOT__clk) - & (~ (IData)(vlSelf->__Vtrigrprev__TOP__tb__DOT__clk))); - vlSelf->__VactTriggered.at(1U) = ((IData)(vlSelf->tb__DOT__bitti_mi) - & (~ (IData)(vlSelf->__Vtrigrprev__TOP__tb__DOT__bitti_mi))); - vlSelf->__VactTriggered.at(2U) = vlSelf->__VdlySched.awaitingCurrentTime(); - vlSelf->__Vtrigrprev__TOP__tb__DOT__clk = vlSelf->tb__DOT__clk; - vlSelf->__Vtrigrprev__TOP__tb__DOT__bitti_mi = vlSelf->tb__DOT__bitti_mi; -#ifdef VL_DEBUG - if (VL_UNLIKELY(vlSymsp->_vm_contextp__->debug())) { - Vtb___024root___dump_triggers__act(vlSelf); - } -#endif -} diff --git a/iverilog/tobb/lab7tetris/obj_dir/Vtb___024root__DepSet_hfe20aad3__0__Slow.cpp b/iverilog/tobb/lab7tetris/obj_dir/Vtb___024root__DepSet_hfe20aad3__0__Slow.cpp deleted file mode 100644 index efbffff..0000000 --- a/iverilog/tobb/lab7tetris/obj_dir/Vtb___024root__DepSet_hfe20aad3__0__Slow.cpp +++ /dev/null @@ -1,25 +0,0 @@ -// Verilated -*- C++ -*- -// DESCRIPTION: Verilator output: Design implementation internals -// See Vtb.h for the primary calling header - -#include "verilated.h" - -#include "Vtb__Syms.h" -#include "Vtb___024root.h" - -#ifdef VL_DEBUG -VL_ATTR_COLD void Vtb___024root___dump_triggers__stl(Vtb___024root* vlSelf); -#endif // VL_DEBUG - -VL_ATTR_COLD void Vtb___024root___eval_triggers__stl(Vtb___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - Vtb__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ Vtb___024root___eval_triggers__stl\n"); ); - // Body - vlSelf->__VstlTriggered.at(0U) = (0U == vlSelf->__VstlIterCount); -#ifdef VL_DEBUG - if (VL_UNLIKELY(vlSymsp->_vm_contextp__->debug())) { - Vtb___024root___dump_triggers__stl(vlSelf); - } -#endif -} diff --git a/iverilog/tobb/lab7tetris/obj_dir/Vtb___024root__Slow.cpp b/iverilog/tobb/lab7tetris/obj_dir/Vtb___024root__Slow.cpp deleted file mode 100644 index 68f2566..0000000 --- a/iverilog/tobb/lab7tetris/obj_dir/Vtb___024root__Slow.cpp +++ /dev/null @@ -1,26 +0,0 @@ -// Verilated -*- C++ -*- -// DESCRIPTION: Verilator output: Design implementation internals -// See Vtb.h for the primary calling header - -#include "verilated.h" - -#include "Vtb__Syms.h" -#include "Vtb___024root.h" - -void Vtb___024root___ctor_var_reset(Vtb___024root* vlSelf); - -Vtb___024root::Vtb___024root(Vtb__Syms* symsp, const char* v__name) - : VerilatedModule{v__name} - , __VdlySched{*symsp->_vm_contextp__} - , vlSymsp{symsp} - { - // Reset structure values - Vtb___024root___ctor_var_reset(this); -} - -void Vtb___024root::__Vconfigure(bool first) { - if (false && first) {} // Prevent unused -} - -Vtb___024root::~Vtb___024root() { -} diff --git a/iverilog/tobb/lab7tetris/obj_dir/Vtb__main.cpp b/iverilog/tobb/lab7tetris/obj_dir/Vtb__main.cpp deleted file mode 100644 index a053882..0000000 --- a/iverilog/tobb/lab7tetris/obj_dir/Vtb__main.cpp +++ /dev/null @@ -1,34 +0,0 @@ -// Verilated -*- C++ -*- -// DESCRIPTION: main() calling loop, created with Verilator --main - -#include "verilated.h" -#include "Vtb.h" - -//====================== - -int main(int argc, char** argv, char**) { - // Setup context, defaults, and parse command line - Verilated::debug(0); - const std::unique_ptr contextp{new VerilatedContext}; - contextp->commandArgs(argc, argv); - - // Construct the Verilated model, from Vtop.h generated from Verilating - const std::unique_ptr topp{new Vtb{contextp.get()}}; - - // Simulate until $finish - while (!contextp->gotFinish()) { - // Evaluate model - topp->eval(); - // Advance time - if (!topp->eventsPending()) break; - contextp->time(topp->nextTimeSlot()); - } - - if (!contextp->gotFinish()) { - VL_DEBUG_IF(VL_PRINTF("+ Exiting without $finish; no events left\n");); - } - - // Final model cleanup - topp->final(); - return 0; -} diff --git a/iverilog/tobb/lab7tetris/obj_dir/Vtb__ver.d b/iverilog/tobb/lab7tetris/obj_dir/Vtb__ver.d deleted file mode 100644 index 861eaa9..0000000 --- a/iverilog/tobb/lab7tetris/obj_dir/Vtb__ver.d +++ /dev/null @@ -1 +0,0 @@ -obj_dir/Vtb.cpp obj_dir/Vtb.h obj_dir/Vtb.mk obj_dir/Vtb__Syms.cpp obj_dir/Vtb__Syms.h obj_dir/Vtb___024root.h obj_dir/Vtb___024root__DepSet_ha183790c__0.cpp obj_dir/Vtb___024root__DepSet_ha183790c__0__Slow.cpp obj_dir/Vtb___024root__DepSet_hfe20aad3__0.cpp obj_dir/Vtb___024root__DepSet_hfe20aad3__0__Slow.cpp obj_dir/Vtb___024root__Slow.cpp obj_dir/Vtb__main.cpp obj_dir/Vtb__ver.d obj_dir/Vtb_classes.mk : /usr/bin/verilator_bin /usr/bin/verilator_bin tb.v tetris.v diff --git a/iverilog/tobb/lab7tetris/obj_dir/Vtb__verFiles.dat b/iverilog/tobb/lab7tetris/obj_dir/Vtb__verFiles.dat deleted file mode 100644 index a1fc75d..0000000 --- a/iverilog/tobb/lab7tetris/obj_dir/Vtb__verFiles.dat +++ /dev/null @@ -1,20 +0,0 @@ -# DESCRIPTION: Verilator output: Timestamp data for --skip-identical. Delete at will. -C "--binary tb.v tetris.v --timing" -S 12244816 28045 1719496600 881980186 1680199511 0 "/usr/bin/verilator_bin" -T 2837 6675 1720894776 185681955 1720894776 185681955 "obj_dir/Vtb.cpp" -T 2631 6439 1720894776 185681955 1720894776 185681955 "obj_dir/Vtb.h" -T 1722 7381 1720894776 185681955 1720894776 185681955 "obj_dir/Vtb.mk" -T 730 216 1720894776 185681955 1720894776 185681955 "obj_dir/Vtb__Syms.cpp" -T 884 225 1720894776 185681955 1720894776 185681955 "obj_dir/Vtb__Syms.h" -T 1524 6695 1720894776 185681955 1720894776 185681955 "obj_dir/Vtb___024root.h" -T 9237 7333 1720894776 185681955 1720894776 185681955 "obj_dir/Vtb___024root__DepSet_ha183790c__0.cpp" -T 6922 7184 1720894776 185681955 1720894776 185681955 "obj_dir/Vtb___024root__DepSet_ha183790c__0__Slow.cpp" -T 1304 7283 1720894776 185681955 1720894776 185681955 "obj_dir/Vtb___024root__DepSet_hfe20aad3__0.cpp" -T 823 7044 1720894776 185681955 1720894776 185681955 "obj_dir/Vtb___024root__DepSet_hfe20aad3__0__Slow.cpp" -T 644 6712 1720894776 185681955 1720894776 185681955 "obj_dir/Vtb___024root__Slow.cpp" -T 955 7337 1720894776 185681955 1720894776 185681955 "obj_dir/Vtb__main.cpp" -T 471 7389 1720894776 185681955 1720894776 185681955 "obj_dir/Vtb__ver.d" -T 0 0 1720894776 185681955 1720894776 185681955 "obj_dir/Vtb__verFiles.dat" -T 1646 7340 1720894776 185681955 1720894776 185681955 "obj_dir/Vtb_classes.mk" -S 376 233 1720894754 765684145 1720894754 765684145 "tb.v" -S 820 230 1720894095 565675203 1720894095 565675203 "tetris.v" diff --git a/iverilog/tobb/lab7tetris/obj_dir/Vtb_classes.mk b/iverilog/tobb/lab7tetris/obj_dir/Vtb_classes.mk deleted file mode 100644 index fa1d0ad..0000000 --- a/iverilog/tobb/lab7tetris/obj_dir/Vtb_classes.mk +++ /dev/null @@ -1,54 +0,0 @@ -# Verilated -*- Makefile -*- -# DESCRIPTION: Verilator output: Make include file with class lists -# -# This file lists generated Verilated files, for including in higher level makefiles. -# See Vtb.mk for the caller. - -### Switches... -# C11 constructs required? 0/1 (always on now) -VM_C11 = 1 -# Timing enabled? 0/1 -VM_TIMING = 1 -# Coverage output mode? 0/1 (from --coverage) -VM_COVERAGE = 0 -# Parallel builds? 0/1 (from --output-split) -VM_PARALLEL_BUILDS = 0 -# Tracing output mode? 0/1 (from --trace/--trace-fst) -VM_TRACE = 0 -# Tracing output mode in VCD format? 0/1 (from --trace) -VM_TRACE_VCD = 0 -# Tracing output mode in FST format? 0/1 (from --trace-fst) -VM_TRACE_FST = 0 - -### Object file lists... -# Generated module classes, fast-path, compile with highest optimization -VM_CLASSES_FAST += \ - Vtb \ - Vtb___024root__DepSet_hfe20aad3__0 \ - Vtb___024root__DepSet_ha183790c__0 \ - Vtb__main \ - -# Generated module classes, non-fast-path, compile with low/medium optimization -VM_CLASSES_SLOW += \ - Vtb___024root__Slow \ - Vtb___024root__DepSet_hfe20aad3__0__Slow \ - Vtb___024root__DepSet_ha183790c__0__Slow \ - -# Generated support classes, fast-path, compile with highest optimization -VM_SUPPORT_FAST += \ - -# Generated support classes, non-fast-path, compile with low/medium optimization -VM_SUPPORT_SLOW += \ - Vtb__Syms \ - -# Global classes, need linked once per executable, fast-path, compile with highest optimization -VM_GLOBAL_FAST += \ - verilated \ - verilated_timing \ - verilated_threads \ - -# Global classes, need linked once per executable, non-fast-path, compile with low/medium optimization -VM_GLOBAL_SLOW += \ - - -# Verilated -*- Makefile -*- diff --git a/iverilog/tobb/lab7tetris/obj_dir/verilated.d b/iverilog/tobb/lab7tetris/obj_dir/verilated.d deleted file mode 100644 index d1c18c3..0000000 --- a/iverilog/tobb/lab7tetris/obj_dir/verilated.d +++ /dev/null @@ -1,12 +0,0 @@ -verilated.o: /usr/share/verilator/include/verilated.cpp \ - /usr/share/verilator/include/verilated_config.h \ - /usr/share/verilator/include/verilatedos.h \ - /usr/share/verilator/include/verilated_imp.h \ - /usr/share/verilator/include/verilated.h \ - /usr/share/verilator/include/verilated_types.h \ - /usr/share/verilator/include/verilated_funcs.h \ - /usr/share/verilator/include/verilated_syms.h \ - /usr/share/verilator/include/verilated_sym_props.h \ - /usr/share/verilator/include/verilated_threads.h \ - /usr/share/verilator/include/verilated_trace.h \ - /usr/share/verilator/include/verilated_trace_defs.h diff --git a/iverilog/tobb/lab7tetris/obj_dir/verilated.o b/iverilog/tobb/lab7tetris/obj_dir/verilated.o deleted file mode 100644 index d7daedd1104a533e54952bccf88e3dca6daaa84d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 197480 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 We|`$jo$~I=n|xL;yY_Jl?f(zjcDJ$s diff --git a/iverilog/tobb/lab7tetris/obj_dir/verilated_threads.d b/iverilog/tobb/lab7tetris/obj_dir/verilated_threads.d deleted file mode 100644 index 0df0edd..0000000 --- a/iverilog/tobb/lab7tetris/obj_dir/verilated_threads.d +++ /dev/null @@ -1,7 +0,0 @@ -verilated_threads.o: /usr/share/verilator/include/verilated_threads.cpp \ - /usr/share/verilator/include/verilatedos.h \ - /usr/share/verilator/include/verilated_threads.h \ - /usr/share/verilator/include/verilated.h \ - /usr/share/verilator/include/verilated_config.h \ - /usr/share/verilator/include/verilated_types.h \ - /usr/share/verilator/include/verilated_funcs.h diff --git a/iverilog/tobb/lab7tetris/obj_dir/verilated_threads.o b/iverilog/tobb/lab7tetris/obj_dir/verilated_threads.o deleted file mode 100644 index bce79c746ca0082f6e8f843d2d00f1c0951d81d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30832 zcmd6P3v^t?ndWV^Wh;KP+B^~shD0*jL?$5AvTP)tlBKq8+btt3+16l_R$FRY!jf9F zx^3AI(nPkSrcvTavM0_Y+0D#mcbOz-Lw2$(?96~b#*oK^#3w^Io0)?*hh!ikU?4*{ z3$xnqulxVqrQ7$~YR8_LI=)?XzxrSG*Yj4D^{HTZV~NM(H8^;TTMduAXz?RE@-NLQ z*=$T0pH{TBc(20~z(c&(b6k&jEvFk0ufww*&kc+UYMo!;^_-0Pug7{WW--fuE z(=CWMaJm(78>fSaH*&fivB~L8h&OXOjJN~O7Jk2jhD;rlM21dhq-) zr|(3(lheBp-^J-qa2!G0%jqb`yE*Pd+|TJ4$9oX(<@5l@gNX0u^gfP<5D#;DgyT5k zQBL23IKk;L#7R!45bx*o0glHJALR5Q#P{NvdBk&c$xL86b6`;h@%IC#%&B$%I5#)< zDl&~OGxOdnlrX3M>KGy`J)zP@vXry#9hF3{Bx-glesijnxLdZhbZ;YBTf^D7-^?sA zv+=S}({Gd2;cU$4IP!Ax@^I!K74H+rK`$@n#4}~HKkqT8?k(GSSIe%JyOhvl=EQ3i zX6C-?GD}+)sV6GIW=@=_$WsKqkCJ>CB{8SEtIJQeRhL`lKh`;87!LwEd@6PM+sEdf zOTG0VG7nFumMD3%Z<3suV=dbQ(~mD@>qD8}sREc&`)Z)x|Ms`c%o~b482J8^)Ud;u z%{`VqnWwqffp<=}4j5*p#GE?hSE9_vs9n)xW;T=sro&U;BDa#Xu3i{C@ie^C)$?Sf zqS!oYW;TzTnQU6UW+zqjm-&jAq82@o2|VM0SP;Lia%Nv9UzPh8ldcCh`pZ|s;z=;8 z+%x7JmmY<@&iv=OIg9Di`IfT|aGFi8Bv+L`nyjuc(LDTfKQS$bykznH0##hI^R5|~ z{5DmmIYDC&dQZ8nU71g%gMpW= zmZChd#GGnJJ-{NW?E7F&hThvzBkdI(O}|Rs^CUHRWtFO{XU)trRxvU|Wc--lylJc= zxx&oUniD6%I_95UNo7LS{$HywC9@w2&7GM2E_|VSk5uKXm%KxyEYK>vRdni2EuUzK zpf9K}W6T&&P&-x~D4*gIqR*-f6#pE3&oHw){ATt*nVD@zX@5R<8iR*&qG}&aCzI7? z_Wm;TP10*N{XThFU^;!Zd<0hImOC90a|I{j&@-j$b<%d+jur#j~{ zJC@IuO*}Vuru?b)eUb1|N2@jORr)V|Lnrlv48E*LgSYI-pxbenF zMr)fnR0iy=~XqLg)%RN%7Z6Do)hJtpYB-mM){-DFgdj< z7D>u9{ z`^#L}mxkBOnopr`lz-<%^D%T|3Li16X3TwWSD@8-%ze`pVbAMf&lxlG7CF4>2gyGw z_b&}+H$djIXa-MLl&`$~m2js0UC4c$eY(_K^OpJ4Z%FP>&BraVB=-mAzEhBUrN86I zZ>bVfu=S1b8f(<+*!MDAkV5;ttE|KGYb2q9My6c%@|AxwT)mu{ zagC}9j1=SMO@En2pGsbBD(_94MEN(qLND;{#xt1ZmQQYc7emPSEaZfNVrE3@-qG+B z@{}Bmv=fsM()M8AfD9zT!!IZ6&FsD&0cha1wDL4C>o^ckoT#Ic%*@Ssd{<)#*jM_n z$9UAE1_NLQo)4}qo%I-B^OR1O7(extzUMI>F0t~zQswbqT3YE{h1cs!Z!sD#H;fX) z^GVnyf%rRCJn1n$?J51H$N0Rb6zRVu`J}NPak%tBk8zxl6;(iPDm`Ev@zf}i%Quz& znaAiU{hY^m02X+R?-C{V?ZxO{bG>CVM*34_2F72j$8)Eoq0DkX_EIx@<6#U?>UHM~ zuY1sJ=6;Y`s=)k@WX@Q;JZP!qQEq`T@meEBPE0EQ!?4mRH z4QGd_5;0Mraix}`^tq|Tn$1Jmo2$c_eoPiq{neF9YdG_342@yTE|r*@Ydm4FTN8xL z=!0c6cZD{Vzokh9VVNZT~;}GI?J|VDbcDeB~UUYU6vA< zckUf6Ul}wWZ1ztEA#}`I#K>YoN`fAzmO^^zWI{1=UAa6rW_DR~2o3Jn(+rzgRBh6j z@}Adh`r-Tm(rmi6nn%bNXf!Dg&V({^sB6e1R@=&WNbXLJ31B%g|{?CB6~+tk-qWqKz$?} z@7os{jSmg>9Sqh7gH)#Z0sKvouF=SFbYCnoHV{q3`Xk9GeJNQ1`RggaFP<7nBJaGE zh%m(Ub=zZ!!J#N*Z68b|Q_-OfFk2(wWT1ZgQ1<{P)c($RoIc82!j`V&`lOfE@$GtjVoXh%GO3|0_WpR=hoj#7>% zgIx`guJw_i3ND&0xGPz|R`<_nGJ)xTbST;vBela+GhNZp{$Q~cb5^bYhBDh*TW_qa zX^ZV1jE+TBz3>#hqltl^|_8Jp@kwAJv8`#r0cFDW~Qanld{O3CAxusR2f_8%zF za7%&cdQ{3V=!200VbV-=EKQjR(q@)7LoVJq2N{%ZK z|BTbLr(&2s|3t|>kYFg;XE^Utid%gCJCIX{WEmT;R^h;pmbCaPCcMxdUFxf7^Z8qR zWx-{@kcXtQ=Vs<1*%Zj0P8&u(>}QPjW~e;(F7=gdSk{)a=`iQh9)}V0RYq9;R~e@= zQ6Tw`*f0~=3C6xhaoFeoT*(Gs#b>=6e3es+Hu!2DDsA!A9bMe!Yn)iJ$=B9{5nx`NZHW<>^SpmL)r-W{8Ln>he*fKMX-FL zw9QwS^3?>DDlP%F<)1KL74dP~A^a7_TN%HfeQbCM$hW^Xq@^uf2Y*T#KU)&=RZNjj zA6nGrt2s(Oomjlt*Ie?0`0-&%iV(((Xy-szrkgc z4lcVH`P2_7oWdh^updw|_Cvd`x8w^;eKpVzr(2$Yerhv+&-$+=AMQMV#>3J0Rp9Zb{Z(vt7?1Ex!63)!ApgXd_dLg47StW{xga^2lpn zcIgI?P#DO>MaG+Rg*gVA&@~0{hk%r5IJ;ZXc@5ezE(~6Sc8&{!H#h3e&+{6z!(14= z2KAuA;8nZN^Koh$WT)6CV=Ga4jmG)J{N^=i$GR|h4cfgf3|^}R6l8b}+SM)$UZbTD z1mZPR?=8sl8o>gL0Ixy2;Dy0!Y$^b0FB=0*0ZxF|2)p34i(VMK#_fe55U)YI?S;W> z(C&L-@EYBPAP}!XyYhv>o11m#=Xnj=1kor_6MzF(`g6L|g?@IN!?#Ka0>!>@o>8Bu}N zd_ymuCC+x10bi|+4{H4d`c*FUwJ!K3B}dIDO1E0CAr*6>zgN-c$C)z4Wf)&_q5rlE z{d2%C!8nOxs~~b-a>3tGa$1<$I+vrD5E#XWxlAN_fv?uaH?*6m zQQ^3YoM{()!UcaGIMtVr<%-R(GyY-5n>k*Lp-N~NQqdJI_%$xL37quW<@Yj9=c5$V zx)$+%;8n&w3ZtJ&PGwx^|0CnyV>;>A|AX-t7;okHC%~P`_4mM6Yx9weKUZOBcEUda zoXT~D#}cg8Y)DQ5car~KfL9qQw!+A*B;H~<|4)t6yfy^YH5mGxHQ|~)!Mu% zYwRDo;IAn>Kc9B6Wp!vEPI@=F;JaM#yIt@@z^h8ebAFI^{-1%b*5-Gy=T(L0=l4_0 z`EgW`lbtc(tF?LmTBd*2h5mU(pI;Bq`kz7xgp;35u9rtG*r*2Xr1wUEl}w{Yw*&v6 z4sd$6i<}35uh!Nf(yrbFPWIf4`IEvkR%Bd(3Cjs@1zu%H@3QV-5X*jrN0>WbmcIZF z6$RmWMZY_TH*jhRmK0S+Uk;b?^ETj4at0KAEJsh@0~96{zQ=mOukii{g%9L#RFewd zRrp{I7riGGzAuOObLv`5tW~+MYa=%=e-XIo$}u7FEk!?)gG^5SUg7Z^E_z$h(N-GQ z<#1`w51`#T$v5`Pc4EZZ1{|yH8yz(wcZLJ?V*{yVfBe8mcXVuD=l|?y=rgw96QGvV|`@1I`Xvkf(tx)LvTFSw>8!m#I|Qw0DGvetOYx< z4jgrXXu?Y56v8OA0z1Whbt==FNqd&GMni@(*`eQ?}BsN`bDg!J4=d$~9JF=Qh zYa`q1>+AdCBmINP!T3mIe>5=|-8~eGL`M$Z5ZN}O_?%p+$+$4>qh8v_g%KCHpyC2` zIN$Cc92<>~#V)AewmK!QAKh>G0`@k`-q=_&5kDyQUhIBnRbcn_d^^2(XA){$;sSAR zXv;OAi(SxM)4JG-thRCS{kfhlZ=^<~pDhHN*M3Q)(1d8l2`N zZcc%<+lM-6u7(jfHEXR8-mO?{aKM7$k75rd>#0T(m?m)I7#WI=B_k;$`re8=Ng*I)a6I?9Rwsx(HY~79X+5P%~_YINANIWqd9f}MlV~Hs4WraGi zAn004%aGCAyCbMiy$1}%M)oELtRB$0xevJ`2h=QNUnbrV?eC|i8D#Zpf!MaAHWAxX zi}UvJ@yKW_F%}<*4h<#`M)vc%G0<4Jt_akP#FK-24o2c5Y9ie>a$s&b7uyPuL%HvIZq~ z)gN$Kj^}I3g@9|LEBObk*DWO|X=7@nFPhprkc`B}`(mTC?xzW$Z#){=9osuN66uR3 z`vw?E#MErbZ!z>$D_45|o!uDAFsI_eO?3C*{y+ee_MUj656w8G`nGb?A7uD~3a@%l z$Z1B#Ah}fyeKeIhG*PSXZAGTD^R33c@PWG#jSHhMJ`@%@HXFmS;oV8i+9v`JqvpszKhL&*T_Kh36g58nsmJQ(`%>>=% zmZsc-XKgYvrfTY}P@rK+Zdi{#eCY6_*DoYEYu8aSTqnxYlp-$2<+G6|kXdJUvAQ%v? z=AB3!kE;K__CDVA@p%zO3Q2dn))78cuf*1btjs+`Rm;X}@ z*X>zcB+h24{-XB_9J{JO_5|>VA8;(K0^#*|1i#9Hm7Tghy8QJTy__>qJ>H<Qn#)g|^U(QvwjA-J3mk^MSOHd7#+ZkGr>y;Go=Zf6L-l0XEqs|}B| zXE~R$+Qc;qyL{8{T&)kG!)4HBPwP6lyjQ= ztjjOe@Vk)~dvJWH0@3S!Sfk-|swwof8cx0ve65D-^eq}btkF{+r$Bo3a$TuV3)k%- z-%=oYU5?mkZ-+GIP#}7}zt9?k0^xdn4Jy>ab-zt$_&rEVd9xZmpy6N8@VJJ5MZ@)Z z@VgqW%XwVGbvY+BT$l4>4cGm-O2fyH7W?)3()~<*hXVOWpHIo>6bRSn(@!eY!kdv6 z`G4Yqe_6wIJJ&Hz^{DrE8UrbiUcJA6QK1%2HjCcJG+Zz5QkQXn$<=+^PvOPSKpDrx zCS_zuMTCDEj}v`bQCL5cPxSX|xFiX8(<^OHXemCM-Xj{JuJ^EpOY&@TJ|jekbvYRg zm*m;xJSapqIS**K?&qT#uIt^Y;WDq0-d!55%bC=0T@KCT5_CDz7bvfi2}pherzz6q zOW!A4mwycb9CZ2D3W&Ip(mPNTm}!#_fV2o&9}Qr1s{hSRr%gj+OR)}oX*py8AhU)*QIKg@!T zXt=a(%KEB?QHsU#5L>l%Kg1*zY^&~Tz}HKRd^K;#XSS|}o`2gc+znRHabL|#C{d7(2zXozl?Kf`LFlny#5R44yizOLDs3G z+ix-3++x{O#4W0`@;lwZtnG^r564FEIfpBkvD)@6+pfc%H(Z0ZB*g|IdlFGxx~$!s zh^OQORK63>GrkNP5Bffdh-v18?5(8nUWtc4Q**H!eTPS}&Xer3vO&aMcJPYL?2Q3BN{sz1+ls`?(2)g~Wf4ETohZOgGemXB%DF1N> zemZAZDE~Jc_*WOf|A+&BYZ3f^?ZAI^5&X|N@K+bX|1$^ve^&(mX$StzMex7I{CfY} zQUw3|%&)iKj~2nd$YTl6+waGU;P*T5*A&5jr33$H5&Sg{{B&-%(DvWpz@IFFU-q+g z{~aoVKg{~|`lEBOh1xIs=DPm-i{S5d&`%emYlNDF3$|^iLMSFZbs3^3!?bLiJBO z=+73x|04(fJB#3d(Sg6N2>zEH`1^|BKg0aG|L9)RLjCuygZ_~s_!rUP1cE+((0P|# zecW2o>pvI&Z(R7VWd5aM zILCJVzXGoOZ_B8m#Ug_EIgK>6e<{Dwnlqe;w=B z&yvBe&TT1{@Sj}t_pp8{GleuBTL0Vi(|ug0@;9^oD)8vR=4RtV0G!G{>7bwbzg>UU zMgMNrZ~wNl>!)*HC;OAkFZX|>40irG7yBP$`%Pv{Bc|^cyZr}U^#3>3ub;`2D7$_- zS9bEB{E0oi{%&&6|0NgwPqTjeoe#VI&%5ZayM?U9`LPwL_Ct`p{D0%3|6SHE^em>J z{ExZlA7}m2Pty=U_v%ER;4i!AmrEoYMKQ?{8 zbT02y{|~c%z5ZJr^dEK6|KC}^_({yLm;V75{VzI{Kj@&J?gKcL{|5`y|E!DtGYpP%FSa@6edd?@H5ON4|NRp9Q3Rve#$R@;#nH=* zX~diG*xT>N(NCQG_XuBVI>G!B+0+;`PdVuyVExm~m_{7NW7q%3tiQx2ILQ;Qe%FXZ ziQgzq;kfWyueskz=Ks?iVkO8{J$ymz*FmIfsIwzT`%NQF>o>do-(>yv`dhsW#0ck_ zKi_fTuV?29hXY-)_F!0%N5J*@vl zW=zleX9q%{>NSP zceYqudi&`CWY_<308ak@JnR3Ot{iE*{*Qv+$^Qea{}}V95!3gZUH_nq{yM&ND1SeV z#T4l8chUbY>mO&vG~!)&?D}6~{r3Lfi+yzp*IQBUw=$Qq5+A`hMgH^J9CM8M{Wf~h zFYp!Mck zZtL%dI@RAR4)wPOOu{er-{oR|BkSi#)aCdE_@s;dCNqj2p%?w~J`R2-`zvU%ghDJNd7f^;e1_j)h;~Ch$A? z?~H@~d%z_8qJPjue=qB=5k)Tg`(5-mwpk3l%$G(?{~yJ!|5X?LldQjy`6Uv5d4JhO z|8drTj0w|-Q+R}5%5P$xavFc8SwBZCCC@Ja{XJNx`uhnpiaw#Yzuyafr~0d*j}-*5 zGmZ2(9^n^!+C~413)KHtF8Z4t^dEB2Pk+aj%3p^^52smwr4AxZv=k)%C+4?M?bp6> z!db#6luI#B5oVjdbBF5m_sI1i{u8Ve{L23VaNNV?Z=_6wG#)y?5q|N%qi)doKZqZM xPLz+r19;ZpvGZg4EZF-5Wb|H5zld!MczgNDO&*ZF diff --git a/iverilog/tobb/lab7tetris/obj_dir/verilated_timing.d b/iverilog/tobb/lab7tetris/obj_dir/verilated_timing.d deleted file mode 100644 index 87a70f9..0000000 --- a/iverilog/tobb/lab7tetris/obj_dir/verilated_timing.d +++ /dev/null @@ -1,7 +0,0 @@ -verilated_timing.o: /usr/share/verilator/include/verilated_timing.cpp \ - /usr/share/verilator/include/verilated_timing.h \ - /usr/share/verilator/include/verilated.h \ - /usr/share/verilator/include/verilatedos.h \ - /usr/share/verilator/include/verilated_config.h \ - /usr/share/verilator/include/verilated_types.h \ - /usr/share/verilator/include/verilated_funcs.h diff --git a/iverilog/tobb/lab7tetris/obj_dir/verilated_timing.o b/iverilog/tobb/lab7tetris/obj_dir/verilated_timing.o deleted file mode 100644 index 61f79d6a2ad6c82f4c072552888f930f41708821..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8664 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 oB5*I;k diff --git a/iverilog/tobb/lab7tetris/run.sh b/iverilog/tobb/lab7tetris/run.sh deleted file mode 100644 index 021452c..0000000 --- a/iverilog/tobb/lab7tetris/run.sh +++ /dev/null @@ -1,5 +0,0 @@ -iverilog *.v && vvp a.out -if [ -f "dump.vcd" ]; then - gtkwave dump.vcd - rm dump.vcd -fi diff --git a/iverilog/tobb/lab7tetris/tb.v b/iverilog/tobb/lab7tetris/tb.v deleted file mode 100644 index 7837404..0000000 --- a/iverilog/tobb/lab7tetris/tb.v +++ /dev/null @@ -1,45 +0,0 @@ -module tb(); - -reg [2:0] parca; -reg clk = 0; - -wire [4:0] yukseklik; -wire [4:0] cevrim; -wire bitti_mi; - -tetris uut( - .parca(parca), - .clk(clk), - .yukseklik(yukseklik), - .cevrim(cevrim), - .bitti_mi(bitti_mi) -); - -always begin - clk = ~clk; #5; -end - -initial begin - $dumpvars; - parca = 3'b101; #10; - parca = 3'b000; #10; - parca = 3'b101; #10; - parca = 3'b000; #10; - parca = 3'b101; #10; - parca = 3'b000; #10; - parca = 3'b101; #10; - parca = 3'b000; #10; - parca = 3'b101; #10; - parca = 3'b000; #10; - parca = 3'b101; #10; - parca = 3'b000; #10; - parca = 3'b101; #10; - parca = 3'b000; #10; - parca = 3'b101; #10; - parca = 3'b000; #10; - parca = 3'b101; #10; - parca = 3'b000; #10; - $finish; -end - -endmodule diff --git a/iverilog/tobb/lab7tetris/tetris.v b/iverilog/tobb/lab7tetris/tetris.v deleted file mode 100644 index 623e9b1..0000000 --- a/iverilog/tobb/lab7tetris/tetris.v +++ /dev/null @@ -1,41 +0,0 @@ -module tetris( - input clk, - input [2:0] parca, - output reg [4:0] yukseklik, - output [4:0] cevrim, - output bitti_mi -); - -reg [4:0] cevrim_r = 0; -reg [4:0] y_0 = 0; -reg [4:0] y_1 = 0; -reg [4:0] y_2 = 0; -assign cevrim = cevrim_r; -assign bitti_mi = cevrim_r == 5'b10000; - -always @(posedge clk) begin - if (cevrim != 5'b10000) begin - cevrim_r <= cevrim_r + 5'd1; - y_0 <= y_0 + {4'b0000, parca[0]}; - y_1 <= y_1 + {4'b0000, parca[1]}; - y_2 <= y_2 + {4'b0000, parca[2]}; - end -end - -/* always @(posedge bitti_mi) - yukseklik <= y_0 > y_1 - ? y_0 > y_2 ? y_0 : y_2 - : y_1 > y_2 ? y_1 : y_2; - */ - -always @(posedge bitti_mi) begin - if (y_0 > y_1) begin - if (y_0 > y_2) yukseklik <= y_0; - else yukseklik <= y_2; - end else if (y_0 > y_1) begin - if (y_1 > y_2) yukseklik <= y_1; - else yukseklik <= y_2; - end -end - -endmodule diff --git a/iverilog/tobb/labs/lab2/impl/gwsynthesis/lab2.log b/iverilog/tobb/labs/lab2/impl/gwsynthesis/lab2.log deleted file mode 100644 index c996c0a..0000000 --- a/iverilog/tobb/labs/lab2/impl/gwsynthesis/lab2.log +++ /dev/null @@ -1,24 +0,0 @@ -GowinSynthesis start -Running parser ... -Analyzing Verilog file 'C:\cygwin64\home\koray\verilog\lab2\src\BitM.v' -Compiling module 'BitM'("C:\cygwin64\home\koray\verilog\lab2\src\BitM.v":1) -NOTE (EX0101) : Current top module is "BitM" -[5%] Running netlist conversion ... -Running device independent optimization ... -[10%] Optimizing Phase 0 completed -[15%] Optimizing Phase 1 completed -[25%] Optimizing Phase 2 completed -Running inference ... -[30%] Inferring Phase 0 completed -[40%] Inferring Phase 1 completed -[50%] Inferring Phase 2 completed -[55%] Inferring Phase 3 completed -Running technical mapping ... -[60%] Tech-Mapping Phase 0 completed -[65%] Tech-Mapping Phase 1 completed -[75%] Tech-Mapping Phase 2 completed -[80%] Tech-Mapping Phase 3 completed -[90%] Tech-Mapping Phase 4 completed -[95%] Generate netlist file "C:\cygwin64\home\koray\verilog\lab2\impl\gwsynthesis\lab2.vg" completed -[100%] Generate report file "C:\cygwin64\home\koray\verilog\lab2\impl\gwsynthesis\lab2_syn.rpt.html" completed -GowinSynthesis finish diff --git a/iverilog/tobb/labs/lab2/impl/gwsynthesis/lab2.prj b/iverilog/tobb/labs/lab2/impl/gwsynthesis/lab2.prj deleted file mode 100644 index 344ce31..0000000 --- a/iverilog/tobb/labs/lab2/impl/gwsynthesis/lab2.prj +++ /dev/null @@ -1,19 +0,0 @@ - - - - beta - - - - - - - diff --git a/iverilog/tobb/labs/lab2/impl/gwsynthesis/lab2.vg b/iverilog/tobb/labs/lab2/impl/gwsynthesis/lab2.vg deleted file mode 100644 index 177daab..0000000 --- a/iverilog/tobb/labs/lab2/impl/gwsynthesis/lab2.vg +++ /dev/null @@ -1,76 +0,0 @@ -// -//Written by GowinSynthesis -//Tool Version "V1.9.9.02" -//Thu Apr 11 07:46:56 2024 - -//Source file index table: -//file0 "\C:/cygwin64/home/koray/verilog/lab2/src/BitM.v" -`timescale 100 ps/100 ps -module BitM ( - A, - B, - AlB, - AeB, - AgB -) -; -input A; -input B; -output AlB; -output AeB; -output AgB; -wire A_d; -wire B_d; -wire AlB_d; -wire AgB_d; -wire AeB_d; -wire VCC; -wire GND; - IBUF A_ibuf ( - .O(A_d), - .I(A) -); - IBUF B_ibuf ( - .O(B_d), - .I(B) -); - OBUF AlB_obuf ( - .O(AlB), - .I(AlB_d) -); - OBUF AeB_obuf ( - .O(AeB), - .I(AeB_d) -); - OBUF AgB_obuf ( - .O(AgB), - .I(AgB_d) -); - LUT2 AlB_d_s ( - .F(AlB_d), - .I0(A_d), - .I1(B_d) -); -defparam AlB_d_s.INIT=4'h4; - LUT2 AgB_d_s ( - .F(AgB_d), - .I0(B_d), - .I1(A_d) -); -defparam AgB_d_s.INIT=4'h4; - LUT2 AeB_d_s ( - .F(AeB_d), - .I0(A_d), - .I1(B_d) -); -defparam AeB_d_s.INIT=4'h9; - VCC VCC_cZ ( - .V(VCC) -); - GND GND_cZ ( - .G(GND) -); - GSR GSR ( - .GSRI(VCC) -); -endmodule /* BitM */ diff --git a/iverilog/tobb/labs/lab2/impl/gwsynthesis/lab2_syn.rpt.html b/iverilog/tobb/labs/lab2/impl/gwsynthesis/lab2_syn.rpt.html deleted file mode 100644 index 10100fa..0000000 --- a/iverilog/tobb/labs/lab2/impl/gwsynthesis/lab2_syn.rpt.html +++ /dev/null @@ -1,167 +0,0 @@ - - - -synthesis Report - - - - - - diff --git a/iverilog/tobb/labs/lab2/impl/gwsynthesis/lab2_syn_resource.html b/iverilog/tobb/labs/lab2/impl/gwsynthesis/lab2_syn_resource.html deleted file mode 100644 index 21745f5..0000000 --- a/iverilog/tobb/labs/lab2/impl/gwsynthesis/lab2_syn_resource.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -Hierarchy Module Resource - - - -
-
-

Hierarchy Module Resource

- - - - - - - - - - - - - - - - - - - - - -
MODULE NAMEREG NUMBERALU NUMBERLUT NUMBERDSP NUMBERBSRAM NUMBERSSRAM NUMBERROM16 NUMBER
BitM (C:/cygwin64/home/koray/verilog/lab2/src/BitM.v)--3----
-
-
- - diff --git a/iverilog/tobb/labs/lab2/impl/gwsynthesis/lab2_syn_rsc.xml b/iverilog/tobb/labs/lab2/impl/gwsynthesis/lab2_syn_rsc.xml deleted file mode 100644 index 4ab4519..0000000 --- a/iverilog/tobb/labs/lab2/impl/gwsynthesis/lab2_syn_rsc.xml +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/iverilog/tobb/labs/lab2/impl/lab2_process_config.json b/iverilog/tobb/labs/lab2/impl/lab2_process_config.json deleted file mode 100644 index ba19aba..0000000 --- a/iverilog/tobb/labs/lab2/impl/lab2_process_config.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "BACKGROUND_PROGRAMMING" : "off", - "COMPRESS" : false, - "CPU" : false, - "CRC_CHECK" : true, - "Clock_Route_Order" : 0, - "Correct_Hold_Violation" : true, - "DONE" : false, - "DOWNLOAD_SPEED" : "default", - "Disable_Insert_Pad" : false, - "ENABLE_CTP" : false, - "ENABLE_MERGE_MODE" : false, - "ENCRYPTION_KEY" : false, - "ENCRYPTION_KEY_TEXT" : "00000000000000000000000000000000", - "ERROR_DECTION_AND_CORRECTION" : false, - "ERROR_DECTION_ONLY" : false, - "ERROR_INJECTION" : false, - "EXTERNAL_MASTER_CONFIG_CLOCK" : false, - "Enable_DSRM" : false, - "FORMAT" : "binary", - "FREQUENCY_DIVIDER" : "", - "Generate_Constraint_File_of_Ports" : false, - "Generate_IBIS_File" : false, - "Generate_Plain_Text_Timing_Report" : false, - "Generate_Post_PNR_Simulation_Model_File" : false, - "Generate_Post_Place_File" : false, - "Generate_SDF_File" : false, - "Generate_VHDL_Post_PNR_Simulation_Model_File" : false, - "Global_Freq" : "default", - "GwSyn_Loop_Limit" : 2000, - "HOTBOOT" : false, - "I2C" : false, - "I2C_SLAVE_ADDR" : "00", - "IncludePath" : [ - - ], - "Incremental_Compile" : "", - "Initialize_Primitives" : false, - "JTAG" : false, - "MODE_IO" : false, - "MSPI" : false, - "MSPI_JUMP" : false, - "MULTIBOOT_ADDRESS_WIDTH" : "24", - "MULTIBOOT_MODE" : "Normal", - "MULTIBOOT_SPI_FLASH_ADDRESS" : "00000000", - "MULTIJUMP_ADDRESS_WIDTH" : "24", - "MULTIJUMP_MODE" : "Normal", - "MULTIJUMP_SPI_FLASH_ADDRESS" : "000000", - "Multi_Boot" : true, - "OUTPUT_BASE_NAME" : "lab2", - "POWER_ON_RESET_MONITOR" : true, - "PRINT_BSRAM_VALUE" : true, - "PROGRAM_DONE_BYPASS" : false, - "PlaceInRegToIob" : true, - "PlaceIoRegToIob" : true, - "PlaceOutRegToIob" : true, - "Place_Option" : "0", - "Process_Configuration_Verion" : "1.0", - "Promote_Physical_Constraint_Warning_to_Error" : true, - "READY" : false, - "RECONFIG_N" : false, - "Ram_RW_Check" : false, - "Replicate_Resources" : false, - "Report_Auto-Placed_Io_Information" : false, - "Route_Maxfan" : 23, - "Route_Option" : "0", - "Run_Timing_Driven" : true, - "SECURE_MODE" : false, - "SECURITY_BIT" : true, - "SEU_HANDLER" : false, - "SEU_HANDLER_CHECKSUM" : false, - "SEU_HANDLER_MODE" : "auto", - "SSPI" : false, - "STOP_SEU_HANDLER" : false, - "Show_All_Warnings" : false, - "Synthesize_tool" : "GowinSyn", - "TclPre" : "", - "TopModule" : "", - "USERCODE" : "default", - "Unused_Pin" : "As_input_tri_stated_with_pull_up", - "VCCAUX" : 3.3, - "VCCX" : "3.3", - "VHDL_Standard" : "VHDL_Std_1993", - "Verilog_Standard" : "Vlg_Std_2001", - "WAKE_UP" : "0", - "show_all_warnings" : false, - "turn_off_bg" : false -} \ No newline at end of file diff --git a/iverilog/tobb/labs/lab2/impl/temp/rtl_parser.result b/iverilog/tobb/labs/lab2/impl/temp/rtl_parser.result deleted file mode 100644 index bbc0e0d..0000000 --- a/iverilog/tobb/labs/lab2/impl/temp/rtl_parser.result +++ /dev/null @@ -1,36 +0,0 @@ -[ - { - "InstFile" : "C:/cygwin64/home/koray/verilog/lab2/src/BitM.v", - "InstLine" : 1, - "InstName" : "BitM", - "ModuleFile" : "C:/cygwin64/home/koray/verilog/lab2/src/BitM.v", - "ModuleLine" : 1, - "ModuleName" : "BitM" - }, - { - "InstFile" : "C:/cygwin64/home/koray/verilog/lab2/src/fullAdder.v", - "InstLine" : 1, - "InstName" : "fullAdder", - "ModuleFile" : "C:/cygwin64/home/koray/verilog/lab2/src/fullAdder.v", - "ModuleLine" : 1, - "ModuleName" : "fullAdder" - }, - { - "InstFile" : "C:/cygwin64/home/koray/verilog/lab2/src/tb.v", - "InstLine" : 1, - "InstName" : "tb", - "ModuleFile" : "C:/cygwin64/home/koray/verilog/lab2/src/tb.v", - "ModuleLine" : 1, - "ModuleName" : "tb", - "SubInsts" : [ - { - "InstFile" : "C:/cygwin64/home/koray/verilog/lab2/src/tb.v", - "InstLine" : 6, - "InstName" : "uut", - "ModuleFile" : "C:/cygwin64/home/koray/verilog/lab2/src/halfAdder.v", - "ModuleLine" : 1, - "ModuleName" : "halfAdder" - } - ] - } -] \ No newline at end of file diff --git a/iverilog/tobb/labs/lab2/impl/temp/rtl_parser_arg.json b/iverilog/tobb/labs/lab2/impl/temp/rtl_parser_arg.json deleted file mode 100644 index 755ab36..0000000 --- a/iverilog/tobb/labs/lab2/impl/temp/rtl_parser_arg.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "Device" : "GW2A-18C", - "Files" : [ - { - "Path" : "C:/cygwin64/home/koray/verilog/lab2/src/BitM.v", - "Type" : "verilog" - }, - { - "Path" : "C:/cygwin64/home/koray/verilog/lab2/src/fullAdder.v", - "Type" : "verilog" - }, - { - "Path" : "C:/cygwin64/home/koray/verilog/lab2/src/halfAdder.v", - "Type" : "verilog" - }, - { - "Path" : "C:/cygwin64/home/koray/verilog/lab2/src/tb.v", - "Type" : "verilog" - } - ], - "IncludePath" : [ - - ], - "LoopLimit" : 2000, - "ResultFile" : "C:/cygwin64/home/koray/verilog/lab2/impl/temp/rtl_parser.result", - "Top" : "", - "VerilogStd" : "verilog_2001", - "VhdlStd" : "vhdl_93" -} \ No newline at end of file diff --git a/iverilog/tobb/labs/lab2/lab2.gprj b/iverilog/tobb/labs/lab2/lab2.gprj deleted file mode 100644 index e55181e..0000000 --- a/iverilog/tobb/labs/lab2/lab2.gprj +++ /dev/null @@ -1,13 +0,0 @@ - - - - - 5 - gw2a18c-011 - - - - - - - diff --git a/iverilog/tobb/labs/lab2/lab2.gprj.user b/iverilog/tobb/labs/lab2/lab2.gprj.user deleted file mode 100644 index d2e295b..0000000 --- a/iverilog/tobb/labs/lab2/lab2.gprj.user +++ /dev/null @@ -1,17 +0,0 @@ - - - - 1.0 - - - - - - - - - - - - 000000ff00000001fd00000002000000000000010000000130fc0200000001fc00000063000001300000000000fffffffaffffffff0200000003fb00000030004600700067006100500072006f006a006500630074002e00500061006e0065006c002e00440065007300690067006e0100000000ffffffff0000000000000000fb00000032004600700067006100500072006f006a006500630074002e00500061006e0065006c002e00500072006f00630065007300730100000000ffffffff0000000000000000fb00000036004600700067006100500072006f006a006500630074002e00500061006e0065006c002e0048006900650072006100720063006800790100000000ffffffff0000000000000000000000030000050000000121fc0100000001fc00000000000005000000009b00fffffffa000000000100000002fb00000032004600700067006100500072006f006a006500630074002e00500061006e0065006c002e00470065006e006500720061006c0100000000ffffffff0000005100fffffffb0000002e004600700067006100500072006f006a006500630074002e00500061006e0065006c002e004900730073007500650100000000ffffffff0000009b00ffffff000003f80000013000000004000000040000000800000008fc000000010000000200000003000000220043006f00720065002e0054006f006f006c006200610072002e00460069006c00650100000000ffffffff0000000000000000000000220043006f00720065002e0054006f006f006c006200610072002e0045006400690074010000009bffffffff0000000000000000000000240043006f00720065002e0054006f006f006c006200610072002e0054006f006f006c00730100000157ffffffff0000000000000000 - diff --git a/iverilog/tobb/labs/lab2/src/BitM.v b/iverilog/tobb/labs/lab2/src/BitM.v deleted file mode 100644 index 807b8d3..0000000 --- a/iverilog/tobb/labs/lab2/src/BitM.v +++ /dev/null @@ -1,19 +0,0 @@ -module BitM( - input A, - input B, - output AlB, - output AeB, - output AgB -); - - wire An, Bn; - - not n1 (An, A); - not n2 (Bn, B); - - and a1 (AlB, An, B); - and a2 (AgB, Bn, A); - - nor nor1 (AeB, AlB, AgB); - -endmodule \ No newline at end of file diff --git a/iverilog/tobb/labs/lab2/src/BitM_tb.v b/iverilog/tobb/labs/lab2/src/BitM_tb.v deleted file mode 100644 index 3dd77ea..0000000 --- a/iverilog/tobb/labs/lab2/src/BitM_tb.v +++ /dev/null @@ -1,26 +0,0 @@ -module BitM_tb(); - -reg r1, r2; -wire w1, w2, w3; - -BitM uut( - .A(r1), - .B(r2), - .AlB(w1), - .AeB(w2), - .AgB(w3) -); - -initial begin - $dumpfile("bdmp.vcd"); - $dumpvars; - r1 = 0; r2 = 0; #10 - r1 = 0; r2 = 1; #10 - r1 = 1; r2 = 0; #10 - r1 = 1; r2 = 1; #10 - $display(w1); - $display(w2); - $display(w3); -end - -endmodule \ No newline at end of file diff --git a/iverilog/tobb/labs/lab2/src/bdmp.vcd b/iverilog/tobb/labs/lab2/src/bdmp.vcd deleted file mode 100644 index 4c0ca0f..0000000 --- a/iverilog/tobb/labs/lab2/src/bdmp.vcd +++ /dev/null @@ -1,58 +0,0 @@ -$date - Thu Apr 11 07:50:26 2024 -$end -$version - Icarus Verilog -$end -$timescale - 1s -$end -$scope module BitM_tb $end -$var wire 1 ! w3 $end -$var wire 1 " w2 $end -$var wire 1 # w1 $end -$var reg 1 $ r1 $end -$var reg 1 % r2 $end -$scope module uut $end -$var wire 1 $ A $end -$var wire 1 " AeB $end -$var wire 1 ! AgB $end -$var wire 1 # AlB $end -$var wire 1 & An $end -$var wire 1 % B $end -$var wire 1 ' Bn $end -$upscope $end -$upscope $end -$enddefinitions $end -$comment Show the parameter values. $end -$dumpall -$end -#0 -$dumpvars -1' -1& -0% -0$ -0# -1" -0! -$end -#10 -0" -0' -1# -1% -#20 -1! -0" -1' -0# -0& -0% -1$ -#30 -1" -0! -0' -1% -#40 diff --git a/iverilog/tobb/labs/lab2/src/blab2 b/iverilog/tobb/labs/lab2/src/blab2 deleted file mode 100644 index b8c9979..0000000 --- a/iverilog/tobb/labs/lab2/src/blab2 +++ /dev/null @@ -1,70 +0,0 @@ -#! /c/Source/iverilog-install/bin/vvp -:ivl_version "12.0 (devel)" "(s20150603-1539-g2693dd32b)"; -:ivl_delay_selection "TYPICAL"; -:vpi_time_precision + 0; -:vpi_module "C:\iverilog\lib\ivl\system.vpi"; -:vpi_module "C:\iverilog\lib\ivl\vhdl_sys.vpi"; -:vpi_module "C:\iverilog\lib\ivl\vhdl_textio.vpi"; -:vpi_module "C:\iverilog\lib\ivl\v2005_math.vpi"; -:vpi_module "C:\iverilog\lib\ivl\va_math.vpi"; -S_000002114102cad0 .scope module, "BitM_tb" "BitM_tb" 2 1; - .timescale 0 0; -v0000021140f146e0_0 .var "r1", 0 0; -v0000021140f14780_0 .var "r2", 0 0; -v0000021140f14820_0 .net "w1", 0 0, L_0000021140ee32f0; 1 drivers -v0000021140f148c0_0 .net "w2", 0 0, L_0000021140f14f60; 1 drivers -v0000021140f14960_0 .net "w3", 0 0, L_0000021140f14de0; 1 drivers -S_000002114102cc60 .scope module, "uut" "BitM" 2 6, 3 1 0, S_000002114102cad0; - .timescale 0 0; - .port_info 0 /INPUT 1 "A"; - .port_info 1 /INPUT 1 "B"; - .port_info 2 /OUTPUT 1 "AlB"; - .port_info 3 /OUTPUT 1 "AeB"; - .port_info 4 /OUTPUT 1 "AgB"; -L_000002114102af60 .functor NOT 1, v0000021140f146e0_0, C4<0>, C4<0>, C4<0>; -L_0000021140ee3190 .functor NOT 1, v0000021140f14780_0, C4<0>, C4<0>, C4<0>; -L_0000021140ee32f0 .functor AND 1, L_000002114102af60, v0000021140f14780_0, C4<1>, C4<1>; -L_0000021140f14de0 .functor AND 1, L_0000021140ee3190, v0000021140f146e0_0, C4<1>, C4<1>; -L_0000021140f14f60 .functor NOR 1, L_0000021140ee32f0, L_0000021140f14de0, C4<0>, C4<0>; -v0000021141028fc0_0 .net "A", 0 0, v0000021140f146e0_0; 1 drivers -v0000021140ee2ee0_0 .net "AeB", 0 0, L_0000021140f14f60; alias, 1 drivers -v000002114102aec0_0 .net "AgB", 0 0, L_0000021140f14de0; alias, 1 drivers -v000002114102cdf0_0 .net "AlB", 0 0, L_0000021140ee32f0; alias, 1 drivers -v000002114102ce90_0 .net "An", 0 0, L_000002114102af60; 1 drivers -v0000021140f145a0_0 .net "B", 0 0, v0000021140f14780_0; 1 drivers -v0000021140f14640_0 .net "Bn", 0 0, L_0000021140ee3190; 1 drivers - .scope S_000002114102cad0; -T_0 ; - %vpi_call 2 15 "$dumpfile", "bdmp.vcd" {0 0 0}; - %vpi_call 2 16 "$dumpvars" {0 0 0}; - %pushi/vec4 0, 0, 1; - %store/vec4 v0000021140f146e0_0, 0, 1; - %pushi/vec4 0, 0, 1; - %store/vec4 v0000021140f14780_0, 0, 1; - %delay 10, 0; - %pushi/vec4 0, 0, 1; - %store/vec4 v0000021140f146e0_0, 0, 1; - %pushi/vec4 1, 0, 1; - %store/vec4 v0000021140f14780_0, 0, 1; - %delay 10, 0; - %pushi/vec4 1, 0, 1; - %store/vec4 v0000021140f146e0_0, 0, 1; - %pushi/vec4 0, 0, 1; - %store/vec4 v0000021140f14780_0, 0, 1; - %delay 10, 0; - %pushi/vec4 1, 0, 1; - %store/vec4 v0000021140f146e0_0, 0, 1; - %pushi/vec4 1, 0, 1; - %store/vec4 v0000021140f14780_0, 0, 1; - %delay 10, 0; - %vpi_call 2 21 "$display", v0000021140f14820_0 {0 0 0}; - %vpi_call 2 22 "$display", v0000021140f148c0_0 {0 0 0}; - %vpi_call 2 23 "$display", v0000021140f14960_0 {0 0 0}; - %end; - .thread T_0; -# The file index is used to find the file name in the following table. -:file_names 4; - "N/A"; - ""; - "BitM_tb.v"; - "BitM.v"; diff --git a/iverilog/tobb/labs/lab2/src/dmp.vcd b/iverilog/tobb/labs/lab2/src/dmp.vcd deleted file mode 100644 index 0655b02..0000000 --- a/iverilog/tobb/labs/lab2/src/dmp.vcd +++ /dev/null @@ -1,43 +0,0 @@ -$date - Thu Apr 11 06:36:34 2024 -$end -$version - Icarus Verilog -$end -$timescale - 1s -$end -$scope module tb $end -$var wire 1 ! w2 $end -$var wire 1 " w1 $end -$var reg 1 # r1 $end -$var reg 1 $ r2 $end -$scope module uut $end -$var wire 1 # A $end -$var wire 1 $ B $end -$var wire 1 ! C $end -$var wire 1 " S $end -$upscope $end -$upscope $end -$enddefinitions $end -$comment Show the parameter values. $end -$dumpall -$end -#0 -$dumpvars -0$ -0# -0" -0! -$end -#20 -1" -1# -#40 -1$ -0# -#60 -0" -1! -1# -#80 diff --git a/iverilog/tobb/labs/lab2/src/fdmp.vcd b/iverilog/tobb/labs/lab2/src/fdmp.vcd deleted file mode 100644 index e64d093..0000000 --- a/iverilog/tobb/labs/lab2/src/fdmp.vcd +++ /dev/null @@ -1,75 +0,0 @@ -$date - Thu Apr 11 07:39:27 2024 -$end -$version - Icarus Verilog -$end -$timescale - 1s -$end -$scope module ftb $end -$var wire 1 ! w2 $end -$var wire 1 " w1 $end -$var reg 1 # r1 $end -$var reg 1 $ r2 $end -$var reg 1 % r3 $end -$scope module uut $end -$var wire 1 # A $end -$var wire 1 & AB $end -$var wire 1 ' ABCin $end -$var wire 1 ( AaB $end -$var wire 1 $ B $end -$var wire 1 % Cin $end -$var wire 1 ! Cout $end -$var wire 1 " S $end -$upscope $end -$upscope $end -$enddefinitions $end -$comment Show the parameter values. $end -$dumpall -$end -#0 -$dumpvars -0( -0' -0& -0% -0$ -0# -0" -0! -$end -#10 -1" -1% -#20 -1& -0% -1$ -#30 -1! -0" -1' -1% -#40 -0! -1" -0' -0% -0$ -1# -#50 -1! -0" -1' -1% -#60 -0' -0& -1( -0% -1$ -#70 -1" -1% -#80 diff --git a/iverilog/tobb/labs/lab2/src/flab2 b/iverilog/tobb/labs/lab2/src/flab2 deleted file mode 100644 index 3101f7e..0000000 --- a/iverilog/tobb/labs/lab2/src/flab2 +++ /dev/null @@ -1,106 +0,0 @@ -#! /c/Source/iverilog-install/bin/vvp -:ivl_version "12.0 (devel)" "(s20150603-1539-g2693dd32b)"; -:ivl_delay_selection "TYPICAL"; -:vpi_time_precision + 0; -:vpi_module "C:\iverilog\lib\ivl\system.vpi"; -:vpi_module "C:\iverilog\lib\ivl\vhdl_sys.vpi"; -:vpi_module "C:\iverilog\lib\ivl\vhdl_textio.vpi"; -:vpi_module "C:\iverilog\lib\ivl\v2005_math.vpi"; -:vpi_module "C:\iverilog\lib\ivl\va_math.vpi"; -S_000001da0354ad70 .scope module, "ftb" "ftb" 2 1; - .timescale 0 0; -v000001da035dc840_0 .var "r1", 0 0; -v000001da035dc8e0_0 .var "r2", 0 0; -v000001da035dc980_0 .var "r3", 0 0; -v000001da035dca20_0 .net "w1", 0 0, L_000001da03594080; 1 drivers -v000001da035935f0_0 .net "w2", 0 0, L_000001da03594470; 1 drivers -S_000001da0354e9e0 .scope module, "uut" "fullAdder" 2 6, 3 1 0, S_000001da0354ad70; - .timescale 0 0; - .port_info 0 /INPUT 1 "A"; - .port_info 1 /INPUT 1 "B"; - .port_info 2 /INPUT 1 "Cin"; - .port_info 3 /OUTPUT 1 "S"; - .port_info 4 /OUTPUT 1 "Cout"; -L_000001da03594010 .functor XOR 1, v000001da035dc840_0, v000001da035dc8e0_0, C4<0>, C4<0>; -L_000001da03594080 .functor XOR 1, L_000001da03594010, v000001da035dc980_0, C4<0>, C4<0>; -L_000001da03593e50 .functor AND 1, L_000001da03594010, v000001da035dc980_0, C4<1>, C4<1>; -L_000001da035940f0 .functor AND 1, v000001da035dc840_0, v000001da035dc8e0_0, C4<1>, C4<1>; -L_000001da03594470 .functor OR 1, L_000001da03593e50, L_000001da035940f0, C4<0>, C4<0>; -v000001da03563310_0 .net "A", 0 0, v000001da035dc840_0; 1 drivers -v000001da03562ee0_0 .net "AB", 0 0, L_000001da03594010; 1 drivers -v000001da0354af00_0 .net "ABCin", 0 0, L_000001da03593e50; 1 drivers -v000001da03549850_0 .net "AaB", 0 0, L_000001da035940f0; 1 drivers -v000001da0354eb70_0 .net "B", 0 0, v000001da035dc8e0_0; 1 drivers -v000001da0354ec10_0 .net "Cin", 0 0, v000001da035dc980_0; 1 drivers -v000001da0354ecb0_0 .net "Cout", 0 0, L_000001da03594470; alias, 1 drivers -v000001da0354ed50_0 .net "S", 0 0, L_000001da03594080; alias, 1 drivers - .scope S_000001da0354ad70; -T_0 ; - %vpi_call 2 15 "$dumpfile", "fdmp.vcd" {0 0 0}; - %vpi_call 2 16 "$dumpvars" {0 0 0}; - %pushi/vec4 0, 0, 1; - %store/vec4 v000001da035dc840_0, 0, 1; - %pushi/vec4 0, 0, 1; - %store/vec4 v000001da035dc8e0_0, 0, 1; - %pushi/vec4 0, 0, 1; - %store/vec4 v000001da035dc980_0, 0, 1; - %delay 10, 0; - %pushi/vec4 0, 0, 1; - %store/vec4 v000001da035dc840_0, 0, 1; - %pushi/vec4 0, 0, 1; - %store/vec4 v000001da035dc8e0_0, 0, 1; - %pushi/vec4 1, 0, 1; - %store/vec4 v000001da035dc980_0, 0, 1; - %delay 10, 0; - %pushi/vec4 0, 0, 1; - %store/vec4 v000001da035dc840_0, 0, 1; - %pushi/vec4 1, 0, 1; - %store/vec4 v000001da035dc8e0_0, 0, 1; - %pushi/vec4 0, 0, 1; - %store/vec4 v000001da035dc980_0, 0, 1; - %delay 10, 0; - %pushi/vec4 0, 0, 1; - %store/vec4 v000001da035dc840_0, 0, 1; - %pushi/vec4 1, 0, 1; - %store/vec4 v000001da035dc8e0_0, 0, 1; - %pushi/vec4 1, 0, 1; - %store/vec4 v000001da035dc980_0, 0, 1; - %delay 10, 0; - %pushi/vec4 1, 0, 1; - %store/vec4 v000001da035dc840_0, 0, 1; - %pushi/vec4 0, 0, 1; - %store/vec4 v000001da035dc8e0_0, 0, 1; - %pushi/vec4 0, 0, 1; - %store/vec4 v000001da035dc980_0, 0, 1; - %delay 10, 0; - %pushi/vec4 1, 0, 1; - %store/vec4 v000001da035dc840_0, 0, 1; - %pushi/vec4 0, 0, 1; - %store/vec4 v000001da035dc8e0_0, 0, 1; - %pushi/vec4 1, 0, 1; - %store/vec4 v000001da035dc980_0, 0, 1; - %delay 10, 0; - %pushi/vec4 1, 0, 1; - %store/vec4 v000001da035dc840_0, 0, 1; - %pushi/vec4 1, 0, 1; - %store/vec4 v000001da035dc8e0_0, 0, 1; - %pushi/vec4 0, 0, 1; - %store/vec4 v000001da035dc980_0, 0, 1; - %delay 10, 0; - %pushi/vec4 1, 0, 1; - %store/vec4 v000001da035dc840_0, 0, 1; - %pushi/vec4 1, 0, 1; - %store/vec4 v000001da035dc8e0_0, 0, 1; - %pushi/vec4 1, 0, 1; - %store/vec4 v000001da035dc980_0, 0, 1; - %delay 10, 0; - %vpi_call 2 25 "$display", v000001da035dca20_0 {0 0 0}; - %vpi_call 2 26 "$display", v000001da035935f0_0 {0 0 0}; - %end; - .thread T_0; -# The file index is used to find the file name in the following table. -:file_names 4; - "N/A"; - ""; - "ftb.v"; - "fullAdder.v"; diff --git a/iverilog/tobb/labs/lab2/src/ftb.v b/iverilog/tobb/labs/lab2/src/ftb.v deleted file mode 100644 index b6b6679..0000000 --- a/iverilog/tobb/labs/lab2/src/ftb.v +++ /dev/null @@ -1,29 +0,0 @@ -module ftb (); - -reg r1, r2, r3; -wire w1, w2; - -fullAdder uut( - .A(r1), - .B(r2), - .Cin(r3), - .S(w1), - .Cout(w2) -); - -initial begin - $dumpfile("fdmp.vcd"); - $dumpvars; - r1 = 0; r2 = 0; r3 = 0; #10 - r1 = 0; r2 = 0; r3 = 1; #10 - r1 = 0; r2 = 1; r3 = 0; #10 - r1 = 0; r2 = 1; r3 = 1; #10 - r1 = 1; r2 = 0; r3 = 0; #10 - r1 = 1; r2 = 0; r3 = 1; #10 - r1 = 1; r2 = 1; r3 = 0; #10 - r1 = 1; r2 = 1; r3 = 1; #10 - $display(w1); - $display(w2); -end - -endmodule \ No newline at end of file diff --git a/iverilog/tobb/labs/lab2/src/fullAdder.v b/iverilog/tobb/labs/lab2/src/fullAdder.v deleted file mode 100644 index 7682f67..0000000 --- a/iverilog/tobb/labs/lab2/src/fullAdder.v +++ /dev/null @@ -1,20 +0,0 @@ -module fullAdder( - input A, - input B, - input Cin, - output S, - output Cout -); - - wire AB; - wire ABCin, AaB; - - xor (AB, A, B); - xor (S, AB, Cin); - - and (ABCin, AB, Cin); - and (AaB, A, B); - - or (Cout, ABCin, AaB); - -endmodule \ No newline at end of file diff --git a/iverilog/tobb/labs/lab2/src/halfAdder.v b/iverilog/tobb/labs/lab2/src/halfAdder.v deleted file mode 100644 index e10cb11..0000000 --- a/iverilog/tobb/labs/lab2/src/halfAdder.v +++ /dev/null @@ -1,11 +0,0 @@ -module halfAdder( - input A, - input B, - output S, - output C -); - - xor (S, A, B); - and (C, A, B); - -endmodule \ No newline at end of file diff --git a/iverilog/tobb/labs/lab2/src/lab2 b/iverilog/tobb/labs/lab2/src/lab2 deleted file mode 100644 index a59fe56..0000000 --- a/iverilog/tobb/labs/lab2/src/lab2 +++ /dev/null @@ -1,61 +0,0 @@ -#! /c/Source/iverilog-install/bin/vvp -:ivl_version "12.0 (devel)" "(s20150603-1539-g2693dd32b)"; -:ivl_delay_selection "TYPICAL"; -:vpi_time_precision + 0; -:vpi_module "C:\iverilog\lib\ivl\system.vpi"; -:vpi_module "C:\iverilog\lib\ivl\vhdl_sys.vpi"; -:vpi_module "C:\iverilog\lib\ivl\vhdl_textio.vpi"; -:vpi_module "C:\iverilog\lib\ivl\v2005_math.vpi"; -:vpi_module "C:\iverilog\lib\ivl\va_math.vpi"; -S_000001b4458eec80 .scope module, "tb" "tb" 2 1; - .timescale 0 0; -v000001b4458ec1d0_0 .var "r1", 0 0; -v000001b4458ec270_0 .var "r2", 0 0; -v000001b4458ec310_0 .net "w1", 0 0, L_000001b445783190; 1 drivers -v000001b4458ec3b0_0 .net "w2", 0 0, L_000001b4457832f0; 1 drivers -S_000001b4458eee10 .scope module, "uut" "halfAdder" 2 6, 3 1 0, S_000001b4458eec80; - .timescale 0 0; - .port_info 0 /INPUT 1 "A"; - .port_info 1 /INPUT 1 "B"; - .port_info 2 /OUTPUT 1 "S"; - .port_info 3 /OUTPUT 1 "C"; -L_000001b445783190 .functor XOR 1, v000001b4458ec1d0_0, v000001b4458ec270_0, C4<0>, C4<0>; -L_000001b4457832f0 .functor AND 1, v000001b4458ec1d0_0, v000001b4458ec270_0, C4<1>, C4<1>; -v000001b4458ebff0_0 .net "A", 0 0, v000001b4458ec1d0_0; 1 drivers -v000001b445782ee0_0 .net "B", 0 0, v000001b4458ec270_0; 1 drivers -v000001b4458ec090_0 .net "C", 0 0, L_000001b4457832f0; alias, 1 drivers -v000001b4458ec130_0 .net "S", 0 0, L_000001b445783190; alias, 1 drivers - .scope S_000001b4458eec80; -T_0 ; - %vpi_call 2 14 "$dumpfile", "dmp.vcd" {0 0 0}; - %vpi_call 2 15 "$dumpvars" {0 0 0}; - %pushi/vec4 0, 0, 1; - %store/vec4 v000001b4458ec1d0_0, 0, 1; - %pushi/vec4 0, 0, 1; - %store/vec4 v000001b4458ec270_0, 0, 1; - %delay 20, 0; - %pushi/vec4 1, 0, 1; - %store/vec4 v000001b4458ec1d0_0, 0, 1; - %pushi/vec4 0, 0, 1; - %store/vec4 v000001b4458ec270_0, 0, 1; - %delay 20, 0; - %pushi/vec4 0, 0, 1; - %store/vec4 v000001b4458ec1d0_0, 0, 1; - %pushi/vec4 1, 0, 1; - %store/vec4 v000001b4458ec270_0, 0, 1; - %delay 20, 0; - %pushi/vec4 1, 0, 1; - %store/vec4 v000001b4458ec1d0_0, 0, 1; - %pushi/vec4 1, 0, 1; - %store/vec4 v000001b4458ec270_0, 0, 1; - %delay 20, 0; - %vpi_call 2 20 "$display", v000001b4458ec310_0 {0 0 0}; - %vpi_call 2 21 "$display", v000001b4458ec3b0_0 {0 0 0}; - %end; - .thread T_0; -# The file index is used to find the file name in the following table. -:file_names 4; - "N/A"; - ""; - "tb.v"; - "halfAdder.v"; diff --git a/iverilog/tobb/labs/lab2/src/tb.v b/iverilog/tobb/labs/lab2/src/tb.v deleted file mode 100644 index 4efb43b..0000000 --- a/iverilog/tobb/labs/lab2/src/tb.v +++ /dev/null @@ -1,24 +0,0 @@ -module tb(); - -reg r1, r2; -wire w1, w2; - -halfAdder uut( - .A(r1), - .B(r2), - .S(w1), - .C(w2) -); - -initial begin - $dumpfile("dmp.vcd"); - $dumpvars; - r1 = 0; r2 = 0; #20 - r1 = 1; r2 = 0; #20 - r1 = 0; r2 = 1; #20 - r1 = 1; r2 = 1; #20 - $display(w1); - $display(w2); -end - -endmodule \ No newline at end of file diff --git a/iverilog/tobb/labs/lab2_prep/impl/gwsynthesis/lab2.log b/iverilog/tobb/labs/lab2_prep/impl/gwsynthesis/lab2.log deleted file mode 100644 index 134dadc..0000000 --- a/iverilog/tobb/labs/lab2_prep/impl/gwsynthesis/lab2.log +++ /dev/null @@ -1,40 +0,0 @@ -GowinSynthesis start -Running parser ... -Analyzing Verilog file 'C:\cygwin64\home\koray\verilog\lab2\src\lab2.v' -Analyzing Verilog file 'C:\cygwin64\home\koray\verilog\lab2\src\tb.v' -Compiling module 'tb'("C:\cygwin64\home\koray\verilog\lab2\src\tb.v":1) -WARN (EX3858) : System task 'dumpfile' is ignored for synthesis("C:\cygwin64\home\koray\verilog\lab2\src\tb.v":17) -WARN (EX3858) : System task 'dumpvars' is ignored for synthesis("C:\cygwin64\home\koray\verilog\lab2\src\tb.v":18) -WARN (EX2629) : Delay control is not supported for synthesis("C:\cygwin64\home\koray\verilog\lab2\src\tb.v":19) -WARN (EX2629) : Delay control is not supported for synthesis("C:\cygwin64\home\koray\verilog\lab2\src\tb.v":20) -WARN (EX2629) : Delay control is not supported for synthesis("C:\cygwin64\home\koray\verilog\lab2\src\tb.v":21) -WARN (EX2629) : Delay control is not supported for synthesis("C:\cygwin64\home\koray\verilog\lab2\src\tb.v":22) -WARN (EX2629) : Delay control is not supported for synthesis("C:\cygwin64\home\koray\verilog\lab2\src\tb.v":23) -WARN (EX2629) : Delay control is not supported for synthesis("C:\cygwin64\home\koray\verilog\lab2\src\tb.v":24) -WARN (EX2629) : Delay control is not supported for synthesis("C:\cygwin64\home\koray\verilog\lab2\src\tb.v":25) -WARN (EX2629) : Delay control is not supported for synthesis("C:\cygwin64\home\koray\verilog\lab2\src\tb.v":26) -WARN (EX3858) : System task 'display' is ignored for synthesis("C:\cygwin64\home\koray\verilog\lab2\src\tb.v":27) -WARN (EX3780) : Using initial value of 'r1' since it is never assigned("C:\cygwin64\home\koray\verilog\lab2\src\tb.v":28) -Compiling module 'lab2'("C:\cygwin64\home\koray\verilog\lab2\src\lab2.v":1) -NOTE (EX0101) : Current top module is "tb" -WARN (EX0203) : Top module "tb" has no ports("C:\cygwin64\home\koray\verilog\lab2\src\tb.v":1) -[5%] Running netlist conversion ... -Running device independent optimization ... -[10%] Optimizing Phase 0 completed -[15%] Optimizing Phase 1 completed -[25%] Optimizing Phase 2 completed -Running inference ... -[30%] Inferring Phase 0 completed -[40%] Inferring Phase 1 completed -[50%] Inferring Phase 2 completed -[55%] Inferring Phase 3 completed -Running technical mapping ... -[60%] Tech-Mapping Phase 0 completed -[65%] Tech-Mapping Phase 1 completed -[75%] Tech-Mapping Phase 2 completed -[80%] Tech-Mapping Phase 3 completed -[90%] Tech-Mapping Phase 4 completed -WARN (NL0002) : The module "lab2" instantiated to "uut" is swept in optimizing("C:\cygwin64\home\koray\verilog\lab2\src\tb.v":12) -[95%] Generate netlist file "C:\cygwin64\home\koray\verilog\lab2\impl\gwsynthesis\lab2.vg" completed -[100%] Generate report file "C:\cygwin64\home\koray\verilog\lab2\impl\gwsynthesis\lab2_syn.rpt.html" completed -GowinSynthesis finish diff --git a/iverilog/tobb/labs/lab2_prep/impl/gwsynthesis/lab2.prj b/iverilog/tobb/labs/lab2_prep/impl/gwsynthesis/lab2.prj deleted file mode 100644 index 735ef5b..0000000 --- a/iverilog/tobb/labs/lab2_prep/impl/gwsynthesis/lab2.prj +++ /dev/null @@ -1,20 +0,0 @@ - - - - beta - - - - - - - - diff --git a/iverilog/tobb/labs/lab2_prep/impl/gwsynthesis/lab2.vg b/iverilog/tobb/labs/lab2_prep/impl/gwsynthesis/lab2.vg deleted file mode 100644 index de8a0ab..0000000 --- a/iverilog/tobb/labs/lab2_prep/impl/gwsynthesis/lab2.vg +++ /dev/null @@ -1,25 +0,0 @@ -// -//Written by GowinSynthesis -//Tool Version "V1.9.9.02" -//Thu Apr 11 06:15:18 2024 - -//Source file index table: -//file0 "\C:/cygwin64/home/koray/verilog/lab2/src/lab2.v" -//file1 "\C:/cygwin64/home/koray/verilog/lab2/src/tb.v" -`timescale 100 ps/100 ps -module tb ( - -) -; -wire VCC; -wire GND; - VCC VCC_cZ ( - .V(VCC) -); - GND GND_cZ ( - .G(GND) -); - GSR GSR ( - .GSRI(VCC) -); -endmodule /* tb */ diff --git a/iverilog/tobb/labs/lab2_prep/impl/gwsynthesis/lab2_syn.rpt.html b/iverilog/tobb/labs/lab2_prep/impl/gwsynthesis/lab2_syn.rpt.html deleted file mode 100644 index a55f2dd..0000000 --- a/iverilog/tobb/labs/lab2_prep/impl/gwsynthesis/lab2_syn.rpt.html +++ /dev/null @@ -1,144 +0,0 @@ - - - -synthesis Report - - - -
- -
-

Synthesis Messages

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Report TitleGowinSynthesis Report
Design FileC:\cygwin64\home\koray\verilog\lab2\src\lab2.v
-C:\cygwin64\home\koray\verilog\lab2\src\tb.v
-
GowinSynthesis Constraints File---
Tool VersionV1.9.9.02
Part NumberGW2A-LV18PG256C8/I7
DeviceGW2A-18
Device VersionC
Created TimeThu Apr 11 06:15:18 2024 -
Legal AnnouncementCopyright (C)2014-2024 Gowin Semiconductor Corporation. ALL rights reserved.
-

Synthesis Details

- - - - - - - - - - - - - -
Top Level Moduletb
Synthesis ProcessRunning parser:
    CPU time = 0h 0m 0.109s, Elapsed time = 0h 0m 0.148s, Peak memory usage = 184.680MB
Running netlist conversion:
    CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0s, Peak memory usage = 0MB
Running device independent optimization:
    Optimizing Phase 0: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0s, Peak memory usage = 184.680MB
    Optimizing Phase 1: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0s, Peak memory usage = 184.680MB
    Optimizing Phase 2: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0s, Peak memory usage = 184.680MB
Running inference:
    Inferring Phase 0: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0s, Peak memory usage = 184.680MB
    Inferring Phase 1: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0s, Peak memory usage = 184.680MB
    Inferring Phase 2: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0s, Peak memory usage = 184.680MB
    Inferring Phase 3: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0s, Peak memory usage = 184.680MB
Running technical mapping:
    Tech-Mapping Phase 0: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0s, Peak memory usage = 184.680MB
    Tech-Mapping Phase 1: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0s, Peak memory usage = 184.680MB
    Tech-Mapping Phase 2: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0s, Peak memory usage = 184.680MB
    Tech-Mapping Phase 3: CPU time = 0h 0m 0.031s, Elapsed time = 0h 0m 0.058s, Peak memory usage = 184.680MB
    Tech-Mapping Phase 4: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0s, Peak memory usage = 184.680MB
Generate output files:
    CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0.002s, Peak memory usage = 184.680MB
Total Time and Memory UsageCPU time = 0h 0m 0.14s, Elapsed time = 0h 0m 0.208s, Peak memory usage = 184.680MB
-

Resource

-

Resource Usage Summary

- - - - - -
ResourceUsage
-

Resource Utilization Summary

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ResourceUsageUtilization
Logic0(0 LUT, 0 ALU) / 207360%
Register0 / 161730%
  --Register as Latch0 / 161730%
  --Register as FF0 / 161730%
BSRAM0 / 460%
-
-
- - diff --git a/iverilog/tobb/labs/lab2_prep/impl/gwsynthesis/lab2_syn_resource.html b/iverilog/tobb/labs/lab2_prep/impl/gwsynthesis/lab2_syn_resource.html deleted file mode 100644 index 5b0850c..0000000 --- a/iverilog/tobb/labs/lab2_prep/impl/gwsynthesis/lab2_syn_resource.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -Hierarchy Module Resource - - - -
-
-

Hierarchy Module Resource

- - - - - - - - - - - - - - - - - - - - - -
MODULE NAMEREG NUMBERALU NUMBERLUT NUMBERDSP NUMBERBSRAM NUMBERSSRAM NUMBERROM16 NUMBER
tb (C:/cygwin64/home/koray/verilog/lab2/src/tb.v)-------
-
-
- - diff --git a/iverilog/tobb/labs/lab2_prep/impl/gwsynthesis/lab2_syn_rsc.xml b/iverilog/tobb/labs/lab2_prep/impl/gwsynthesis/lab2_syn_rsc.xml deleted file mode 100644 index b7ee1a0..0000000 --- a/iverilog/tobb/labs/lab2_prep/impl/gwsynthesis/lab2_syn_rsc.xml +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/iverilog/tobb/labs/lab2_prep/impl/lab2_process_config.json b/iverilog/tobb/labs/lab2_prep/impl/lab2_process_config.json deleted file mode 100644 index ba19aba..0000000 --- a/iverilog/tobb/labs/lab2_prep/impl/lab2_process_config.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "BACKGROUND_PROGRAMMING" : "off", - "COMPRESS" : false, - "CPU" : false, - "CRC_CHECK" : true, - "Clock_Route_Order" : 0, - "Correct_Hold_Violation" : true, - "DONE" : false, - "DOWNLOAD_SPEED" : "default", - "Disable_Insert_Pad" : false, - "ENABLE_CTP" : false, - "ENABLE_MERGE_MODE" : false, - "ENCRYPTION_KEY" : false, - "ENCRYPTION_KEY_TEXT" : "00000000000000000000000000000000", - "ERROR_DECTION_AND_CORRECTION" : false, - "ERROR_DECTION_ONLY" : false, - "ERROR_INJECTION" : false, - "EXTERNAL_MASTER_CONFIG_CLOCK" : false, - "Enable_DSRM" : false, - "FORMAT" : "binary", - "FREQUENCY_DIVIDER" : "", - "Generate_Constraint_File_of_Ports" : false, - "Generate_IBIS_File" : false, - "Generate_Plain_Text_Timing_Report" : false, - "Generate_Post_PNR_Simulation_Model_File" : false, - "Generate_Post_Place_File" : false, - "Generate_SDF_File" : false, - "Generate_VHDL_Post_PNR_Simulation_Model_File" : false, - "Global_Freq" : "default", - "GwSyn_Loop_Limit" : 2000, - "HOTBOOT" : false, - "I2C" : false, - "I2C_SLAVE_ADDR" : "00", - "IncludePath" : [ - - ], - "Incremental_Compile" : "", - "Initialize_Primitives" : false, - "JTAG" : false, - "MODE_IO" : false, - "MSPI" : false, - "MSPI_JUMP" : false, - "MULTIBOOT_ADDRESS_WIDTH" : "24", - "MULTIBOOT_MODE" : "Normal", - "MULTIBOOT_SPI_FLASH_ADDRESS" : "00000000", - "MULTIJUMP_ADDRESS_WIDTH" : "24", - "MULTIJUMP_MODE" : "Normal", - "MULTIJUMP_SPI_FLASH_ADDRESS" : "000000", - "Multi_Boot" : true, - "OUTPUT_BASE_NAME" : "lab2", - "POWER_ON_RESET_MONITOR" : true, - "PRINT_BSRAM_VALUE" : true, - "PROGRAM_DONE_BYPASS" : false, - "PlaceInRegToIob" : true, - "PlaceIoRegToIob" : true, - "PlaceOutRegToIob" : true, - "Place_Option" : "0", - "Process_Configuration_Verion" : "1.0", - "Promote_Physical_Constraint_Warning_to_Error" : true, - "READY" : false, - "RECONFIG_N" : false, - "Ram_RW_Check" : false, - "Replicate_Resources" : false, - "Report_Auto-Placed_Io_Information" : false, - "Route_Maxfan" : 23, - "Route_Option" : "0", - "Run_Timing_Driven" : true, - "SECURE_MODE" : false, - "SECURITY_BIT" : true, - "SEU_HANDLER" : false, - "SEU_HANDLER_CHECKSUM" : false, - "SEU_HANDLER_MODE" : "auto", - "SSPI" : false, - "STOP_SEU_HANDLER" : false, - "Show_All_Warnings" : false, - "Synthesize_tool" : "GowinSyn", - "TclPre" : "", - "TopModule" : "", - "USERCODE" : "default", - "Unused_Pin" : "As_input_tri_stated_with_pull_up", - "VCCAUX" : 3.3, - "VCCX" : "3.3", - "VHDL_Standard" : "VHDL_Std_1993", - "Verilog_Standard" : "Vlg_Std_2001", - "WAKE_UP" : "0", - "show_all_warnings" : false, - "turn_off_bg" : false -} \ No newline at end of file diff --git a/iverilog/tobb/labs/lab2_prep/impl/temp/rtl_parser.result b/iverilog/tobb/labs/lab2_prep/impl/temp/rtl_parser.result deleted file mode 100644 index fbd6c08..0000000 --- a/iverilog/tobb/labs/lab2_prep/impl/temp/rtl_parser.result +++ /dev/null @@ -1,20 +0,0 @@ -[ - { - "InstFile" : "C:/cygwin64/home/koray/verilog/lab2/src/tb.v", - "InstLine" : 1, - "InstName" : "tb", - "ModuleFile" : "C:/cygwin64/home/koray/verilog/lab2/src/tb.v", - "ModuleLine" : 1, - "ModuleName" : "tb", - "SubInsts" : [ - { - "InstFile" : "C:/cygwin64/home/koray/verilog/lab2/src/tb.v", - "InstLine" : 6, - "InstName" : "uut", - "ModuleFile" : "C:/cygwin64/home/koray/verilog/lab2/src/lab2.v", - "ModuleLine" : 1, - "ModuleName" : "lab2" - } - ] - } -] \ No newline at end of file diff --git a/iverilog/tobb/labs/lab2_prep/impl/temp/rtl_parser_arg.json b/iverilog/tobb/labs/lab2_prep/impl/temp/rtl_parser_arg.json deleted file mode 100644 index e341e2a..0000000 --- a/iverilog/tobb/labs/lab2_prep/impl/temp/rtl_parser_arg.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "Device" : "GW2A-18C", - "Files" : [ - { - "Path" : "C:/cygwin64/home/koray/verilog/lab2/src/lab2.v", - "Type" : "verilog" - }, - { - "Path" : "C:/cygwin64/home/koray/verilog/lab2/src/tb.v", - "Type" : "verilog" - } - ], - "IncludePath" : [ - - ], - "LoopLimit" : 2000, - "ResultFile" : "C:/cygwin64/home/koray/verilog/lab2/impl/temp/rtl_parser.result", - "Top" : "", - "VerilogStd" : "verilog_2001", - "VhdlStd" : "vhdl_93" -} \ No newline at end of file diff --git a/iverilog/tobb/labs/lab2_prep/lab2.gprj b/iverilog/tobb/labs/lab2_prep/lab2.gprj deleted file mode 100644 index f2930c8..0000000 --- a/iverilog/tobb/labs/lab2_prep/lab2.gprj +++ /dev/null @@ -1,12 +0,0 @@ - - - - - 5 - gw2a18c-011 - - - - - - diff --git a/iverilog/tobb/labs/lab2_prep/lab2.gprj.user b/iverilog/tobb/labs/lab2_prep/lab2.gprj.user deleted file mode 100644 index b0c56b7..0000000 --- a/iverilog/tobb/labs/lab2_prep/lab2.gprj.user +++ /dev/null @@ -1,17 +0,0 @@ - - - - 1.0 - - - - - - - - - - - - 000000ff00000001fd0000000200000000000001700000013dfc0200000001fc000000630000013d0000000000fffffffaffffffff0200000003fb00000030004600700067006100500072006f006a006500630074002e00500061006e0065006c002e00440065007300690067006e0100000000ffffffff0000000000000000fb00000032004600700067006100500072006f006a006500630074002e00500061006e0065006c002e00500072006f00630065007300730100000000ffffffff0000000000000000fb00000036004600700067006100500072006f006a006500630074002e00500061006e0065006c002e0048006900650072006100720063006800790100000000ffffffff0000000000000000000000030000050000000114fc0100000001fc0000000000000500000000a100fffffffa000000000100000002fb00000032004600700067006100500072006f006a006500630074002e00500061006e0065006c002e00470065006e006500720061006c0100000000ffffffff0000007800fffffffb0000002e004600700067006100500072006f006a006500630074002e00500061006e0065006c002e004900730073007500650100000000ffffffff000000a100ffffff000003880000013d00000004000000040000000800000008fc000000010000000200000003000000220043006f00720065002e0054006f006f006c006200610072002e00460069006c00650100000000ffffffff0000000000000000000000220043006f00720065002e0054006f006f006c006200610072002e0045006400690074010000009bffffffff0000000000000000000000240043006f00720065002e0054006f006f006c006200610072002e0054006f006f006c00730100000157ffffffff0000000000000000 - diff --git a/iverilog/tobb/labs/lab2_prep/src/dmp.vcd b/iverilog/tobb/labs/lab2_prep/src/dmp.vcd deleted file mode 100644 index 7e83388..0000000 --- a/iverilog/tobb/labs/lab2_prep/src/dmp.vcd +++ /dev/null @@ -1,77 +0,0 @@ -$date - Thu Apr 11 06:20:47 2024 -$end -$version - Icarus Verilog -$end -$timescale - 1s -$end -$scope module tb $end -$var wire 1 ! w1 $end -$var reg 1 " r1 $end -$var reg 1 # r2 $end -$var reg 1 $ r3 $end -$var reg 1 % r4 $end -$scope module uut $end -$var wire 1 " A $end -$var wire 1 & AD $end -$var wire 1 ' An $end -$var wire 1 ( AnBC $end -$var wire 1 # B $end -$var wire 1 ) Bn $end -$var wire 1 $ C $end -$var wire 1 * Cn $end -$var wire 1 + CnD $end -$var wire 1 % D $end -$var wire 1 ! F $end -$upscope $end -$upscope $end -$enddefinitions $end -$comment Show the parameter values. $end -$dumpall -$end -#0 -$dumpvars -0+ -1* -1) -0( -1' -0& -0% -0$ -0# -0" -1! -$end -#50 -1+ -1% -#100 -0+ -0* -0% -1$ -#150 -1% -#200 -0! -1* -0) -0% -0$ -1# -#250 -1! -1+ -1% -#300 -0+ -1( -0* -0% -1$ -#350 -1% -#400 diff --git a/iverilog/tobb/labs/lab2_prep/src/lab b/iverilog/tobb/labs/lab2_prep/src/lab deleted file mode 100644 index 8528ae4..0000000 --- a/iverilog/tobb/labs/lab2_prep/src/lab +++ /dev/null @@ -1,126 +0,0 @@ -#! /c/Source/iverilog-install/bin/vvp -:ivl_version "12.0 (devel)" "(s20150603-1539-g2693dd32b)"; -:ivl_delay_selection "TYPICAL"; -:vpi_time_precision + 0; -:vpi_module "C:\iverilog\lib\ivl\system.vpi"; -:vpi_module "C:\iverilog\lib\ivl\vhdl_sys.vpi"; -:vpi_module "C:\iverilog\lib\ivl\vhdl_textio.vpi"; -:vpi_module "C:\iverilog\lib\ivl\v2005_math.vpi"; -:vpi_module "C:\iverilog\lib\ivl\va_math.vpi"; -S_000001e2946aad20 .scope module, "tb" "tb" 2 1; - .timescale 0 0; -v000001e29475e7f0_0 .var "r1", 0 0; -v000001e29475e6b0_0 .var "r2", 0 0; -v000001e29475ec50_0 .var "r3", 0 0; -v000001e29475e430_0 .var "r4", 0 0; -v000001e29475ecf0_0 .net "w1", 0 0, L_000001e29475f0f0; 1 drivers -S_000001e294717fc0 .scope module, "uut" "lab2" 2 6, 3 1 0, S_000001e2946aad20; - .timescale 0 0; - .port_info 0 /INPUT 1 "A"; - .port_info 1 /INPUT 1 "B"; - .port_info 2 /INPUT 1 "C"; - .port_info 3 /INPUT 1 "D"; - .port_info 4 /OUTPUT 1 "F"; -L_000001e2947183d0 .functor NOT 1, v000001e29475e7f0_0, C4<0>, C4<0>, C4<0>; -L_000001e2946e2bc0 .functor AND 1, L_000001e2947183d0, v000001e29475e6b0_0, v000001e29475ec50_0, C4<1>; -L_000001e2946e2d20 .functor NOT 1, v000001e29475e6b0_0, C4<0>, C4<0>, C4<0>; -L_000001e29475f390 .functor AND 1, v000001e29475e7f0_0, v000001e29475e430_0, C4<1>, C4<1>; -L_000001e29475f4e0 .functor NOT 1, v000001e29475ec50_0, C4<0>, C4<0>, C4<0>; -L_000001e29475f780 .functor AND 1, L_000001e29475f4e0, v000001e29475e430_0, C4<1>, C4<1>; -L_000001e29475f0f0 .functor OR 1, L_000001e2946e2bc0, L_000001e2946e2d20, L_000001e29475f390, L_000001e29475f780; -v000001e2946e2a40_0 .net "A", 0 0, v000001e29475e7f0_0; 1 drivers -v000001e2946e28d0_0 .net "AD", 0 0, L_000001e29475f390; 1 drivers -v000001e2946a9e10_0 .net "An", 0 0, L_000001e2947183d0; 1 drivers -v000001e2946aaeb0_0 .net "AnBC", 0 0, L_000001e2946e2bc0; 1 drivers -v000001e294718150_0 .net "B", 0 0, v000001e29475e6b0_0; 1 drivers -v000001e2947181f0_0 .net "Bn", 0 0, L_000001e2946e2d20; 1 drivers -v000001e294718290_0 .net "C", 0 0, v000001e29475ec50_0; 1 drivers -v000001e294718330_0 .net "Cn", 0 0, L_000001e29475f4e0; 1 drivers -v000001e294714e50_0 .net "CnD", 0 0, L_000001e29475f780; 1 drivers -v000001e294714ef0_0 .net "D", 0 0, v000001e29475e430_0; 1 drivers -v000001e29475e390_0 .net "F", 0 0, L_000001e29475f0f0; alias, 1 drivers - .scope S_000001e2946aad20; -T_0 ; - %vpi_call 2 17 "$dumpfile", "dmp.vcd" {0 0 0}; - %vpi_call 2 18 "$dumpvars" {0 0 0}; - %pushi/vec4 0, 0, 1; - %store/vec4 v000001e29475e7f0_0, 0, 1; - %pushi/vec4 0, 0, 1; - %store/vec4 v000001e29475e6b0_0, 0, 1; - %pushi/vec4 0, 0, 1; - %store/vec4 v000001e29475ec50_0, 0, 1; - %pushi/vec4 0, 0, 1; - %store/vec4 v000001e29475e430_0, 0, 1; - %delay 50, 0; - %pushi/vec4 0, 0, 1; - %store/vec4 v000001e29475e7f0_0, 0, 1; - %pushi/vec4 0, 0, 1; - %store/vec4 v000001e29475e6b0_0, 0, 1; - %pushi/vec4 0, 0, 1; - %store/vec4 v000001e29475ec50_0, 0, 1; - %pushi/vec4 1, 0, 1; - %store/vec4 v000001e29475e430_0, 0, 1; - %delay 50, 0; - %pushi/vec4 0, 0, 1; - %store/vec4 v000001e29475e7f0_0, 0, 1; - %pushi/vec4 0, 0, 1; - %store/vec4 v000001e29475e6b0_0, 0, 1; - %pushi/vec4 1, 0, 1; - %store/vec4 v000001e29475ec50_0, 0, 1; - %pushi/vec4 0, 0, 1; - %store/vec4 v000001e29475e430_0, 0, 1; - %delay 50, 0; - %pushi/vec4 0, 0, 1; - %store/vec4 v000001e29475e7f0_0, 0, 1; - %pushi/vec4 0, 0, 1; - %store/vec4 v000001e29475e6b0_0, 0, 1; - %pushi/vec4 1, 0, 1; - %store/vec4 v000001e29475ec50_0, 0, 1; - %pushi/vec4 1, 0, 1; - %store/vec4 v000001e29475e430_0, 0, 1; - %delay 50, 0; - %pushi/vec4 0, 0, 1; - %store/vec4 v000001e29475e7f0_0, 0, 1; - %pushi/vec4 1, 0, 1; - %store/vec4 v000001e29475e6b0_0, 0, 1; - %pushi/vec4 0, 0, 1; - %store/vec4 v000001e29475ec50_0, 0, 1; - %pushi/vec4 0, 0, 1; - %store/vec4 v000001e29475e430_0, 0, 1; - %delay 50, 0; - %pushi/vec4 0, 0, 1; - %store/vec4 v000001e29475e7f0_0, 0, 1; - %pushi/vec4 1, 0, 1; - %store/vec4 v000001e29475e6b0_0, 0, 1; - %pushi/vec4 0, 0, 1; - %store/vec4 v000001e29475ec50_0, 0, 1; - %pushi/vec4 1, 0, 1; - %store/vec4 v000001e29475e430_0, 0, 1; - %delay 50, 0; - %pushi/vec4 0, 0, 1; - %store/vec4 v000001e29475e7f0_0, 0, 1; - %pushi/vec4 1, 0, 1; - %store/vec4 v000001e29475e6b0_0, 0, 1; - %pushi/vec4 1, 0, 1; - %store/vec4 v000001e29475ec50_0, 0, 1; - %pushi/vec4 0, 0, 1; - %store/vec4 v000001e29475e430_0, 0, 1; - %delay 50, 0; - %pushi/vec4 0, 0, 1; - %store/vec4 v000001e29475e7f0_0, 0, 1; - %pushi/vec4 1, 0, 1; - %store/vec4 v000001e29475e6b0_0, 0, 1; - %pushi/vec4 1, 0, 1; - %store/vec4 v000001e29475ec50_0, 0, 1; - %pushi/vec4 1, 0, 1; - %store/vec4 v000001e29475e430_0, 0, 1; - %delay 50, 0; - %vpi_call 2 27 "$display", v000001e29475ecf0_0 {0 0 0}; - %end; - .thread T_0; -# The file index is used to find the file name in the following table. -:file_names 4; - "N/A"; - ""; - "tb.v"; - "lab2.v"; diff --git a/iverilog/tobb/labs/lab2_prep/src/lab2 b/iverilog/tobb/labs/lab2_prep/src/lab2 deleted file mode 100644 index 98eaebb..0000000 --- a/iverilog/tobb/labs/lab2_prep/src/lab2 +++ /dev/null @@ -1,43 +0,0 @@ -#! /c/Source/iverilog-install/bin/vvp -:ivl_version "12.0 (devel)" "(s20150603-1539-g2693dd32b)"; -:ivl_delay_selection "TYPICAL"; -:vpi_time_precision + 0; -:vpi_module "C:\iverilog\lib\ivl\system.vpi"; -:vpi_module "C:\iverilog\lib\ivl\vhdl_sys.vpi"; -:vpi_module "C:\iverilog\lib\ivl\vhdl_textio.vpi"; -:vpi_module "C:\iverilog\lib\ivl\v2005_math.vpi"; -:vpi_module "C:\iverilog\lib\ivl\va_math.vpi"; -S_0000016d6fd625e0 .scope module, "lab2" "lab2" 2 1; - .timescale 0 0; - .port_info 0 /INPUT 1 "A"; - .port_info 1 /INPUT 1 "B"; - .port_info 2 /INPUT 1 "C"; - .port_info 3 /INPUT 1 "D"; - .port_info 4 /OUTPUT 1 "F"; -o0000016d6fd96f98 .functor BUFZ 1, C4; HiZ drive -L_0000016d6fd62f70 .functor NOT 1, o0000016d6fd96f98, C4<0>, C4<0>, C4<0>; -o0000016d6fd97058 .functor BUFZ 1, C4; HiZ drive -o0000016d6fd970b8 .functor BUFZ 1, C4; HiZ drive -L_0000016d6fedb7d0 .functor AND 1, L_0000016d6fd62f70, o0000016d6fd97058, o0000016d6fd970b8, C4<1>; -L_0000016d6fedb840 .functor NOT 1, o0000016d6fd97058, C4<0>, C4<0>, C4<0>; -o0000016d6fd97148 .functor BUFZ 1, C4; HiZ drive -L_0000016d6fedb8b0 .functor AND 1, o0000016d6fd96f98, o0000016d6fd97148, C4<1>, C4<1>; -L_0000016d6fedb920 .functor NOT 1, o0000016d6fd970b8, C4<0>, C4<0>, C4<0>; -L_0000016d6fedb990 .functor AND 1, L_0000016d6fedb920, o0000016d6fd97148, C4<1>, C4<1>; -L_0000016d6fedba00 .functor OR 1, L_0000016d6fedb7d0, L_0000016d6fedb840, L_0000016d6fedb8b0, L_0000016d6fedb990; -v0000016d6fd62b30_0 .net "A", 0 0, o0000016d6fd96f98; 0 drivers -v0000016d6fd62d50_0 .net "AD", 0 0, L_0000016d6fedb8b0; 1 drivers -v0000016d6fd62770_0 .net "An", 0 0, L_0000016d6fd62f70; 1 drivers -v0000016d6fd62810_0 .net "AnBC", 0 0, L_0000016d6fedb7d0; 1 drivers -v0000016d6fd628b0_0 .net "B", 0 0, o0000016d6fd97058; 0 drivers -v0000016d6fededb0_0 .net "Bn", 0 0, L_0000016d6fedb840; 1 drivers -v0000016d6fedee50_0 .net "C", 0 0, o0000016d6fd970b8; 0 drivers -v0000016d6fedeef0_0 .net "Cn", 0 0, L_0000016d6fedb920; 1 drivers -v0000016d6fedb600_0 .net "CnD", 0 0, L_0000016d6fedb990; 1 drivers -v0000016d6fedb730_0 .net "D", 0 0, o0000016d6fd97148; 0 drivers -v0000016d6fd90c30_0 .net "F", 0 0, L_0000016d6fedba00; 1 drivers -# The file index is used to find the file name in the following table. -:file_names 3; - "N/A"; - ""; - "lab2.v"; diff --git a/iverilog/tobb/labs/lab2_prep/src/lab2.v b/iverilog/tobb/labs/lab2_prep/src/lab2.v deleted file mode 100644 index 973c5f1..0000000 --- a/iverilog/tobb/labs/lab2_prep/src/lab2.v +++ /dev/null @@ -1,24 +0,0 @@ -module lab2( - input A, - input B, - input C, - input D, - output F - ); - - wire An, Bn, Cn; - wire AnBC, AD, CnD; - - not n1 (An, A); - and (AnBC, An, B, C); - - not (Bn, B); - and (AD, A, D); - - not (Cn, C); - and (CnD, Cn, D); - - or (F, AnBC, Bn, AD, CnD); - - -endmodule \ No newline at end of file diff --git a/iverilog/tobb/labs/lab2_prep/src/labwave b/iverilog/tobb/labs/lab2_prep/src/labwave deleted file mode 100644 index 2035d59..0000000 --- a/iverilog/tobb/labs/lab2_prep/src/labwave +++ /dev/null @@ -1,43 +0,0 @@ -#! /c/Source/iverilog-install/bin/vvp -:ivl_version "12.0 (devel)" "(s20150603-1539-g2693dd32b)"; -:ivl_delay_selection "TYPICAL"; -:vpi_time_precision + 0; -:vpi_module "C:\iverilog\lib\ivl\system.vpi"; -:vpi_module "C:\iverilog\lib\ivl\vhdl_sys.vpi"; -:vpi_module "C:\iverilog\lib\ivl\vhdl_textio.vpi"; -:vpi_module "C:\iverilog\lib\ivl\v2005_math.vpi"; -:vpi_module "C:\iverilog\lib\ivl\va_math.vpi"; -S_000001e0df4625e0 .scope module, "f_lab2" "f_lab2" 2 1; - .timescale 0 0; - .port_info 0 /INPUT 1 "A"; - .port_info 1 /INPUT 1 "B"; - .port_info 2 /INPUT 1 "C"; - .port_info 3 /INPUT 1 "D"; - .port_info 4 /OUTPUT 1 "F"; -o000001e0df496fd8 .functor BUFZ 1, C4; HiZ drive -L_000001e0df462f70 .functor NOT 1, o000001e0df496fd8, C4<0>, C4<0>, C4<0>; -o000001e0df497098 .functor BUFZ 1, C4; HiZ drive -o000001e0df4970f8 .functor BUFZ 1, C4; HiZ drive -L_000001e0df64aa10 .functor AND 1, L_000001e0df462f70, o000001e0df497098, o000001e0df4970f8, C4<1>; -L_000001e0df64aa80 .functor NOT 1, o000001e0df497098, C4<0>, C4<0>, C4<0>; -o000001e0df497188 .functor BUFZ 1, C4; HiZ drive -L_000001e0df64aaf0 .functor AND 1, o000001e0df496fd8, o000001e0df497188, C4<1>, C4<1>; -L_000001e0df64ab60 .functor NOT 1, o000001e0df4970f8, C4<0>, C4<0>, C4<0>; -L_000001e0df64abd0 .functor AND 1, L_000001e0df64ab60, o000001e0df497188, C4<1>, C4<1>; -L_000001e0df64ac40 .functor OR 1, L_000001e0df64aa10, L_000001e0df64aa80, L_000001e0df64aaf0, L_000001e0df64abd0; -v000001e0df462b30_0 .net "A", 0 0, o000001e0df496fd8; 0 drivers -v000001e0df462d50_0 .net "AD", 0 0, L_000001e0df64aaf0; 1 drivers -v000001e0df462770_0 .net "An", 0 0, L_000001e0df462f70; 1 drivers -v000001e0df462810_0 .net "AnBC", 0 0, L_000001e0df64aa10; 1 drivers -v000001e0df4628b0_0 .net "B", 0 0, o000001e0df497098; 0 drivers -v000001e0df64ed90_0 .net "Bn", 0 0, L_000001e0df64aa80; 1 drivers -v000001e0df64ee30_0 .net "C", 0 0, o000001e0df4970f8; 0 drivers -v000001e0df64eed0_0 .net "Cn", 0 0, L_000001e0df64ab60; 1 drivers -v000001e0df64a840_0 .net "CnD", 0 0, L_000001e0df64abd0; 1 drivers -v000001e0df64a970_0 .net "D", 0 0, o000001e0df497188; 0 drivers -v000001e0df492660_0 .net "F", 0 0, L_000001e0df64ac40; 1 drivers -# The file index is used to find the file name in the following table. -:file_names 3; - "N/A"; - ""; - ".\f_lab2.v"; diff --git a/iverilog/tobb/labs/lab2_prep/src/tb.v b/iverilog/tobb/labs/lab2_prep/src/tb.v deleted file mode 100644 index 88fb2aa..0000000 --- a/iverilog/tobb/labs/lab2_prep/src/tb.v +++ /dev/null @@ -1,32 +0,0 @@ -module tb(); - -reg r1, r2, r3, r4; -wire w1; - -lab2 uut( - .A(r1), - .B(r2), - .C(r3), - .D(r4), - .F(w1) -); - -// test uut(r1, r2, w1, w2, w3); - -initial begin - $dumpfile("dmp.vcd"); - $dumpvars; - r1 = 1'b0; r2 = 1'b0; r3 = 1'b0; r4 = 1'b0; #50; - r1 = 1'b0; r2 = 1'b0; r3 = 1'b0; r4 = 1'b1; #50; - r1 = 1'b0; r2 = 1'b0; r3 = 1'b1; r4 = 1'b0; #50; - r1 = 1'b0; r2 = 1'b0; r3 = 1'b1; r4 = 1'b1; #50; - r1 = 1'b0; r2 = 1'b1; r3 = 1'b0; r4 = 1'b0; #50; - r1 = 1'b0; r2 = 1'b1; r3 = 1'b0; r4 = 1'b1; #50; - r1 = 1'b0; r2 = 1'b1; r3 = 1'b1; r4 = 1'b0; #50; - r1 = 1'b0; r2 = 1'b1; r3 = 1'b1; r4 = 1'b1; #50; - $display(w1); -end - - - -endmodule \ No newline at end of file diff --git a/iverilog/tobb/labs/lab3/impl/gwsynthesis/lab3.log b/iverilog/tobb/labs/lab3/impl/gwsynthesis/lab3.log deleted file mode 100644 index 68a1a70..0000000 --- a/iverilog/tobb/labs/lab3/impl/gwsynthesis/lab3.log +++ /dev/null @@ -1,27 +0,0 @@ -GowinSynthesis start -Running parser ... -Analyzing Verilog file 'C:\cygwin64\home\koray\verilog\lab3\src\fullAdder.v' -Analyzing Verilog file 'C:\cygwin64\home\koray\verilog\lab3\src\halfAdder.v' -Analyzing Verilog file 'C:\cygwin64\home\koray\verilog\lab3\src\mult2bit.v' -Compiling module 'mult2bit'("C:\cygwin64\home\koray\verilog\lab3\src\mult2bit.v":1) -Compiling module 'halfAdder'("C:\cygwin64\home\koray\verilog\lab3\src\halfAdder.v":1) -NOTE (EX0101) : Current top module is "mult2bit" -[5%] Running netlist conversion ... -Running device independent optimization ... -[10%] Optimizing Phase 0 completed -[15%] Optimizing Phase 1 completed -[25%] Optimizing Phase 2 completed -Running inference ... -[30%] Inferring Phase 0 completed -[40%] Inferring Phase 1 completed -[50%] Inferring Phase 2 completed -[55%] Inferring Phase 3 completed -Running technical mapping ... -[60%] Tech-Mapping Phase 0 completed -[65%] Tech-Mapping Phase 1 completed -[75%] Tech-Mapping Phase 2 completed -[80%] Tech-Mapping Phase 3 completed -[90%] Tech-Mapping Phase 4 completed -[95%] Generate netlist file "C:\cygwin64\home\koray\verilog\lab3\impl\gwsynthesis\lab3.vg" completed -[100%] Generate report file "C:\cygwin64\home\koray\verilog\lab3\impl\gwsynthesis\lab3_syn.rpt.html" completed -GowinSynthesis finish diff --git a/iverilog/tobb/labs/lab3/impl/gwsynthesis/lab3.prj b/iverilog/tobb/labs/lab3/impl/gwsynthesis/lab3.prj deleted file mode 100644 index 35227f2..0000000 --- a/iverilog/tobb/labs/lab3/impl/gwsynthesis/lab3.prj +++ /dev/null @@ -1,21 +0,0 @@ - - - - beta - - - - - - - - - diff --git a/iverilog/tobb/labs/lab3/impl/gwsynthesis/lab3.vg b/iverilog/tobb/labs/lab3/impl/gwsynthesis/lab3.vg deleted file mode 100644 index 0af520a..0000000 --- a/iverilog/tobb/labs/lab3/impl/gwsynthesis/lab3.vg +++ /dev/null @@ -1,144 +0,0 @@ -// -//Written by GowinSynthesis -//Tool Version "V1.9.9.02" -//Sat May 4 01:07:38 2024 - -//Source file index table: -//file0 "\C:/cygwin64/home/koray/verilog/lab3/src/fullAdder.v" -//file1 "\C:/cygwin64/home/koray/verilog/lab3/src/halfAdder.v" -//file2 "\C:/cygwin64/home/koray/verilog/lab3/src/mult2bit.v" -`timescale 100 ps/100 ps -module halfAdder ( - A_d, - B_d, - C_d -) -; -input [1:0] A_d; -input [1:0] B_d; -output [1:1] C_d; -wire VCC; -wire GND; - LUT4 C_d_1_s ( - .F(C_d[1]), - .I0(A_d[1]), - .I1(B_d[0]), - .I2(A_d[0]), - .I3(B_d[1]) -); -defparam C_d_1_s.INIT=16'h7888; - VCC VCC_cZ ( - .V(VCC) -); - GND GND_cZ ( - .G(GND) -); -endmodule /* halfAdder */ -module halfAdder_0 ( - A_d, - B_d, - C_d -) -; -input [1:0] A_d; -input [1:0] B_d; -output [3:2] C_d; -wire VCC; -wire GND; - LUT4 C_d_3_s ( - .F(C_d[3]), - .I0(A_d[0]), - .I1(B_d[0]), - .I2(A_d[1]), - .I3(B_d[1]) -); -defparam C_d_3_s.INIT=16'h7000; - LUT4 C_d_2_s ( - .F(C_d[2]), - .I0(A_d[1]), - .I1(B_d[0]), - .I2(A_d[0]), - .I3(B_d[1]) -); -defparam C_d_2_s.INIT=16'h8000; - VCC VCC_cZ ( - .V(VCC) -); - GND GND_cZ ( - .G(GND) -); -endmodule /* halfAdder_0 */ -module mult2bit ( - A, - B, - C -) -; -input [1:0] A; -input [1:0] B; -output [3:0] C; -wire [1:0] A_d; -wire [1:0] B_d; -wire [0:0] C_d; -wire [1:1] C_d_0; -wire [3:2] C_d_1; -wire VCC; -wire GND; - IBUF A_0_ibuf ( - .O(A_d[0]), - .I(A[0]) -); - IBUF A_1_ibuf ( - .O(A_d[1]), - .I(A[1]) -); - IBUF B_0_ibuf ( - .O(B_d[0]), - .I(B[0]) -); - IBUF B_1_ibuf ( - .O(B_d[1]), - .I(B[1]) -); - OBUF C_0_obuf ( - .O(C[0]), - .I(C_d[0]) -); - OBUF C_1_obuf ( - .O(C[1]), - .I(C_d_0[1]) -); - OBUF C_2_obuf ( - .O(C[2]), - .I(C_d_1[2]) -); - OBUF C_3_obuf ( - .O(C[3]), - .I(C_d_1[3]) -); - LUT2 C_d_0_s ( - .F(C_d[0]), - .I0(B_d[0]), - .I1(A_d[0]) -); -defparam C_d_0_s.INIT=4'h8; - halfAdder h0 ( - .A_d(A_d[1:0]), - .B_d(B_d[1:0]), - .C_d(C_d_0[1]) -); - halfAdder_0 h1 ( - .A_d(A_d[1:0]), - .B_d(B_d[1:0]), - .C_d(C_d_1[3:2]) -); - VCC VCC_cZ ( - .V(VCC) -); - GND GND_cZ ( - .G(GND) -); - GSR GSR ( - .GSRI(VCC) -); -endmodule /* mult2bit */ diff --git a/iverilog/tobb/labs/lab3/impl/gwsynthesis/lab3_syn.rpt.html b/iverilog/tobb/labs/lab3/impl/gwsynthesis/lab3_syn.rpt.html deleted file mode 100644 index 3a29b53..0000000 --- a/iverilog/tobb/labs/lab3/impl/gwsynthesis/lab3_syn.rpt.html +++ /dev/null @@ -1,173 +0,0 @@ - - - -synthesis Report - - - -
- -
-

Synthesis Messages

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Report TitleGowinSynthesis Report
Design FileC:\cygwin64\home\koray\verilog\lab3\src\fullAdder.v
-C:\cygwin64\home\koray\verilog\lab3\src\halfAdder.v
-C:\cygwin64\home\koray\verilog\lab3\src\mult2bit.v
-
GowinSynthesis Constraints File---
Tool VersionV1.9.9.02
Part NumberGW2A-LV18PG256C8/I7
DeviceGW2A-18
Device VersionC
Created TimeSat May 4 01:07:38 2024 -
Legal AnnouncementCopyright (C)2014-2024 Gowin Semiconductor Corporation. ALL rights reserved.
-

Synthesis Details

- - - - - - - - - - - - - -
Top Level Modulemult2bit
Synthesis ProcessRunning parser:
    CPU time = 0h 0m 0.109s, Elapsed time = 0h 0m 0.134s, Peak memory usage = 417.762MB
Running netlist conversion:
    CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0s, Peak memory usage = 0MB
Running device independent optimization:
    Optimizing Phase 0: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0s, Peak memory usage = 417.762MB
    Optimizing Phase 1: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0s, Peak memory usage = 417.762MB
    Optimizing Phase 2: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0s, Peak memory usage = 417.762MB
Running inference:
    Inferring Phase 0: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0s, Peak memory usage = 417.762MB
    Inferring Phase 1: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0s, Peak memory usage = 417.762MB
    Inferring Phase 2: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0s, Peak memory usage = 417.762MB
    Inferring Phase 3: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0s, Peak memory usage = 417.762MB
Running technical mapping:
    Tech-Mapping Phase 0: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0s, Peak memory usage = 417.762MB
    Tech-Mapping Phase 1: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0s, Peak memory usage = 417.762MB
    Tech-Mapping Phase 2: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0s, Peak memory usage = 417.762MB
    Tech-Mapping Phase 3: CPU time = 0h 0m 0.125s, Elapsed time = 0h 0m 0.308s, Peak memory usage = 417.762MB
    Tech-Mapping Phase 4: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0s, Peak memory usage = 417.762MB
Generate output files:
    CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0.005s, Peak memory usage = 417.762MB
Total Time and Memory UsageCPU time = 0h 0m 0.234s, Elapsed time = 0h 0m 0.447s, Peak memory usage = 417.762MB
-

Resource

-

Resource Usage Summary

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ResourceUsage
I/O Port 8
I/O Buf 8
    IBUF4
    OBUF4
LUT 4
    LUT21
    LUT43
-

Resource Utilization Summary

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ResourceUsageUtilization
Logic4(4 LUT, 0 ALU) / 20736<1%
Register0 / 161730%
  --Register as Latch0 / 161730%
  --Register as FF0 / 161730%
BSRAM0 / 460%
-
-
- - diff --git a/iverilog/tobb/labs/lab3/impl/gwsynthesis/lab3_syn_resource.html b/iverilog/tobb/labs/lab3/impl/gwsynthesis/lab3_syn_resource.html deleted file mode 100644 index d6f66e1..0000000 --- a/iverilog/tobb/labs/lab3/impl/gwsynthesis/lab3_syn_resource.html +++ /dev/null @@ -1,66 +0,0 @@ - - - -Hierarchy Module Resource - - - -
-
-

Hierarchy Module Resource

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MODULE NAMEREG NUMBERALU NUMBERLUT NUMBERDSP NUMBERBSRAM NUMBERSSRAM NUMBERROM16 NUMBER
mult2bit (C:/cygwin64/home/koray/verilog/lab3/src/mult2bit.v)--1----
    |--h0 - (C:/cygwin64/home/koray/verilog/lab3/src/mult2bit.v)--1----
    |--h1 - (C:/cygwin64/home/koray/verilog/lab3/src/mult2bit.v)--2----
-
-
- - diff --git a/iverilog/tobb/labs/lab3/impl/gwsynthesis/lab3_syn_rsc.xml b/iverilog/tobb/labs/lab3/impl/gwsynthesis/lab3_syn_rsc.xml deleted file mode 100644 index 0dc3cd5..0000000 --- a/iverilog/tobb/labs/lab3/impl/gwsynthesis/lab3_syn_rsc.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/iverilog/tobb/labs/lab3/impl/lab3_process_config.json b/iverilog/tobb/labs/lab3/impl/lab3_process_config.json deleted file mode 100644 index e045e2c..0000000 --- a/iverilog/tobb/labs/lab3/impl/lab3_process_config.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "BACKGROUND_PROGRAMMING" : "off", - "COMPRESS" : false, - "CPU" : false, - "CRC_CHECK" : true, - "Clock_Route_Order" : 0, - "Correct_Hold_Violation" : true, - "DONE" : false, - "DOWNLOAD_SPEED" : "default", - "Disable_Insert_Pad" : false, - "ENABLE_CTP" : false, - "ENABLE_MERGE_MODE" : false, - "ENCRYPTION_KEY" : false, - "ENCRYPTION_KEY_TEXT" : "00000000000000000000000000000000", - "ERROR_DECTION_AND_CORRECTION" : false, - "ERROR_DECTION_ONLY" : false, - "ERROR_INJECTION" : false, - "EXTERNAL_MASTER_CONFIG_CLOCK" : false, - "Enable_DSRM" : false, - "FORMAT" : "binary", - "FREQUENCY_DIVIDER" : "", - "Generate_Constraint_File_of_Ports" : false, - "Generate_IBIS_File" : false, - "Generate_Plain_Text_Timing_Report" : false, - "Generate_Post_PNR_Simulation_Model_File" : false, - "Generate_Post_Place_File" : false, - "Generate_SDF_File" : false, - "Generate_VHDL_Post_PNR_Simulation_Model_File" : false, - "Global_Freq" : "default", - "GwSyn_Loop_Limit" : 2000, - "HOTBOOT" : false, - "I2C" : false, - "I2C_SLAVE_ADDR" : "00", - "IncludePath" : [ - - ], - "Incremental_Compile" : "", - "Initialize_Primitives" : false, - "JTAG" : false, - "MODE_IO" : false, - "MSPI" : false, - "MSPI_JUMP" : false, - "MULTIBOOT_ADDRESS_WIDTH" : "24", - "MULTIBOOT_MODE" : "Normal", - "MULTIBOOT_SPI_FLASH_ADDRESS" : "00000000", - "MULTIJUMP_ADDRESS_WIDTH" : "24", - "MULTIJUMP_MODE" : "Normal", - "MULTIJUMP_SPI_FLASH_ADDRESS" : "000000", - "Multi_Boot" : true, - "OUTPUT_BASE_NAME" : "lab3", - "POWER_ON_RESET_MONITOR" : true, - "PRINT_BSRAM_VALUE" : true, - "PROGRAM_DONE_BYPASS" : false, - "PlaceInRegToIob" : true, - "PlaceIoRegToIob" : true, - "PlaceOutRegToIob" : true, - "Place_Option" : "0", - "Process_Configuration_Verion" : "1.0", - "Promote_Physical_Constraint_Warning_to_Error" : true, - "READY" : false, - "RECONFIG_N" : false, - "Ram_RW_Check" : false, - "Replicate_Resources" : false, - "Report_Auto-Placed_Io_Information" : false, - "Route_Maxfan" : 23, - "Route_Option" : "0", - "Run_Timing_Driven" : true, - "SECURE_MODE" : false, - "SECURITY_BIT" : true, - "SEU_HANDLER" : false, - "SEU_HANDLER_CHECKSUM" : false, - "SEU_HANDLER_MODE" : "auto", - "SSPI" : false, - "STOP_SEU_HANDLER" : false, - "Show_All_Warnings" : false, - "Synthesize_tool" : "GowinSyn", - "TclPre" : "", - "TopModule" : "", - "USERCODE" : "default", - "Unused_Pin" : "As_input_tri_stated_with_pull_up", - "VCCAUX" : 3.3, - "VCCX" : "3.3", - "VHDL_Standard" : "VHDL_Std_1993", - "Verilog_Standard" : "Vlg_Std_2001", - "WAKE_UP" : "0", - "show_all_warnings" : false, - "turn_off_bg" : false -} \ No newline at end of file diff --git a/iverilog/tobb/labs/lab3/impl/pnr/cmd.do b/iverilog/tobb/labs/lab3/impl/pnr/cmd.do deleted file mode 100644 index bfc31b1..0000000 --- a/iverilog/tobb/labs/lab3/impl/pnr/cmd.do +++ /dev/null @@ -1,12 +0,0 @@ --d C:\cygwin64\home\koray\verilog\lab3\impl\gwsynthesis\lab3.vg --p GW2A-18C-PBGA256-8 --pn GW2A-LV18PG256C8/I7 --cfg C:\cygwin64\home\koray\verilog\lab3\impl\pnr\device.cfg --bit --tr --ph --timing --cst_error --correct_hold 1 --route_maxfan 23 --global_freq 100.000 diff --git a/iverilog/tobb/labs/lab3/impl/pnr/device.cfg b/iverilog/tobb/labs/lab3/impl/pnr/device.cfg deleted file mode 100644 index fb81869..0000000 --- a/iverilog/tobb/labs/lab3/impl/pnr/device.cfg +++ /dev/null @@ -1,21 +0,0 @@ -set JTAG regular_io = false -set SSPI regular_io = false -set MSPI regular_io = false -set READY regular_io = false -set DONE regular_io = false -set I2C regular_io = false -set RECONFIG_N regular_io = false -set CRC_check = true -set compress = false -set encryption = false -set security_bit_enable = true -set bsram_init_fuse_print = true -set background_programming = off -set secure_mode = false -set program_done_bypass = false -set wake_up = 0 -set format = binary -set power_on_reset_monitor = true -set multiboot_spi_flash_address = 0x00000000 -set vccx = 3.3 -set unused_pin = default diff --git a/iverilog/tobb/labs/lab3/impl/pnr/lab3.bin b/iverilog/tobb/labs/lab3/impl/pnr/lab3.bin deleted file mode 100644 index 6e6b0c34ab00e3feb949aa7c5eb218c0be20a602..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 577178 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 V?%7}Tp6?CM7XM{KxW0Y+{{bGRu2ld4 diff --git a/iverilog/tobb/labs/lab3/impl/pnr/lab3.db b/iverilog/tobb/labs/lab3/impl/pnr/lab3.db deleted file mode 100644 index 8e4aa89cc666488ed9f113087ec719422687be05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 580 zcma)&$qvFW3`B>rFBc?)xb?p{B2I-{!v8Zbra+?}>gpx2J6`02q>VZ2=<{bujh$Hu za6&RfF>WBXFxdP<(%P@c - - -Pin Report - - - -
- -
-

Pin Messages

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Report TitlePin Report
Design FileC:\cygwin64\home\koray\verilog\lab3\impl\gwsynthesis\lab3.vg
Physical Constraints File---
Timing Constraints File---
Tool VersionV1.9.9.02
Part NumberGW2A-LV18PG256C8/I7
DeviceGW2A-18
Device VersionC
Created TimeSat May 4 01:07:45 2024 -
Legal AnnouncementCopyright (C)2014-2024 Gowin Semiconductor Corporation. All rights reserved.
-

Pin Details

-

Pinout by Port Name:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Port NameDiff PairLoc./BankConstraintDir.SiteIO TypeDrivePull ModePCI ClampHysteresisOpen DrainVrefSingle ResistorDiff ResistorBankVccio
A[0]A15/7NinIOL2[B]LVCMOS18NAUPONNONENANAOFFNA1.8
A[1]L15/0NinIOT2[A]LVCMOS18NAUPONNONENANANANA1.8
B[0]D16/0NinIOT4[A]LVCMOS18NAUPONNONENANANANA1.8
B[1]B12/7NinIOL7[B]LVCMOS18NAUPONNONENANAOFFNA1.8
C[0]E14/0NoutIOT4[B]LVCMOS188UPNANAOFFNANANA1.8
C[1]B14/7NoutIOL2[A]LVCMOS188UPNANAOFFNAOFFNA1.8
C[2]C12/7NoutIOL7[A]LVCMOS188UPNANAOFFNAOFFNA1.8
C[3]C16/0NoutIOT5[A]LVCMOS188UPNANAOFFNANANA1.8
-
-

All Package Pins:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Loc./BankSignalDir.SiteIO TypeDrivePull ModePCI ClampHysteresisOpen DrainVrefSingle ResistorDiff ResistorBank Vccio
L15/0A[1]inIOT2[A]LVCMOS18NAUPONNONENANANANA1.8
D16/0B[0]inIOT4[A]LVCMOS18NAUPONNONENANANANA1.8
E14/0C[0]outIOT4[B]LVCMOS188UPNANAOFFNANANA1.8
C16/0C[3]outIOT5[A]LVCMOS188UPNANAOFFNANANA1.8
D15/0-inIOT5[B]LVCMOS18NAUPONNONENANANANA1.8
E16/0-inIOT6[A]LVCMOS18NAUPONNONENANANANA1.8
F15/0-inIOT6[B]LVCMOS18NAUPONNONENANANANA1.8
F13/0-inIOT8[A]LVCMOS18NAUPONNONENANANANA1.8
G12/0-inIOT8[B]LVCMOS18NAUPONNONENANANANA1.8
F14/0-inIOT9[A]LVCMOS18NAUPONNONENANANANA1.8
F16/0-inIOT9[B]LVCMOS18NAUPONNONENANANANA1.8
F12/0-inIOT12[A]LVCMOS18NAUPONNONENANANANA1.8
G13/0-inIOT12[B]LVCMOS18NAUPONNONENANANANA1.8
G15/0-inIOT13[A]LVCMOS18NAUPONNONENANANANA1.8
G14/0-inIOT13[B]LVCMOS18NAUPONNONENANANANA1.8
G11/0-inIOT14[A]LVCMOS18NAUPONNONENANANANA1.8
H12/0-inIOT14[B]LVCMOS18NAUPONNONENANANANA1.8
G16/0-inIOT16[A]LVCMOS18NAUPONNONENANANANA1.8
H15/0-inIOT16[B]LVCMOS18NAUPONNONENANANANA1.8
H13/0-inIOT18[A]LVCMOS18NAUPONNONENANANANA1.8
J12/0-inIOT18[B]LVCMOS18NAUPONNONENANANANA1.8
H14/0-inIOT20[A]LVCMOS18NAUPONNONENANANANA1.8
H16/0-inIOT20[B]LVCMOS18NAUPONNONENANANANA1.8
J16/0-inIOT22[A]LVCMOS18NAUPONNONENANANANA1.8
J14/0-inIOT22[B]LVCMOS18NAUPONNONENANANANA1.8
J15/0-inIOT24[A]LVCMOS18NAUPONNONENANANANA1.8
K16/0-inIOT24[B]LVCMOS18NAUPONNONENANANANA1.8
H11/0-inIOT27[A]LVCMOS18NAUPONNONENANANANA1.8
J13/0-inIOT27[B]LVCMOS18NAUPONNONENANANANA1.8
K14/1-inIOT30[A]LVCMOS18NAUPONNONENANANANA1.8
K15/1-inIOT30[B]LVCMOS18NAUPONNONENANANANA1.8
J11/1-inIOT32[A]LVCMOS18NAUPONNONENANANANA1.8
L12/1-inIOT32[B]LVCMOS18NAUPONNONENANANANA1.8
L16/1-inIOT34[A]LVCMOS18NAUPONNONENANANANA1.8
L14/1-inIOT34[B]LVCMOS18NAUPONNONENANANANA1.8
K13/1-inIOT36[A]LVCMOS18NAUPONNONENANANANA1.8
K12/1-inIOT36[B]LVCMOS18NAUPONNONENANANANA1.8
K11/1-inIOT38[A]LVCMOS18NAUPONNONENANANANA1.8
L13/1-inIOT38[B]LVCMOS18NAUPONNONENANANANA1.8
M14/1-inIOT40[A]LVCMOS18NAUPONNONENANANANA1.8
M15/1-inIOT40[B]LVCMOS18NAUPONNONENANANANA1.8
D14/1-inIOT44[A]LVCMOS18NAUPONNONENANANANA1.8
E15/1-inIOT44[B]LVCMOS18NAUPONNONENANANANA1.8
N15/1-inIOT48[A]LVCMOS18NAUPONNONENANANANA1.8
P16/1-inIOT48[B]LVCMOS18NAUPONNONENANANANA1.8
N16/1-inIOT52[A]LVCMOS18NAUPONNONENANANANA1.8
N14/1-inIOT52[B]LVCMOS18NAUPONNONENANANANA1.8
P15/1-inIOT54[A]LVCMOS18NAUPONNONENANANANA1.8
R16/1-inIOT54[B]LVCMOS18NAUPONNONENANANANA1.8
A4/5-inIOB2[A]LVCMOS18NAUPONNONENANANANA1.8
C5/5-inIOB2[B]LVCMOS18NAUPONNONENANANANA1.8
D6/5-inIOB3[A]LVCMOS18NAUPONNONENANANANA1.8
E7/5-inIOB3[B]LVCMOS18NAUPONNONENANANANA1.8
A3/5-inIOB4[A]LVCMOS18NAUPONNONENANANANA1.8
B4/5-inIOB4[B]LVCMOS18NAUPONNONENANANANA1.8
A5/5-inIOB7[A]LVCMOS18NAUPONNONENANANANA1.8
B6/5-inIOB7[B]LVCMOS18NAUPONNONENANANANA1.8
B1/5-inIOB8[A]LVCMOS18NAUPONNONENANANANA1.8
C2/5-inIOB8[B]LVCMOS18NAUPONNONENANANANA1.8
D3/5-inIOB9[A]LVCMOS18NAUPONNONENANANANA1.8
D1/5-inIOB9[B]LVCMOS18NAUPONNONENANANANA1.8
E2/5-inIOB12[A]LVCMOS18NAUPONNONENANANANA1.8
E3/5-inIOB12[B]LVCMOS18NAUPONNONENANANANA1.8
B3/5-inIOB13[A]LVCMOS18NAUPONNONENANANANA1.8
A2/5-inIOB13[B]LVCMOS18NAUPONNONENANANANA1.8
C1/5-inIOB14[A]LVCMOS18NAUPONNONENANANANA1.8
D2/5-inIOB14[B]LVCMOS18NAUPONNONENANANANA1.8
E1/5-inIOB16[A]LVCMOS18NAUPONNONENANANANA1.8
F2/5-inIOB16[B]LVCMOS18NAUPONNONENANANANA1.8
F4/5-inIOB18[A]LVCMOS18NAUPONNONENANANANA1.8
G6/5-inIOB18[B]LVCMOS18NAUPONNONENANANANA1.8
F3/5-inIOB19[A]LVCMOS18NAUPONNONENANANANA1.8
F1/5-inIOB19[B]LVCMOS18NAUPONNONENANANANA1.8
G5/5-inIOB20[A]LVCMOS18NAUPONNONENANANANA1.8
G4/5-inIOB20[B]LVCMOS18NAUPONNONENANANANA1.8
G2/5-inIOB21[A]LVCMOS18NAUPONNONENANANANA1.8
G3/5-inIOB21[B]LVCMOS18NAUPONNONENANANANA1.8
F5/5-inIOB22[A]LVCMOS18NAUPONNONENANANANA1.8
H6/5-inIOB22[B]LVCMOS18NAUPONNONENANANANA1.8
G1/5-inIOB24[A]LVCMOS18NAUPONNONENANANANA1.8
H2/5-inIOB24[B]LVCMOS18NAUPONNONENANANANA1.8
H4/5-inIOB26[A]LVCMOS18NAUPONNONENANANANA1.8
J6/5-inIOB26[B]LVCMOS18NAUPONNONENANANANA1.8
J1/5-inIOB27[A]LVCMOS18NAUPONNONENANANANA1.8
J3/5-inIOB27[B]LVCMOS18NAUPONNONENANANANA1.8
L2/4-inIOB30[A]LVCMOS18NAUPONNONENANANANA1.8
M1/4-inIOB30[B]LVCMOS18NAUPONNONENANANANA1.8
H3/4-inIOB32[A]LVCMOS18NAUPONNONENANANANA1.8
H1/4-inIOB32[B]LVCMOS18NAUPONNONENANANANA1.8
J2/4-inIOB34[A]LVCMOS18NAUPONNONENANANANA1.8
K1/4-inIOB34[B]LVCMOS18NAUPONNONENANANANA1.8
H5/4-inIOB35[A]LVCMOS18NAUPONNONENANANANA1.8
J4/4-inIOB35[B]LVCMOS18NAUPONNONENANANANA1.8
K3/4-inIOB36[A]LVCMOS18NAUPONNONENANANANA1.8
K2/4-inIOB36[B]LVCMOS18NAUPONNONENANANANA1.8
J5/4-inIOB37[A]LVCMOS18NAUPONNONENANANANA1.8
K6/4-inIOB37[B]LVCMOS18NAUPONNONENANANANA1.8
L1/4-inIOB38[A]LVCMOS18NAUPONNONENANANANA1.8
L3/4-inIOB38[B]LVCMOS18NAUPONNONENANANANA1.8
K4/4-inIOB39[A]LVCMOS18NAUPONNONENANANANA1.8
L5/4-inIOB39[B]LVCMOS18NAUPONNONENANANANA1.8
K5/4-inIOB40[A]LVCMOS18NAUPONNONENANANANA1.8
L4/4-inIOB40[B]LVCMOS18NAUPONNONENANANANA1.8
N2/4-inIOB41[A]LVCMOS18NAUPONNONENANANANA1.8
P1/4-inIOB41[B]LVCMOS18NAUPONNONENANANANA1.8
M3/4-inIOB42[A]LVCMOS18NAUPONNONENANANANA1.8
N1/4-inIOB42[B]LVCMOS18NAUPONNONENANANANA1.8
M2/4-inIOB43[A]LVCMOS18NAUPONNONENANANANA1.8
N3/4-inIOB43[B]LVCMOS18NAUPONNONENANANANA1.8
R1/4-inIOB44[A]LVCMOS18NAUPONNONENANANANA1.8
P2/4-inIOB44[B]LVCMOS18NAUPONNONENANANANA1.8
P4/4-inIOB45[A]LVCMOS18NAUPONNONENANANANA1.8
T4/4-inIOB45[B]LVCMOS18NAUPONNONENANANANA1.8
R3/4-inIOB48[A]LVCMOS18NAUPONNONENANANANA1.8
T2/4-inIOB48[B]LVCMOS18NAUPONNONENANANANA1.8
P5/4-inIOB50[A]LVCMOS18NAUPONNONENANANANA1.8
R5/4-inIOB50[B]LVCMOS18NAUPONNONENANANANA1.8
R4/4-inIOB52[A]LVCMOS18NAUPONNONENANANANA1.8
T3/4-inIOB52[B]LVCMOS18NAUPONNONENANANANA1.8
R6/4-inIOB54[A]LVCMOS18NAUPONNONENANANANA1.8
T5/4-inIOB54[B]LVCMOS18NAUPONNONENANANANA1.8
B14/7C[1]outIOL2[A]LVCMOS188UPNANAOFFNAOFFNA1.8
A15/7A[0]inIOL2[B]LVCMOS18NAUPONNONENANAOFFNA1.8
C12/7C[2]outIOL7[A]LVCMOS188UPNANAOFFNAOFFNA1.8
B12/7B[1]inIOL7[B]LVCMOS18NAUPONNONENANAOFFNA1.8
B13/7-inIOL8[A]LVCMOS18NAUPONNONENANANANA1.8
A14/7-inIOL8[B]LVCMOS18NAUPONNONENANANANA1.8
F10/7-inIOL11[A]LVCMOS18NAUPONNONENANANANA1.8
B11/7-inIOL13[A]LVCMOS18NAUPONNONENANANANA1.8
A12/7-inIOL13[B]LVCMOS18NAUPONNONENANANANA1.8
A11/7-inIOL15[A]LVCMOS18NAUPONNONENANANANA1.8
C11/7-inIOL15[B]LVCMOS18NAUPONNONENANANANA1.8
D10/7-inIOL17[A]LVCMOS18NAUPONNONENANANANA1.8
E10/7-inIOL17[B]LVCMOS18NAUPONNONENANANANA1.8
D11/7-inIOL22[A]LVCMOS18NAUPONNONENANANANA1.8
A9/7-inIOL27[A]LVCMOS18NAUPONNONENANANANA1.8
C9/7-inIOL27[B]LVCMOS18NAUPONNONENANANANA1.8
C8/6-inIOL29[A]LVCMOS18NAUPONNONENANANANA1.8
A8/6-inIOL29[B]LVCMOS18NAUPONNONENANANANA1.8
F9/6-inIOL31[A]LVCMOS18NAUPONNONENANANANA1.8
E11/6-inIOL31[B]LVCMOS18NAUPONNONENANANANA1.8
B9/6-inIOL33[A]LVCMOS18NAUPONNONENANANANA1.8
A10/6-inIOL33[B]LVCMOS18NAUPONNONENANANANA1.8
F8/6-inIOL35[A]LVCMOS18NAUPONNONENANANANA1.8
D9/6-inIOL35[B]LVCMOS18NAUPONNONENANANANA1.8
D8/6-inIOL38[A]LVCMOS18NAUPONNONENANANANA1.8
E9/6-inIOL38[B]LVCMOS18NAUPONNONENANANANA1.8
B7/6-inIOL40[A]LVCMOS18NAUPONNONENANANANA1.8
C7/6-inIOL40[B]LVCMOS18NAUPONNONENANANANA1.8
F7/6-inIOL45[A]LVCMOS18NAUPONNONENANANANA1.8
E8/6-inIOL45[B]LVCMOS18NAUPONNONENANANANA1.8
C4/6-inIOL47[A]LVCMOS18NAUPONNONENANANANA1.8
B5/6-inIOL47[B]LVCMOS18NAUPONNONENANANANA1.8
E6/6-inIOL53[A]LVCMOS18NAUPONNONENANANANA1.8
D7/6-inIOL53[B]LVCMOS18NAUPONNONENANANANA1.8
T15/2-inIOR7[A]LVCMOS18NAUPONNONENANANANA1.8
R14/2-inIOR7[B]LVCMOS18NAUPONNONENANANANA1.8
P12/2-inIOR8[A]LVCMOS18NAUPONNONENANANANA1.8
T13/2-inIOR8[B]LVCMOS18NAUPONNONENANANANA1.8
R12/2-inIOR11[A]LVCMOS18NAUPONNONENANANANA1.8
P13/2-inIOR11[B]LVCMOS18NAUPONNONENANANANA1.8
R11/2-inIOR17[A]LVCMOS18NAUPONNONENANANANA1.8
T12/2-inIOR17[B]LVCMOS18NAUPONNONENANANANA1.8
R13/2-inIOR20[A]LVCMOS18NAUPONNONENANANANA1.8
T14/2-inIOR20[B]LVCMOS18NAUPONNONENANANANA1.8
M10/2-inIOR22[A]LVCMOS18NAUPONNONENANANANA1.8
N11/2-inIOR22[B]LVCMOS18NAUPONNONENANANANA1.8
T11/2-inIOR24[A]LVCMOS18NAUPONNONENANANANA1.8
P11/2-inIOR24[B]LVCMOS18NAUPONNONENANANANA1.8
C6/2-outIOR25[A]LVCMOS188UPNANAOFFNANANA1.8
B8/2-inIOR25[B]LVCMOS18NAUPONNONENANANANA1.8
A7/2-inIOR26[A]LVCMOS18NAUPONNONENANANANA1.8
A6/2-inIOR26[B]LVCMOS18NAUPONNONENANANANA1.8
N10/2-inIOR27[A]LVCMOS18NAUPONNONENANANANA1.8
M11/2-inIOR27[B]LVCMOS18NAUPONNONENANANANA1.8
T7/3-inIOR29[A]LVCMOS18NAUPONNONENANANANA1.8
R8/3-inIOR29[B]LVCMOS18NAUPONNONENANANANA1.8
M16/3-inIOR30[A]LVCMOS18NAUPONNONENANANANA1.8
B16/3-inIOR30[B]LVCMOS18NAUPONNONENANANANA1.8
C15/3-inIOR31[A]LVCMOS18NAUPONNONENANANANA1.8
B10/3-inIOR31[B]LVCMOS18NAUPONNONENANANANA1.8
A13/3-inIOR32[A]LVCMOS18NAUPONNONENANANANA1.8
C13/3-inIOR32[B]LVCMOS18NAUPONNONENANANANA1.8
P10/3-inIOR33[A]LVCMOS18NAUPONNONENANANANA1.8
R10/3-inIOR33[B]LVCMOS18NAUPONNONENANANANA1.8
M9/3-inIOR34[A]LVCMOS18NAUPONNONENANANANA1.8
L10/3-inIOR34[B]LVCMOS18NAUPONNONENANANANA1.8
R9/3-inIOR35[A]LVCMOS18NAUPONNONENANANANA1.8
T10/3-inIOR35[B]LVCMOS18NAUPONNONENANANANA1.8
M8/3-inIOR36[A]LVCMOS18NAUPONNONENANANANA1.8
N9/3-inIOR36[B]LVCMOS18NAUPONNONENANANANA1.8
T9/3-inIOR38[A]LVCMOS18NAUPONNONENANANANA1.8
P9/3-inIOR38[B]LVCMOS18NAUPONNONENANANANA1.8
C10/3-inIOR39[A]LVCMOS18NAUPONNONENANANANA1.8
N8/3-inIOR40[A]LVCMOS18NAUPONNONENANANANA1.8
L9/3-inIOR40[B]LVCMOS18NAUPONNONENANANANA1.8
P8/3-inIOR42[A]LVCMOS18NAUPONNONENANANANA1.8
T8/3-inIOR42[B]LVCMOS18NAUPONNONENANANANA1.8
M6/3-inIOR44[A]LVCMOS18NAUPONNONENANANANA1.8
L8/3-inIOR44[B]LVCMOS18NAUPONNONENANANANA1.8
M7/3-inIOR47[A]LVCMOS18NAUPONNONENANANANA1.8
N7/3-inIOR47[B]LVCMOS18NAUPONNONENANANANA1.8
R7/3-inIOR49[A]LVCMOS18NAUPONNONENANANANA1.8
P7/3-inIOR49[B]LVCMOS18NAUPONNONENANANANA1.8
N6/3-inIOR51[A]LVCMOS18NAUPONNONENANANANA1.8
P6/3-inIOR53[A]LVCMOS18NAUPONNONENANANANA1.8
T6/3-inIOR53[B]LVCMOS18NAUPONNONENANANANA1.8
-
-
-
- - diff --git a/iverilog/tobb/labs/lab3/impl/pnr/lab3.power.html b/iverilog/tobb/labs/lab3/impl/pnr/lab3.power.html deleted file mode 100644 index 8897b33..0000000 --- a/iverilog/tobb/labs/lab3/impl/pnr/lab3.power.html +++ /dev/null @@ -1,266 +0,0 @@ - - - -Power Analysis Report - - - -
- -
-

Power Messages

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Report TitlePower Analysis Report
Design FileC:\cygwin64\home\koray\verilog\lab3\impl\gwsynthesis\lab3.vg
Physical Constraints File---
Timing Constraints File---
Tool VersionV1.9.9.02
Part NumberGW2A-LV18PG256C8/I7
DeviceGW2A-18
Device VersionC
Created TimeSat May 4 01:07:45 2024 -
Legal AnnouncementCopyright (C)2014-2024 Gowin Semiconductor Corporation. All rights reserved.
-

Power Summary

-

Power Information:

- - - - - - - - - - - - - -
Total Power (mW)92.439
Quiescent Power (mW)91.608
Dynamic Power (mW)0.832
-

Thermal Information:

- - - - - - - - - - - - - -
Junction Temperature27.960
Theta JA32.020
Max Allowed Ambient Temperature82.040
-

Configure Information:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Default IO Toggle Rate0.125
Default Remain Toggle Rate0.125
Use Vectorless Estimationfalse
Filter Glitchesfalse
Related Vcd File
Related Saif File
Use Custom Theta JAfalse
Air FlowLFM_0
Heat SinkNone
Use Custom Theta SAfalse
Board Thermal ModelNone
Use Custom Theta JBfalse
Ambient Temperature25.000 -
-

Supply Information:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Voltage SourceVoltageDynamic Current(mA)Quiescent Current(mA)Power(mW)
VCC1.0000.15861.51061.668
VCCX2.5000.15811.36428.803
VCCIO181.8000.1550.9381.968
-

Power Details

-

Power By Block Type:

- - - - - - - - - - -
Block TypeTotal Power(mW)Static Power(mW)Average Toggle Rate(millions of transitions/sec)
IO3.335 -2.503 -6.250 -
-

Power By Hierarchy:

- - - - - - - - - - - - - - - - - - -
Hierarchy EntityTotal Power(mW)Block Dynamic Power(mW)
mult2bit0.0000.000(0.000)
mult2bit/h0/0.0000.000(0.000)
mult2bit/h1/0.0000.000(0.000)
-

Power By Clock Domain:

- - - - - - - - - - - -
Clock DomainClock Frequency(Mhz)Total Dynamic Power(mW)
NO CLOCK DOMAIN0.0000.000
-
-
- - diff --git a/iverilog/tobb/labs/lab3/impl/pnr/lab3.rpt.html b/iverilog/tobb/labs/lab3/impl/pnr/lab3.rpt.html deleted file mode 100644 index 7dcf606..0000000 --- a/iverilog/tobb/labs/lab3/impl/pnr/lab3.rpt.html +++ /dev/null @@ -1,3837 +0,0 @@ - - - -PnR Analysis Report - - - -
- -
-

PnR Messages

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Report TitlePnR Report
Design FileC:\cygwin64\home\koray\verilog\lab3\impl\gwsynthesis\lab3.vg
Physical Constraints File---
Timing Constraints File---
Tool VersionV1.9.9.02
Part NumberGW2A-LV18PG256C8/I7
DeviceGW2A-18
Device VersionC
Created TimeSat May 4 01:07:45 2024 -
Legal AnnouncementCopyright (C)2014-2024 Gowin Semiconductor Corporation. All rights reserved.
-

PnR Details

- - - - - - - - - - -
Place & Route ProcessRunning placement: - Placement Phase 0: CPU time = 0h 0m 0.015s, Elapsed time = 0h 0m 0.015s - Placement Phase 1: CPU time = 0h 0m 0.546s, Elapsed time = 0h 0m 0.545s - Placement Phase 2: CPU time = 0h 0m 0.005s, Elapsed time = 0h 0m 0.005s - Placement Phase 3: CPU time = 0h 0m 2s, Elapsed time = 0h 0m 2s - Total Placement: CPU time = 0h 0m 2s, Elapsed time = 0h 0m 2s -Running routing: - Routing Phase 0: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0s - Routing Phase 1: CPU time = 0h 0m 0.314s, Elapsed time = 0h 0m 0.314s - Routing Phase 2: CPU time = 0h 0m 0.152s, Elapsed time = 0h 0m 0.152s - Routing Phase 3: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0s - Total Routing: CPU time = 0h 0m 0.466s, Elapsed time = 0h 0m 0.466s -Generate output files: - CPU time = 0h 0m 3s, Elapsed time = 0h 0m 3s -
Total Time and Memory UsageCPU time = 0h 0m 6s, Elapsed time = 0h 0m 6s, Peak memory usage = 420MB
-
-

Resource

- -

Resource Usage Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ResourceUsageUtilization
Logic4/20736<1%
    --LUT,ALU,ROM164(4 LUT, 0 ALU, 0 ROM16)-
    --SSRAM(RAM16)0-
Register0/161730%
    --Logic Register as Latch0/155520%
    --Logic Register as FF0/155520%
    --I/O Register as Latch0/6210%
    --I/O Register as FF0/6210%
CLS3/10368<1%
I/O Port8-
I/O Buf8-
    --Input Buf4-
    --Output Buf4-
    --Inout Buf0-
IOLOGIC00%
BSRAM00%
DSP00%
PLL0/40%
DCS0/80%
DQCE0/240%
OSC0/10%
CLKDIV0/80%
DLLDLY0/80%
DQS0/90%
DHCEN0/160%
-

I/O Bank Usage Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
I/O BankUsage
bank 04/29(13%)
bank 10/20(0%)
bank 20/20(0%)
bank 30/32(0%)
bank 40/36(0%)
bank 50/36(0%)
bank 60/18(0%)
bank 74/16(25%)
-
-

Global Clock Usage Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Global ClockUsage
PRIMARY0/8(0%)
LW0/8(0%)
GCLK_PIN0/8(0%)
PLL0/4(0%)
CLKDIV0/8(0%)
DLLDLY0/8(0%)
-
-

Global Clock Signals:

- - - - - - -
SignalGlobal ClockLocation
-
-

Pinout by Port Name:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Port NameDiff PairLoc./BankConstraintDir.SiteIO TypeDrivePull ModePCI ClampHysteresisOpen DrainVrefSingle ResistorDiff ResistorBankVccio
A[0]A15/7NinIOL2[B]LVCMOS18NAUPONNONENANAOFFNA1.8
A[1]L15/0NinIOT2[A]LVCMOS18NAUPONNONENANANANA1.8
B[0]D16/0NinIOT4[A]LVCMOS18NAUPONNONENANANANA1.8
B[1]B12/7NinIOL7[B]LVCMOS18NAUPONNONENANAOFFNA1.8
C[0]E14/0NoutIOT4[B]LVCMOS188UPNANAOFFNANANA1.8
C[1]B14/7NoutIOL2[A]LVCMOS188UPNANAOFFNAOFFNA1.8
C[2]C12/7NoutIOL7[A]LVCMOS188UPNANAOFFNAOFFNA1.8
C[3]C16/0NoutIOT5[A]LVCMOS188UPNANAOFFNANANA1.8
-
-

All Package Pins:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Loc./BankSignalDir.SiteIO TypeDrivePull ModePCI ClampHysteresisOpen DrainVrefSingle ResistorDiff ResistorBank Vccio
L15/0A[1]inIOT2[A]LVCMOS18NAUPONNONENANANANA1.8
D16/0B[0]inIOT4[A]LVCMOS18NAUPONNONENANANANA1.8
E14/0C[0]outIOT4[B]LVCMOS188UPNANAOFFNANANA1.8
C16/0C[3]outIOT5[A]LVCMOS188UPNANAOFFNANANA1.8
D15/0-inIOT5[B]LVCMOS18NAUPONNONENANANANA1.8
E16/0-inIOT6[A]LVCMOS18NAUPONNONENANANANA1.8
F15/0-inIOT6[B]LVCMOS18NAUPONNONENANANANA1.8
F13/0-inIOT8[A]LVCMOS18NAUPONNONENANANANA1.8
G12/0-inIOT8[B]LVCMOS18NAUPONNONENANANANA1.8
F14/0-inIOT9[A]LVCMOS18NAUPONNONENANANANA1.8
F16/0-inIOT9[B]LVCMOS18NAUPONNONENANANANA1.8
F12/0-inIOT12[A]LVCMOS18NAUPONNONENANANANA1.8
G13/0-inIOT12[B]LVCMOS18NAUPONNONENANANANA1.8
G15/0-inIOT13[A]LVCMOS18NAUPONNONENANANANA1.8
G14/0-inIOT13[B]LVCMOS18NAUPONNONENANANANA1.8
G11/0-inIOT14[A]LVCMOS18NAUPONNONENANANANA1.8
H12/0-inIOT14[B]LVCMOS18NAUPONNONENANANANA1.8
G16/0-inIOT16[A]LVCMOS18NAUPONNONENANANANA1.8
H15/0-inIOT16[B]LVCMOS18NAUPONNONENANANANA1.8
H13/0-inIOT18[A]LVCMOS18NAUPONNONENANANANA1.8
J12/0-inIOT18[B]LVCMOS18NAUPONNONENANANANA1.8
H14/0-inIOT20[A]LVCMOS18NAUPONNONENANANANA1.8
H16/0-inIOT20[B]LVCMOS18NAUPONNONENANANANA1.8
J16/0-inIOT22[A]LVCMOS18NAUPONNONENANANANA1.8
J14/0-inIOT22[B]LVCMOS18NAUPONNONENANANANA1.8
J15/0-inIOT24[A]LVCMOS18NAUPONNONENANANANA1.8
K16/0-inIOT24[B]LVCMOS18NAUPONNONENANANANA1.8
H11/0-inIOT27[A]LVCMOS18NAUPONNONENANANANA1.8
J13/0-inIOT27[B]LVCMOS18NAUPONNONENANANANA1.8
K14/1-inIOT30[A]LVCMOS18NAUPONNONENANANANA1.8
K15/1-inIOT30[B]LVCMOS18NAUPONNONENANANANA1.8
J11/1-inIOT32[A]LVCMOS18NAUPONNONENANANANA1.8
L12/1-inIOT32[B]LVCMOS18NAUPONNONENANANANA1.8
L16/1-inIOT34[A]LVCMOS18NAUPONNONENANANANA1.8
L14/1-inIOT34[B]LVCMOS18NAUPONNONENANANANA1.8
K13/1-inIOT36[A]LVCMOS18NAUPONNONENANANANA1.8
K12/1-inIOT36[B]LVCMOS18NAUPONNONENANANANA1.8
K11/1-inIOT38[A]LVCMOS18NAUPONNONENANANANA1.8
L13/1-inIOT38[B]LVCMOS18NAUPONNONENANANANA1.8
M14/1-inIOT40[A]LVCMOS18NAUPONNONENANANANA1.8
M15/1-inIOT40[B]LVCMOS18NAUPONNONENANANANA1.8
D14/1-inIOT44[A]LVCMOS18NAUPONNONENANANANA1.8
E15/1-inIOT44[B]LVCMOS18NAUPONNONENANANANA1.8
N15/1-inIOT48[A]LVCMOS18NAUPONNONENANANANA1.8
P16/1-inIOT48[B]LVCMOS18NAUPONNONENANANANA1.8
N16/1-inIOT52[A]LVCMOS18NAUPONNONENANANANA1.8
N14/1-inIOT52[B]LVCMOS18NAUPONNONENANANANA1.8
P15/1-inIOT54[A]LVCMOS18NAUPONNONENANANANA1.8
R16/1-inIOT54[B]LVCMOS18NAUPONNONENANANANA1.8
A4/5-inIOB2[A]LVCMOS18NAUPONNONENANANANA1.8
C5/5-inIOB2[B]LVCMOS18NAUPONNONENANANANA1.8
D6/5-inIOB3[A]LVCMOS18NAUPONNONENANANANA1.8
E7/5-inIOB3[B]LVCMOS18NAUPONNONENANANANA1.8
A3/5-inIOB4[A]LVCMOS18NAUPONNONENANANANA1.8
B4/5-inIOB4[B]LVCMOS18NAUPONNONENANANANA1.8
A5/5-inIOB7[A]LVCMOS18NAUPONNONENANANANA1.8
B6/5-inIOB7[B]LVCMOS18NAUPONNONENANANANA1.8
B1/5-inIOB8[A]LVCMOS18NAUPONNONENANANANA1.8
C2/5-inIOB8[B]LVCMOS18NAUPONNONENANANANA1.8
D3/5-inIOB9[A]LVCMOS18NAUPONNONENANANANA1.8
D1/5-inIOB9[B]LVCMOS18NAUPONNONENANANANA1.8
E2/5-inIOB12[A]LVCMOS18NAUPONNONENANANANA1.8
E3/5-inIOB12[B]LVCMOS18NAUPONNONENANANANA1.8
B3/5-inIOB13[A]LVCMOS18NAUPONNONENANANANA1.8
A2/5-inIOB13[B]LVCMOS18NAUPONNONENANANANA1.8
C1/5-inIOB14[A]LVCMOS18NAUPONNONENANANANA1.8
D2/5-inIOB14[B]LVCMOS18NAUPONNONENANANANA1.8
E1/5-inIOB16[A]LVCMOS18NAUPONNONENANANANA1.8
F2/5-inIOB16[B]LVCMOS18NAUPONNONENANANANA1.8
F4/5-inIOB18[A]LVCMOS18NAUPONNONENANANANA1.8
G6/5-inIOB18[B]LVCMOS18NAUPONNONENANANANA1.8
F3/5-inIOB19[A]LVCMOS18NAUPONNONENANANANA1.8
F1/5-inIOB19[B]LVCMOS18NAUPONNONENANANANA1.8
G5/5-inIOB20[A]LVCMOS18NAUPONNONENANANANA1.8
G4/5-inIOB20[B]LVCMOS18NAUPONNONENANANANA1.8
G2/5-inIOB21[A]LVCMOS18NAUPONNONENANANANA1.8
G3/5-inIOB21[B]LVCMOS18NAUPONNONENANANANA1.8
F5/5-inIOB22[A]LVCMOS18NAUPONNONENANANANA1.8
H6/5-inIOB22[B]LVCMOS18NAUPONNONENANANANA1.8
G1/5-inIOB24[A]LVCMOS18NAUPONNONENANANANA1.8
H2/5-inIOB24[B]LVCMOS18NAUPONNONENANANANA1.8
H4/5-inIOB26[A]LVCMOS18NAUPONNONENANANANA1.8
J6/5-inIOB26[B]LVCMOS18NAUPONNONENANANANA1.8
J1/5-inIOB27[A]LVCMOS18NAUPONNONENANANANA1.8
J3/5-inIOB27[B]LVCMOS18NAUPONNONENANANANA1.8
L2/4-inIOB30[A]LVCMOS18NAUPONNONENANANANA1.8
M1/4-inIOB30[B]LVCMOS18NAUPONNONENANANANA1.8
H3/4-inIOB32[A]LVCMOS18NAUPONNONENANANANA1.8
H1/4-inIOB32[B]LVCMOS18NAUPONNONENANANANA1.8
J2/4-inIOB34[A]LVCMOS18NAUPONNONENANANANA1.8
K1/4-inIOB34[B]LVCMOS18NAUPONNONENANANANA1.8
H5/4-inIOB35[A]LVCMOS18NAUPONNONENANANANA1.8
J4/4-inIOB35[B]LVCMOS18NAUPONNONENANANANA1.8
K3/4-inIOB36[A]LVCMOS18NAUPONNONENANANANA1.8
K2/4-inIOB36[B]LVCMOS18NAUPONNONENANANANA1.8
J5/4-inIOB37[A]LVCMOS18NAUPONNONENANANANA1.8
K6/4-inIOB37[B]LVCMOS18NAUPONNONENANANANA1.8
L1/4-inIOB38[A]LVCMOS18NAUPONNONENANANANA1.8
L3/4-inIOB38[B]LVCMOS18NAUPONNONENANANANA1.8
K4/4-inIOB39[A]LVCMOS18NAUPONNONENANANANA1.8
L5/4-inIOB39[B]LVCMOS18NAUPONNONENANANANA1.8
K5/4-inIOB40[A]LVCMOS18NAUPONNONENANANANA1.8
L4/4-inIOB40[B]LVCMOS18NAUPONNONENANANANA1.8
N2/4-inIOB41[A]LVCMOS18NAUPONNONENANANANA1.8
P1/4-inIOB41[B]LVCMOS18NAUPONNONENANANANA1.8
M3/4-inIOB42[A]LVCMOS18NAUPONNONENANANANA1.8
N1/4-inIOB42[B]LVCMOS18NAUPONNONENANANANA1.8
M2/4-inIOB43[A]LVCMOS18NAUPONNONENANANANA1.8
N3/4-inIOB43[B]LVCMOS18NAUPONNONENANANANA1.8
R1/4-inIOB44[A]LVCMOS18NAUPONNONENANANANA1.8
P2/4-inIOB44[B]LVCMOS18NAUPONNONENANANANA1.8
P4/4-inIOB45[A]LVCMOS18NAUPONNONENANANANA1.8
T4/4-inIOB45[B]LVCMOS18NAUPONNONENANANANA1.8
R3/4-inIOB48[A]LVCMOS18NAUPONNONENANANANA1.8
T2/4-inIOB48[B]LVCMOS18NAUPONNONENANANANA1.8
P5/4-inIOB50[A]LVCMOS18NAUPONNONENANANANA1.8
R5/4-inIOB50[B]LVCMOS18NAUPONNONENANANANA1.8
R4/4-inIOB52[A]LVCMOS18NAUPONNONENANANANA1.8
T3/4-inIOB52[B]LVCMOS18NAUPONNONENANANANA1.8
R6/4-inIOB54[A]LVCMOS18NAUPONNONENANANANA1.8
T5/4-inIOB54[B]LVCMOS18NAUPONNONENANANANA1.8
B14/7C[1]outIOL2[A]LVCMOS188UPNANAOFFNAOFFNA1.8
A15/7A[0]inIOL2[B]LVCMOS18NAUPONNONENANAOFFNA1.8
C12/7C[2]outIOL7[A]LVCMOS188UPNANAOFFNAOFFNA1.8
B12/7B[1]inIOL7[B]LVCMOS18NAUPONNONENANAOFFNA1.8
B13/7-inIOL8[A]LVCMOS18NAUPONNONENANANANA1.8
A14/7-inIOL8[B]LVCMOS18NAUPONNONENANANANA1.8
F10/7-inIOL11[A]LVCMOS18NAUPONNONENANANANA1.8
B11/7-inIOL13[A]LVCMOS18NAUPONNONENANANANA1.8
A12/7-inIOL13[B]LVCMOS18NAUPONNONENANANANA1.8
A11/7-inIOL15[A]LVCMOS18NAUPONNONENANANANA1.8
C11/7-inIOL15[B]LVCMOS18NAUPONNONENANANANA1.8
D10/7-inIOL17[A]LVCMOS18NAUPONNONENANANANA1.8
E10/7-inIOL17[B]LVCMOS18NAUPONNONENANANANA1.8
D11/7-inIOL22[A]LVCMOS18NAUPONNONENANANANA1.8
A9/7-inIOL27[A]LVCMOS18NAUPONNONENANANANA1.8
C9/7-inIOL27[B]LVCMOS18NAUPONNONENANANANA1.8
C8/6-inIOL29[A]LVCMOS18NAUPONNONENANANANA1.8
A8/6-inIOL29[B]LVCMOS18NAUPONNONENANANANA1.8
F9/6-inIOL31[A]LVCMOS18NAUPONNONENANANANA1.8
E11/6-inIOL31[B]LVCMOS18NAUPONNONENANANANA1.8
B9/6-inIOL33[A]LVCMOS18NAUPONNONENANANANA1.8
A10/6-inIOL33[B]LVCMOS18NAUPONNONENANANANA1.8
F8/6-inIOL35[A]LVCMOS18NAUPONNONENANANANA1.8
D9/6-inIOL35[B]LVCMOS18NAUPONNONENANANANA1.8
D8/6-inIOL38[A]LVCMOS18NAUPONNONENANANANA1.8
E9/6-inIOL38[B]LVCMOS18NAUPONNONENANANANA1.8
B7/6-inIOL40[A]LVCMOS18NAUPONNONENANANANA1.8
C7/6-inIOL40[B]LVCMOS18NAUPONNONENANANANA1.8
F7/6-inIOL45[A]LVCMOS18NAUPONNONENANANANA1.8
E8/6-inIOL45[B]LVCMOS18NAUPONNONENANANANA1.8
C4/6-inIOL47[A]LVCMOS18NAUPONNONENANANANA1.8
B5/6-inIOL47[B]LVCMOS18NAUPONNONENANANANA1.8
E6/6-inIOL53[A]LVCMOS18NAUPONNONENANANANA1.8
D7/6-inIOL53[B]LVCMOS18NAUPONNONENANANANA1.8
T15/2-inIOR7[A]LVCMOS18NAUPONNONENANANANA1.8
R14/2-inIOR7[B]LVCMOS18NAUPONNONENANANANA1.8
P12/2-inIOR8[A]LVCMOS18NAUPONNONENANANANA1.8
T13/2-inIOR8[B]LVCMOS18NAUPONNONENANANANA1.8
R12/2-inIOR11[A]LVCMOS18NAUPONNONENANANANA1.8
P13/2-inIOR11[B]LVCMOS18NAUPONNONENANANANA1.8
R11/2-inIOR17[A]LVCMOS18NAUPONNONENANANANA1.8
T12/2-inIOR17[B]LVCMOS18NAUPONNONENANANANA1.8
R13/2-inIOR20[A]LVCMOS18NAUPONNONENANANANA1.8
T14/2-inIOR20[B]LVCMOS18NAUPONNONENANANANA1.8
M10/2-inIOR22[A]LVCMOS18NAUPONNONENANANANA1.8
N11/2-inIOR22[B]LVCMOS18NAUPONNONENANANANA1.8
T11/2-inIOR24[A]LVCMOS18NAUPONNONENANANANA1.8
P11/2-inIOR24[B]LVCMOS18NAUPONNONENANANANA1.8
C6/2-outIOR25[A]LVCMOS188UPNANAOFFNANANA1.8
B8/2-inIOR25[B]LVCMOS18NAUPONNONENANANANA1.8
A7/2-inIOR26[A]LVCMOS18NAUPONNONENANANANA1.8
A6/2-inIOR26[B]LVCMOS18NAUPONNONENANANANA1.8
N10/2-inIOR27[A]LVCMOS18NAUPONNONENANANANA1.8
M11/2-inIOR27[B]LVCMOS18NAUPONNONENANANANA1.8
T7/3-inIOR29[A]LVCMOS18NAUPONNONENANANANA1.8
R8/3-inIOR29[B]LVCMOS18NAUPONNONENANANANA1.8
M16/3-inIOR30[A]LVCMOS18NAUPONNONENANANANA1.8
B16/3-inIOR30[B]LVCMOS18NAUPONNONENANANANA1.8
C15/3-inIOR31[A]LVCMOS18NAUPONNONENANANANA1.8
B10/3-inIOR31[B]LVCMOS18NAUPONNONENANANANA1.8
A13/3-inIOR32[A]LVCMOS18NAUPONNONENANANANA1.8
C13/3-inIOR32[B]LVCMOS18NAUPONNONENANANANA1.8
P10/3-inIOR33[A]LVCMOS18NAUPONNONENANANANA1.8
R10/3-inIOR33[B]LVCMOS18NAUPONNONENANANANA1.8
M9/3-inIOR34[A]LVCMOS18NAUPONNONENANANANA1.8
L10/3-inIOR34[B]LVCMOS18NAUPONNONENANANANA1.8
R9/3-inIOR35[A]LVCMOS18NAUPONNONENANANANA1.8
T10/3-inIOR35[B]LVCMOS18NAUPONNONENANANANA1.8
M8/3-inIOR36[A]LVCMOS18NAUPONNONENANANANA1.8
N9/3-inIOR36[B]LVCMOS18NAUPONNONENANANANA1.8
T9/3-inIOR38[A]LVCMOS18NAUPONNONENANANANA1.8
P9/3-inIOR38[B]LVCMOS18NAUPONNONENANANANA1.8
C10/3-inIOR39[A]LVCMOS18NAUPONNONENANANANA1.8
N8/3-inIOR40[A]LVCMOS18NAUPONNONENANANANA1.8
L9/3-inIOR40[B]LVCMOS18NAUPONNONENANANANA1.8
P8/3-inIOR42[A]LVCMOS18NAUPONNONENANANANA1.8
T8/3-inIOR42[B]LVCMOS18NAUPONNONENANANANA1.8
M6/3-inIOR44[A]LVCMOS18NAUPONNONENANANANA1.8
L8/3-inIOR44[B]LVCMOS18NAUPONNONENANANANA1.8
M7/3-inIOR47[A]LVCMOS18NAUPONNONENANANANA1.8
N7/3-inIOR47[B]LVCMOS18NAUPONNONENANANANA1.8
R7/3-inIOR49[A]LVCMOS18NAUPONNONENANANANA1.8
P7/3-inIOR49[B]LVCMOS18NAUPONNONENANANANA1.8
N6/3-inIOR51[A]LVCMOS18NAUPONNONENANANANA1.8
P6/3-inIOR53[A]LVCMOS18NAUPONNONENANANANA1.8
T6/3-inIOR53[B]LVCMOS18NAUPONNONENANANANA1.8
-
-
-
- - diff --git a/iverilog/tobb/labs/lab3/impl/pnr/lab3.rpt.txt b/iverilog/tobb/labs/lab3/impl/pnr/lab3.rpt.txt deleted file mode 100644 index 7e2a66f..0000000 --- a/iverilog/tobb/labs/lab3/impl/pnr/lab3.rpt.txt +++ /dev/null @@ -1,346 +0,0 @@ -//Copyright (C)2014-2024 Gowin Semiconductor Corporation. -//All rights reserved. - - -1. PnR Messages - - : PnR Report - : C:\cygwin64\home\koray\verilog\lab3\impl\gwsynthesis\lab3.vg - : --- - : --- - : V1.9.9.02 - : GW2A-LV18PG256C8/I7 - : GW2A-18 - : C - :Sat May 4 01:07:45 2024 - - -2. PnR Details - - Running placement: - Placement Phase 0: CPU time = 0h 0m 0.015s, Elapsed time = 0h 0m 0.015s - Placement Phase 1: CPU time = 0h 0m 0.546s, Elapsed time = 0h 0m 0.545s - Placement Phase 2: CPU time = 0h 0m 0.005s, Elapsed time = 0h 0m 0.005s - Placement Phase 3: CPU time = 0h 0m 2s, Elapsed time = 0h 0m 2s - Total Placement: CPU time = 0h 0m 2s, Elapsed time = 0h 0m 2s - Running routing: - Routing Phase 0: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0s - Routing Phase 1: CPU time = 0h 0m 0.314s, Elapsed time = 0h 0m 0.314s - Routing Phase 2: CPU time = 0h 0m 0.152s, Elapsed time = 0h 0m 0.152s - Routing Phase 3: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0s - Total Routing: CPU time = 0h 0m 0.466s, Elapsed time = 0h 0m 0.466s - Generate output files: - CPU time = 0h 0m 3s, Elapsed time = 0h 0m 3s - - Total Time and Memory Usage: CPU time = 0h 0m 6s, Elapsed time = 0h 0m 6s, Peak memory usage = 420MB - - -3. Resource Usage Summary - - ---------------------------------------------------------- - Resources | Usage - ---------------------------------------------------------- - Logic | 4/20736 <1% - --LUT,ALU,ROM16 | 4(4 LUT, 0 ALU, 0 ROM16) - --SSRAM(RAM16) | 0 - Register | 0/16173 0% - --Logic Register as Latch | 0/15552 0% - --Logic Register as FF | 0/15552 0% - --I/O Register as Latch | 0/621 0% - --I/O Register as FF | 0/621 0% - CLS | 3/10368 <1% - I/O Port | 8 - I/O Buf | 8 - --Input Buf | 4 - --Output Buf | 4 - --Inout Buf | 0 - IOLOGIC | 0% - BSRAM | 0% - DSP | 0% - PLL | 0/4 0% - DCS | 0/8 0% - DQCE | 0/24 0% - OSC | 0/1 0% - CLKDIV | 0/8 0% - DLLDLY | 0/8 0% - DQS | 0/9 0% - DHCEN | 0/16 0% - ========================================================== - - - -4. I/O Bank Usage Summary - - ----------------------- - I/O Bank | Usage - ----------------------- - bank 0 | 4/29(13%) - bank 1 | 0/20(0%) - bank 2 | 0/20(0%) - bank 3 | 0/32(0%) - bank 4 | 0/36(0%) - bank 5 | 0/36(0%) - bank 6 | 0/18(0%) - bank 7 | 4/16(25%) - ======================= - - -5. Global Clock Usage Summary - - ------------------------------- - Global Clock | Usage - ------------------------------- - PRIMARY | 0/8(0%) - LW | 0/8(0%) - GCLK_PIN | 0/8(0%) - PLL | 0/4(0%) - CLKDIV | 0/8(0%) - DLLDLY | 0/8(0%) - =============================== - - -6. Global Clock Signals - - ------------------------------------------- - Signal | Global Clock | Location - ------------------------------------------- - =========================================== - - -7. Pinout by Port Name - ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -Port Name | Diff Pair | Loc./Bank | Constraint | Dir. | Site | IO Type | Drive | Pull Mode | PCI Clamp | Hysteresis | Open Drain | Vref | Single Resistor | Diff Resistor | BankVccio ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -A[0] | | A15/7 | N | in | IOL2[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | OFF | NA | 1.8 -A[1] | | L15/0 | N | in | IOT2[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -B[0] | | D16/0 | N | in | IOT4[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -B[1] | | B12/7 | N | in | IOL7[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | OFF | NA | 1.8 -C[0] | | E14/0 | N | out | IOT4[B] | LVCMOS18 | 8 | UP | NA | NA | OFF | NA | NA | NA | 1.8 -C[1] | | B14/7 | N | out | IOL2[A] | LVCMOS18 | 8 | UP | NA | NA | OFF | NA | OFF | NA | 1.8 -C[2] | | C12/7 | N | out | IOL7[A] | LVCMOS18 | 8 | UP | NA | NA | OFF | NA | OFF | NA | 1.8 -C[3] | | C16/0 | N | out | IOT5[A] | LVCMOS18 | 8 | UP | NA | NA | OFF | NA | NA | NA | 1.8 -================================================================================================================================================================================================================== - - - - -8. All Package Pins - ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -Loc./Bank| Signal | Dir. | Site | IO Type | Drive | Pull Mode | PCI Clamp | Hysteresis | Open Drain | Vref | Single Resistor | Diff Resistor | Bank Vccio ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -L15/0 | A[1] | in | IOT2[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -D16/0 | B[0] | in | IOT4[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -E14/0 | C[0] | out | IOT4[B] | LVCMOS18 | 8 | UP | NA | NA | OFF | NA | NA | NA | 1.8 -C16/0 | C[3] | out | IOT5[A] | LVCMOS18 | 8 | UP | NA | NA | OFF | NA | NA | NA | 1.8 -D15/0 | - | in | IOT5[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -E16/0 | - | in | IOT6[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -F15/0 | - | in | IOT6[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -F13/0 | - | in | IOT8[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -G12/0 | - | in | IOT8[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -F14/0 | - | in | IOT9[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -F16/0 | - | in | IOT9[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -F12/0 | - | in | IOT12[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -G13/0 | - | in | IOT12[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -G15/0 | - | in | IOT13[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -G14/0 | - | in | IOT13[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -G11/0 | - | in | IOT14[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -H12/0 | - | in | IOT14[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -G16/0 | - | in | IOT16[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -H15/0 | - | in | IOT16[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -H13/0 | - | in | IOT18[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -J12/0 | - | in | IOT18[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -H14/0 | - | in | IOT20[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -H16/0 | - | in | IOT20[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -J16/0 | - | in | IOT22[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -J14/0 | - | in | IOT22[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -J15/0 | - | in | IOT24[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -K16/0 | - | in | IOT24[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -H11/0 | - | in | IOT27[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -J13/0 | - | in | IOT27[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -K14/1 | - | in | IOT30[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -K15/1 | - | in | IOT30[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -J11/1 | - | in | IOT32[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -L12/1 | - | in | IOT32[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -L16/1 | - | in | IOT34[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -L14/1 | - | in | IOT34[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -K13/1 | - | in | IOT36[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -K12/1 | - | in | IOT36[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -K11/1 | - | in | IOT38[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -L13/1 | - | in | IOT38[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -M14/1 | - | in | IOT40[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -M15/1 | - | in | IOT40[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -D14/1 | - | in | IOT44[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -E15/1 | - | in | IOT44[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -N15/1 | - | in | IOT48[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -P16/1 | - | in | IOT48[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -N16/1 | - | in | IOT52[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -N14/1 | - | in | IOT52[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -P15/1 | - | in | IOT54[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -R16/1 | - | in | IOT54[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -A4/5 | - | in | IOB2[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -C5/5 | - | in | IOB2[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -D6/5 | - | in | IOB3[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -E7/5 | - | in | IOB3[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -A3/5 | - | in | IOB4[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -B4/5 | - | in | IOB4[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -A5/5 | - | in | IOB7[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -B6/5 | - | in | IOB7[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -B1/5 | - | in | IOB8[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -C2/5 | - | in | IOB8[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -D3/5 | - | in | IOB9[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -D1/5 | - | in | IOB9[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -E2/5 | - | in | IOB12[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -E3/5 | - | in | IOB12[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -B3/5 | - | in | IOB13[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -A2/5 | - | in | IOB13[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -C1/5 | - | in | IOB14[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -D2/5 | - | in | IOB14[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -E1/5 | - | in | IOB16[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -F2/5 | - | in | IOB16[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -F4/5 | - | in | IOB18[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -G6/5 | - | in | IOB18[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -F3/5 | - | in | IOB19[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -F1/5 | - | in | IOB19[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -G5/5 | - | in | IOB20[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -G4/5 | - | in | IOB20[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -G2/5 | - | in | IOB21[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -G3/5 | - | in | IOB21[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -F5/5 | - | in | IOB22[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -H6/5 | - | in | IOB22[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -G1/5 | - | in | IOB24[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -H2/5 | - | in | IOB24[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -H4/5 | - | in | IOB26[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -J6/5 | - | in | IOB26[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -J1/5 | - | in | IOB27[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -J3/5 | - | in | IOB27[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -L2/4 | - | in | IOB30[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -M1/4 | - | in | IOB30[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -H3/4 | - | in | IOB32[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -H1/4 | - | in | IOB32[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -J2/4 | - | in | IOB34[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -K1/4 | - | in | IOB34[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -H5/4 | - | in | IOB35[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -J4/4 | - | in | IOB35[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -K3/4 | - | in | IOB36[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -K2/4 | - | in | IOB36[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -J5/4 | - | in | IOB37[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -K6/4 | - | in | IOB37[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -L1/4 | - | in | IOB38[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -L3/4 | - | in | IOB38[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -K4/4 | - | in | IOB39[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -L5/4 | - | in | IOB39[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -K5/4 | - | in | IOB40[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -L4/4 | - | in | IOB40[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -N2/4 | - | in | IOB41[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -P1/4 | - | in | IOB41[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -M3/4 | - | in | IOB42[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -N1/4 | - | in | IOB42[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -M2/4 | - | in | IOB43[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -N3/4 | - | in | IOB43[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -R1/4 | - | in | IOB44[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -P2/4 | - | in | IOB44[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -P4/4 | - | in | IOB45[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -T4/4 | - | in | IOB45[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -R3/4 | - | in | IOB48[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -T2/4 | - | in | IOB48[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -P5/4 | - | in | IOB50[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -R5/4 | - | in | IOB50[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -R4/4 | - | in | IOB52[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -T3/4 | - | in | IOB52[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -R6/4 | - | in | IOB54[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -T5/4 | - | in | IOB54[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -B14/7 | C[1] | out | IOL2[A] | LVCMOS18 | 8 | UP | NA | NA | OFF | NA | OFF | NA | 1.8 -A15/7 | A[0] | in | IOL2[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | OFF | NA | 1.8 -C12/7 | C[2] | out | IOL7[A] | LVCMOS18 | 8 | UP | NA | NA | OFF | NA | OFF | NA | 1.8 -B12/7 | B[1] | in | IOL7[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | OFF | NA | 1.8 -B13/7 | - | in | IOL8[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -A14/7 | - | in | IOL8[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -F10/7 | - | in | IOL11[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -B11/7 | - | in | IOL13[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -A12/7 | - | in | IOL13[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -A11/7 | - | in | IOL15[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -C11/7 | - | in | IOL15[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -D10/7 | - | in | IOL17[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -E10/7 | - | in | IOL17[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -D11/7 | - | in | IOL22[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -A9/7 | - | in | IOL27[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -C9/7 | - | in | IOL27[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -C8/6 | - | in | IOL29[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -A8/6 | - | in | IOL29[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -F9/6 | - | in | IOL31[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -E11/6 | - | in | IOL31[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -B9/6 | - | in | IOL33[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -A10/6 | - | in | IOL33[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -F8/6 | - | in | IOL35[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -D9/6 | - | in | IOL35[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -D8/6 | - | in | IOL38[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -E9/6 | - | in | IOL38[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -B7/6 | - | in | IOL40[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -C7/6 | - | in | IOL40[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -F7/6 | - | in | IOL45[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -E8/6 | - | in | IOL45[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -C4/6 | - | in | IOL47[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -B5/6 | - | in | IOL47[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -E6/6 | - | in | IOL53[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -D7/6 | - | in | IOL53[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -T15/2 | - | in | IOR7[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -R14/2 | - | in | IOR7[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -P12/2 | - | in | IOR8[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -T13/2 | - | in | IOR8[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -R12/2 | - | in | IOR11[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -P13/2 | - | in | IOR11[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -R11/2 | - | in | IOR17[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -T12/2 | - | in | IOR17[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -R13/2 | - | in | IOR20[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -T14/2 | - | in | IOR20[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -M10/2 | - | in | IOR22[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -N11/2 | - | in | IOR22[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -T11/2 | - | in | IOR24[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -P11/2 | - | in | IOR24[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -C6/2 | - | out | IOR25[A] | LVCMOS18 | 8 | UP | NA | NA | OFF | NA | NA | NA | 1.8 -B8/2 | - | in | IOR25[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -A7/2 | - | in | IOR26[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -A6/2 | - | in | IOR26[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -N10/2 | - | in | IOR27[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -M11/2 | - | in | IOR27[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -T7/3 | - | in | IOR29[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -R8/3 | - | in | IOR29[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -M16/3 | - | in | IOR30[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -B16/3 | - | in | IOR30[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -C15/3 | - | in | IOR31[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -B10/3 | - | in | IOR31[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -A13/3 | - | in | IOR32[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -C13/3 | - | in | IOR32[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -P10/3 | - | in | IOR33[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -R10/3 | - | in | IOR33[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -M9/3 | - | in | IOR34[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -L10/3 | - | in | IOR34[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -R9/3 | - | in | IOR35[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -T10/3 | - | in | IOR35[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -M8/3 | - | in | IOR36[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -N9/3 | - | in | IOR36[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -T9/3 | - | in | IOR38[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -P9/3 | - | in | IOR38[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -C10/3 | - | in | IOR39[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -N8/3 | - | in | IOR40[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -L9/3 | - | in | IOR40[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -P8/3 | - | in | IOR42[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -T8/3 | - | in | IOR42[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -M6/3 | - | in | IOR44[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -L8/3 | - | in | IOR44[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -M7/3 | - | in | IOR47[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -N7/3 | - | in | IOR47[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -R7/3 | - | in | IOR49[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -P7/3 | - | in | IOR49[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -N6/3 | - | in | IOR51[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -P6/3 | - | in | IOR53[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 -T6/3 | - | in | IOR53[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -==================================================================================================================================================================================== - - diff --git a/iverilog/tobb/labs/lab3/impl/pnr/lab3.timing_paths b/iverilog/tobb/labs/lab3/impl/pnr/lab3.timing_paths deleted file mode 100644 index e69de29..0000000 diff --git a/iverilog/tobb/labs/lab3/impl/pnr/lab3.tr.html b/iverilog/tobb/labs/lab3/impl/pnr/lab3.tr.html deleted file mode 100644 index b0b2814..0000000 --- a/iverilog/tobb/labs/lab3/impl/pnr/lab3.tr.html +++ /dev/null @@ -1,10 +0,0 @@ - - - -Timing Analysis Report - - - - - - diff --git a/iverilog/tobb/labs/lab3/impl/pnr/lab3_tr_cata.html b/iverilog/tobb/labs/lab3/impl/pnr/lab3_tr_cata.html deleted file mode 100644 index 9874094..0000000 --- a/iverilog/tobb/labs/lab3/impl/pnr/lab3_tr_cata.html +++ /dev/null @@ -1,132 +0,0 @@ - - - -Timing Report Navigation - - - - - - - diff --git a/iverilog/tobb/labs/lab3/impl/pnr/lab3_tr_content.html b/iverilog/tobb/labs/lab3/impl/pnr/lab3_tr_content.html deleted file mode 100644 index 030070e..0000000 --- a/iverilog/tobb/labs/lab3/impl/pnr/lab3_tr_content.html +++ /dev/null @@ -1,249 +0,0 @@ - - - -Timing Analysis Report - - - -
-

Timing Messages

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Report TitleTiming Analysis Report
Design FileC:\cygwin64\home\koray\verilog\lab3\impl\gwsynthesis\lab3.vg
Physical Constraints File---
Timing Constraint File---
Tool VersionV1.9.9.02
Part NumberGW2A-LV18PG256C8/I7
DeviceGW2A-18
Device VersionC
Created TimeSat May 4 01:07:45 2024 -
Legal AnnouncementCopyright (C)2014-2024 Gowin Semiconductor Corporation. All rights reserved.
-

Timing Summaries

-

STA Tool Run Summary:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Setup Delay ModelSlow 0.95V 85C C8/I7
Hold Delay ModelFast 1.05V 0C C8/I7
Numbers of Paths Analyzed14
Numbers of Endpoints Analyzed4
Numbers of Falling Endpoints0
Numbers of Setup Violated Endpoints0
Numbers of Hold Violated Endpoints0
-

Clock Summary:

- - - - - - - - - - - - -
Clock NameTypePeriodFrequency(MHz)RiseFallSourceMasterObjects
-

Max Frequency Summary:

- - - - - - - - - -
NO.Clock NameConstraintActual FmaxLogic LevelEntity
-

Total Negative Slack Summary:

- - - - - - - -
Clock NameAnalysis TypeEndpoints TNSNumber of Endpoints
-

Timing Details

-

Path Slacks Table:

-

Setup Paths Table

-

Report Command:report_timing -setup -max_paths 25 -max_common_paths 1

-

Nothing to report!

-

Hold Paths Table

-

Report Command:report_timing -hold -max_paths 25 -max_common_paths 1

-

Nothing to report!

-

Recovery Paths Table

-

Report Command:report_timing -recovery -max_paths 25 -max_common_paths 1

-

Nothing to report!

-

Removal Paths Table

-

Report Command:report_timing -removal -max_paths 25 -max_common_paths 1

-

Nothing to report!

-

Minimum Pulse Width Table:

- - - - - - - - - - -

Report Command:report_min_pulse_width -nworst 10 -detail

-

Nothing to report!

-
NumberSlackActual WidthRequired WidthTypeClockObjects
-

Timing Report By Analysis Type:

-

Setup Analysis Report

-

Report Command:report_timing -setup -max_paths 25 -max_common_paths 1

-

No setup paths to report!

-

Hold Analysis Report

-

Report Command:report_timing -hold -max_paths 25 -max_common_paths 1

-

No hold paths to report!

-

Recovery Analysis Report

-

Report Command:report_timing -recovery -max_paths 25 -max_common_paths 1

-

No recovery paths to report!

-

Removal Analysis Report

-

Report Command:report_timing -removal -max_paths 25 -max_common_paths 1

-

No removal paths to report!

-

Minimum Pulse Width Report:

-

Report Command:report_min_pulse_width -nworst 10 -detail

-

Nothing to report!

-

High Fanout Nets Report:

-

Report Command:report_high_fanout_nets -max_nets 10

- - - - - - - -
FANOUTNET NAMEWORST SLACKMAX DELAY
-

Route Congestions Report:

-

Report Command:report_route_congestion -max_grids 10

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GRID LOCROUTE CONGESTIONS
R2C28.33%
R2C15.56%
R1C22.78%
R2C42.78%
R7C12.78%
R1C42.78%
R28C511.39%
R2C31.39%
-

Timing Exceptions Report:

-

Setup Analysis Report

-

Report Command:report_exceptions -setup -max_paths 5 -max_common_paths 1

-

No timing exceptions to report!

-

Hold Analysis Report

-

Report Command:report_exceptions -hold -max_paths 5 -max_common_paths 1

-

No timing exceptions to report!

-

Recovery Analysis Report

-

Report Command:report_exceptions -recovery -max_paths 5 -max_common_paths 1

-

No timing exceptions to report!

-

Removal Analysis Report

-

Report Command:report_exceptions -removal -max_paths 5 -max_common_paths 1

-

No timing exceptions to report!

-

Timing Constraints Report:

- - - - - - -
SDC Command TypeStateDetail Command
-
- - diff --git a/iverilog/tobb/labs/lab3/impl/temp/rtl_parser.result b/iverilog/tobb/labs/lab3/impl/temp/rtl_parser.result deleted file mode 100644 index 76a4978..0000000 --- a/iverilog/tobb/labs/lab3/impl/temp/rtl_parser.result +++ /dev/null @@ -1,54 +0,0 @@ -[ - { - "InstFile" : "C:/cygwin64/home/koray/verilog/lab3/src/fullAdder.v", - "InstLine" : 1, - "InstName" : "fullAdder", - "ModuleFile" : "C:/cygwin64/home/koray/verilog/lab3/src/fullAdder.v", - "ModuleLine" : 1, - "ModuleName" : "fullAdder", - "SubInsts" : [ - { - "InstFile" : "C:/cygwin64/home/koray/verilog/lab3/src/fullAdder.v", - "InstLine" : 7, - "InstName" : "h0", - "ModuleFile" : "C:/cygwin64/home/koray/verilog/lab3/src/halfAdder.v", - "ModuleLine" : 1, - "ModuleName" : "halfAdder" - }, - { - "InstFile" : "C:/cygwin64/home/koray/verilog/lab3/src/fullAdder.v", - "InstLine" : 8, - "InstName" : "h1", - "ModuleFile" : "C:/cygwin64/home/koray/verilog/lab3/src/halfAdder.v", - "ModuleLine" : 1, - "ModuleName" : "halfAdder" - } - ] - }, - { - "InstFile" : "C:/cygwin64/home/koray/verilog/lab3/src/mult2bit.v", - "InstLine" : 1, - "InstName" : "mult2bit", - "ModuleFile" : "C:/cygwin64/home/koray/verilog/lab3/src/mult2bit.v", - "ModuleLine" : 1, - "ModuleName" : "mult2bit", - "SubInsts" : [ - { - "InstFile" : "C:/cygwin64/home/koray/verilog/lab3/src/mult2bit.v", - "InstLine" : 14, - "InstName" : "h0", - "ModuleFile" : "C:/cygwin64/home/koray/verilog/lab3/src/halfAdder.v", - "ModuleLine" : 1, - "ModuleName" : "halfAdder" - }, - { - "InstFile" : "C:/cygwin64/home/koray/verilog/lab3/src/mult2bit.v", - "InstLine" : 15, - "InstName" : "h1", - "ModuleFile" : "C:/cygwin64/home/koray/verilog/lab3/src/halfAdder.v", - "ModuleLine" : 1, - "ModuleName" : "halfAdder" - } - ] - } -] \ No newline at end of file diff --git a/iverilog/tobb/labs/lab3/impl/temp/rtl_parser_arg.json b/iverilog/tobb/labs/lab3/impl/temp/rtl_parser_arg.json deleted file mode 100644 index 6820b88..0000000 --- a/iverilog/tobb/labs/lab3/impl/temp/rtl_parser_arg.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "Device" : "GW2A-18C", - "Files" : [ - { - "Path" : "C:/cygwin64/home/koray/verilog/lab3/src/fullAdder.v", - "Type" : "verilog" - }, - { - "Path" : "C:/cygwin64/home/koray/verilog/lab3/src/halfAdder.v", - "Type" : "verilog" - }, - { - "Path" : "C:/cygwin64/home/koray/verilog/lab3/src/mult2bit.v", - "Type" : "verilog" - } - ], - "IncludePath" : [ - - ], - "LoopLimit" : 2000, - "ResultFile" : "C:/cygwin64/home/koray/verilog/lab3/impl/temp/rtl_parser.result", - "Top" : "", - "VerilogStd" : "verilog_2001", - "VhdlStd" : "vhdl_93" -} \ No newline at end of file diff --git a/iverilog/tobb/labs/lab3/impl/temp/style.css b/iverilog/tobb/labs/lab3/impl/temp/style.css deleted file mode 100644 index e69de29..0000000 diff --git a/iverilog/tobb/labs/lab3/lab3.gprj b/iverilog/tobb/labs/lab3/lab3.gprj deleted file mode 100644 index 99892d0..0000000 --- a/iverilog/tobb/labs/lab3/lab3.gprj +++ /dev/null @@ -1,14 +0,0 @@ - - - - - 5 - gw2a18c-011 - - - - - - - - diff --git a/iverilog/tobb/labs/lab3/lab3.gprj.user b/iverilog/tobb/labs/lab3/lab3.gprj.user deleted file mode 100644 index 296078d..0000000 --- a/iverilog/tobb/labs/lab3/lab3.gprj.user +++ /dev/null @@ -1,24 +0,0 @@ - - - - 1.0 - - - - - - - - - - - - - - - - - - - 000000ff00000001fd000000020000000000000170000002b1fc0200000001fc00000037000002b10000000000fffffffaffffffff0200000003fb00000030004600700067006100500072006f006a006500630074002e00500061006e0065006c002e00440065007300690067006e0100000000ffffffff0000000000000000fb00000032004600700067006100500072006f006a006500630074002e00500061006e0065006c002e00500072006f00630065007300730100000000ffffffff0000000000000000fb00000036004600700067006100500072006f006a006500630074002e00500061006e0065006c002e0048006900650072006100720063006800790100000000ffffffff0000000000000000000000030000078000000121fc0100000001fc00000000000007800000009b00fffffffa000000000100000002fb00000032004600700067006100500072006f006a006500630074002e00500061006e0065006c002e00470065006e006500720061006c0100000000ffffffff0000005100fffffffb0000002e004600700067006100500072006f006a006500630074002e00500061006e0065006c002e004900730073007500650100000000ffffffff0000009b00ffffff0000060c000002b100000004000000040000000800000008fc000000010000000200000003000000220043006f00720065002e0054006f006f006c006200610072002e00460069006c00650100000000ffffffff0000000000000000000000220043006f00720065002e0054006f006f006c006200610072002e00450064006900740100000099ffffffff0000000000000000000000240043006f00720065002e0054006f006f006c006200610072002e0054006f006f006c00730100000153ffffffff0000000000000000 - diff --git a/iverilog/tobb/labs/lab3/src/3bit b/iverilog/tobb/labs/lab3/src/3bit deleted file mode 100644 index de9ceab..0000000 --- a/iverilog/tobb/labs/lab3/src/3bit +++ /dev/null @@ -1,217 +0,0 @@ -#! /c/Source/iverilog-install/bin/vvp -:ivl_version "12.0 (devel)" "(s20150603-1539-g2693dd32b)"; -:ivl_delay_selection "TYPICAL"; -:vpi_time_precision + 0; -:vpi_module "C:\iverilog\lib\ivl\system.vpi"; -:vpi_module "C:\iverilog\lib\ivl\vhdl_sys.vpi"; -:vpi_module "C:\iverilog\lib\ivl\vhdl_textio.vpi"; -:vpi_module "C:\iverilog\lib\ivl\v2005_math.vpi"; -:vpi_module "C:\iverilog\lib\ivl\va_math.vpi"; -S_00000154a426eaa0 .scope module, "tb" "tb" 2 1; - .timescale 0 0; -v00000154a4316c30_0 .var "A", 2 0; -v00000154a4316370_0 .var "B", 2 0; -v00000154a4317770_0 .net "C", 3 0, L_00000154a43162d0; 1 drivers -S_00000154a426ec30 .scope module, "uut" "Adder3Bit" 2 5, 3 1 0, S_00000154a426eaa0; - .timescale 0 0; - .port_info 0 /INPUT 3 "A"; - .port_info 1 /INPUT 3 "B"; - .port_info 2 /OUTPUT 4 "C"; -v00000154a4316230_0 .net "A", 2 0, v00000154a4316c30_0; 1 drivers -v00000154a43173b0_0 .net "B", 2 0, v00000154a4316370_0; 1 drivers -v00000154a4317450_0 .net "C", 3 0, L_00000154a43162d0; alias, 1 drivers -v00000154a4316050_0 .net "c1", 0 0, L_00000154a42aabe0; 1 drivers -v00000154a43174f0_0 .net "c2", 0 0, L_00000154a42ab200; 1 drivers -L_00000154a4315fb0 .part v00000154a4316c30_0, 0, 1; -L_00000154a4315b50 .part v00000154a4316370_0, 0, 1; -L_00000154a4316190 .part v00000154a4316c30_0, 1, 1; -L_00000154a4317590 .part v00000154a4316370_0, 1, 1; -L_00000154a4317630 .part v00000154a4316c30_0, 2, 1; -L_00000154a4316a50 .part v00000154a4316370_0, 2, 1; -L_00000154a43162d0 .concat8 [ 1 1 1 1], L_00000154a42aa8d0, L_00000154a42ab580, L_00000154a42ab660, L_00000154a42aad30; -S_00000154a426d820 .scope module, "a0" "halfAdder" 3 8, 4 1 0, S_00000154a426ec30; - .timescale 0 0; - .port_info 0 /INPUT 1 "A"; - .port_info 1 /INPUT 1 "B"; - .port_info 2 /OUTPUT 1 "S"; - .port_info 3 /OUTPUT 1 "C"; -L_00000154a42aa8d0 .functor XOR 1, L_00000154a4315fb0, L_00000154a4315b50, C4<0>, C4<0>; -L_00000154a42aabe0 .functor AND 1, L_00000154a4315fb0, L_00000154a4315b50, C4<1>, C4<1>; -v00000154a42aa140_0 .net "A", 0 0, L_00000154a4315fb0; 1 drivers -v00000154a42a9c40_0 .net "B", 0 0, L_00000154a4315b50; 1 drivers -v00000154a42aa000_0 .net "C", 0 0, L_00000154a42aabe0; alias, 1 drivers -v00000154a42a9880_0 .net "S", 0 0, L_00000154a42aa8d0; 1 drivers -S_00000154a426d9b0 .scope module, "a1" "fullAdder" 3 10, 5 1 0, S_00000154a426ec30; - .timescale 0 0; - .port_info 0 /INPUT 1 "A"; - .port_info 1 /INPUT 1 "B"; - .port_info 2 /INPUT 1 "Z"; - .port_info 3 /OUTPUT 1 "S"; - .port_info 4 /OUTPUT 1 "C"; -L_00000154a42ab200 .functor OR 1, L_00000154a42aab70, L_00000154a42aa940, C4<0>, C4<0>; -v00000154a42a99c0_0 .net "A", 0 0, L_00000154a4316190; 1 drivers -v00000154a42aa6e0_0 .net "B", 0 0, L_00000154a4317590; 1 drivers -v00000154a42aa320_0 .net "C", 0 0, L_00000154a42ab200; alias, 1 drivers -v00000154a42aa500_0 .net "S", 0 0, L_00000154a42ab580; 1 drivers -v00000154a42a9b00_0 .net "W0", 0 0, L_00000154a42ab510; 1 drivers -v00000154a42aa640_0 .net "W1", 0 0, L_00000154a42aab70; 1 drivers -v00000154a42a9d80_0 .net "W2", 0 0, L_00000154a42aa940; 1 drivers -v00000154a42a9ec0_0 .net "Z", 0 0, L_00000154a42aabe0; alias, 1 drivers -S_00000154a426c910 .scope module, "h0" "halfAdder" 5 7, 4 1 0, S_00000154a426d9b0; - .timescale 0 0; - .port_info 0 /INPUT 1 "A"; - .port_info 1 /INPUT 1 "B"; - .port_info 2 /OUTPUT 1 "S"; - .port_info 3 /OUTPUT 1 "C"; -L_00000154a42ab510 .functor XOR 1, L_00000154a4316190, L_00000154a4317590, C4<0>, C4<0>; -L_00000154a42aab70 .functor AND 1, L_00000154a4316190, L_00000154a4317590, C4<1>, C4<1>; -v00000154a42aa0a0_0 .net "A", 0 0, L_00000154a4316190; alias, 1 drivers -v00000154a42a9a60_0 .net "B", 0 0, L_00000154a4317590; alias, 1 drivers -v00000154a42aa1e0_0 .net "C", 0 0, L_00000154a42aab70; alias, 1 drivers -v00000154a42aa280_0 .net "S", 0 0, L_00000154a42ab510; alias, 1 drivers -S_00000154a426caa0 .scope module, "h1" "halfAdder" 5 8, 4 1 0, S_00000154a426d9b0; - .timescale 0 0; - .port_info 0 /INPUT 1 "A"; - .port_info 1 /INPUT 1 "B"; - .port_info 2 /OUTPUT 1 "S"; - .port_info 3 /OUTPUT 1 "C"; -L_00000154a42ab580 .functor XOR 1, L_00000154a42ab510, L_00000154a42aabe0, C4<0>, C4<0>; -L_00000154a42aa940 .functor AND 1, L_00000154a42ab510, L_00000154a42aabe0, C4<1>, C4<1>; -v00000154a42a97e0_0 .net "A", 0 0, L_00000154a42ab510; alias, 1 drivers -v00000154a42a9ce0_0 .net "B", 0 0, L_00000154a42aabe0; alias, 1 drivers -v00000154a42a9920_0 .net "C", 0 0, L_00000154a42aa940; alias, 1 drivers -v00000154a42aa460_0 .net "S", 0 0, L_00000154a42ab580; alias, 1 drivers -S_00000154a4282990 .scope module, "a2" "fullAdder" 3 11, 5 1 0, S_00000154a426ec30; - .timescale 0 0; - .port_info 0 /INPUT 1 "A"; - .port_info 1 /INPUT 1 "B"; - .port_info 2 /INPUT 1 "Z"; - .port_info 3 /OUTPUT 1 "S"; - .port_info 4 /OUTPUT 1 "C"; -L_00000154a42aad30 .functor OR 1, L_00000154a42ab3c0, L_00000154a42aa9b0, C4<0>, C4<0>; -v00000154a4316910_0 .net "A", 0 0, L_00000154a4317630; 1 drivers -v00000154a43160f0_0 .net "B", 0 0, L_00000154a4316a50; 1 drivers -v00000154a4317270_0 .net "C", 0 0, L_00000154a42aad30; 1 drivers -v00000154a4316ff0_0 .net "S", 0 0, L_00000154a42ab660; 1 drivers -v00000154a4316b90_0 .net "W0", 0 0, L_00000154a42ab350; 1 drivers -v00000154a43171d0_0 .net "W1", 0 0, L_00000154a42ab3c0; 1 drivers -v00000154a4317310_0 .net "W2", 0 0, L_00000154a42aa9b0; 1 drivers -v00000154a43176d0_0 .net "Z", 0 0, L_00000154a42ab200; alias, 1 drivers -S_00000154a4282b20 .scope module, "h0" "halfAdder" 5 7, 4 1 0, S_00000154a4282990; - .timescale 0 0; - .port_info 0 /INPUT 1 "A"; - .port_info 1 /INPUT 1 "B"; - .port_info 2 /OUTPUT 1 "S"; - .port_info 3 /OUTPUT 1 "C"; -L_00000154a42ab350 .functor XOR 1, L_00000154a4317630, L_00000154a4316a50, C4<0>, C4<0>; -L_00000154a42ab3c0 .functor AND 1, L_00000154a4317630, L_00000154a4316a50, C4<1>, C4<1>; -v00000154a42a9e20_0 .net "A", 0 0, L_00000154a4317630; alias, 1 drivers -v00000154a42aa5a0_0 .net "B", 0 0, L_00000154a4316a50; alias, 1 drivers -v00000154a4316870_0 .net "C", 0 0, L_00000154a42ab3c0; alias, 1 drivers -v00000154a4315c90_0 .net "S", 0 0, L_00000154a42ab350; alias, 1 drivers -S_00000154a4282cb0 .scope module, "h1" "halfAdder" 5 8, 4 1 0, S_00000154a4282990; - .timescale 0 0; - .port_info 0 /INPUT 1 "A"; - .port_info 1 /INPUT 1 "B"; - .port_info 2 /OUTPUT 1 "S"; - .port_info 3 /OUTPUT 1 "C"; -L_00000154a42ab660 .functor XOR 1, L_00000154a42ab350, L_00000154a42ab200, C4<0>, C4<0>; -L_00000154a42aa9b0 .functor AND 1, L_00000154a42ab350, L_00000154a42ab200, C4<1>, C4<1>; -v00000154a4315ab0_0 .net "A", 0 0, L_00000154a42ab350; alias, 1 drivers -v00000154a4316730_0 .net "B", 0 0, L_00000154a42ab200; alias, 1 drivers -v00000154a43169b0_0 .net "C", 0 0, L_00000154a42aa9b0; alias, 1 drivers -v00000154a4317130_0 .net "S", 0 0, L_00000154a42ab660; alias, 1 drivers - .scope S_00000154a426eaa0; -T_0 ; - %vpi_call 2 8 "$dumpfile", "dmp.vcd" {0 0 0}; - %vpi_call 2 9 "$dumpvars" {0 0 0}; - %pushi/vec4 0, 0, 3; - %store/vec4 v00000154a4316c30_0, 0, 3; - %pushi/vec4 7, 0, 3; - %store/vec4 v00000154a4316370_0, 0, 3; - %delay 10, 0; - %pushi/vec4 1, 0, 3; - %store/vec4 v00000154a4316c30_0, 0, 3; - %pushi/vec4 6, 0, 3; - %store/vec4 v00000154a4316370_0, 0, 3; - %delay 10, 0; - %pushi/vec4 2, 0, 3; - %store/vec4 v00000154a4316c30_0, 0, 3; - %pushi/vec4 5, 0, 3; - %store/vec4 v00000154a4316370_0, 0, 3; - %delay 10, 0; - %pushi/vec4 3, 0, 3; - %store/vec4 v00000154a4316c30_0, 0, 3; - %pushi/vec4 4, 0, 3; - %store/vec4 v00000154a4316370_0, 0, 3; - %delay 10, 0; - %pushi/vec4 4, 0, 3; - %store/vec4 v00000154a4316c30_0, 0, 3; - %pushi/vec4 3, 0, 3; - %store/vec4 v00000154a4316370_0, 0, 3; - %delay 10, 0; - %pushi/vec4 5, 0, 3; - %store/vec4 v00000154a4316c30_0, 0, 3; - %pushi/vec4 2, 0, 3; - %store/vec4 v00000154a4316370_0, 0, 3; - %delay 10, 0; - %pushi/vec4 6, 0, 3; - %store/vec4 v00000154a4316c30_0, 0, 3; - %pushi/vec4 1, 0, 3; - %store/vec4 v00000154a4316370_0, 0, 3; - %delay 10, 0; - %pushi/vec4 7, 0, 3; - %store/vec4 v00000154a4316c30_0, 0, 3; - %pushi/vec4 0, 0, 3; - %store/vec4 v00000154a4316370_0, 0, 3; - %delay 10, 0; - %pushi/vec4 0, 0, 3; - %store/vec4 v00000154a4316c30_0, 0, 3; - %pushi/vec4 0, 0, 3; - %store/vec4 v00000154a4316370_0, 0, 3; - %delay 10, 0; - %pushi/vec4 1, 0, 3; - %store/vec4 v00000154a4316c30_0, 0, 3; - %pushi/vec4 0, 0, 3; - %store/vec4 v00000154a4316370_0, 0, 3; - %delay 10, 0; - %pushi/vec4 2, 0, 3; - %store/vec4 v00000154a4316c30_0, 0, 3; - %pushi/vec4 0, 0, 3; - %store/vec4 v00000154a4316370_0, 0, 3; - %delay 10, 0; - %pushi/vec4 3, 0, 3; - %store/vec4 v00000154a4316c30_0, 0, 3; - %pushi/vec4 0, 0, 3; - %store/vec4 v00000154a4316370_0, 0, 3; - %delay 10, 0; - %pushi/vec4 4, 0, 3; - %store/vec4 v00000154a4316c30_0, 0, 3; - %pushi/vec4 0, 0, 3; - %store/vec4 v00000154a4316370_0, 0, 3; - %delay 10, 0; - %pushi/vec4 5, 0, 3; - %store/vec4 v00000154a4316c30_0, 0, 3; - %pushi/vec4 0, 0, 3; - %store/vec4 v00000154a4316370_0, 0, 3; - %delay 10, 0; - %pushi/vec4 6, 0, 3; - %store/vec4 v00000154a4316c30_0, 0, 3; - %pushi/vec4 0, 0, 3; - %store/vec4 v00000154a4316370_0, 0, 3; - %delay 10, 0; - %pushi/vec4 7, 0, 3; - %store/vec4 v00000154a4316c30_0, 0, 3; - %pushi/vec4 0, 0, 3; - %store/vec4 v00000154a4316370_0, 0, 3; - %delay 10, 0; - %end; - .thread T_0; -# The file index is used to find the file name in the following table. -:file_names 6; - "N/A"; - ""; - ".\tb.v"; - ".\Adder3Bit.v"; - ".\halfAdder.v"; - ".\fullAdder.v"; diff --git a/iverilog/tobb/labs/lab3/src/3dmp.vcd b/iverilog/tobb/labs/lab3/src/3dmp.vcd deleted file mode 100644 index 647f3e9..0000000 --- a/iverilog/tobb/labs/lab3/src/3dmp.vcd +++ /dev/null @@ -1,142 +0,0 @@ -$date - Sat May 04 01:15:09 2024 -$end -$version - Icarus Verilog -$end -$timescale - 1s -$end -$scope module fullAdder $end -$var wire 1 ! A $end -$var wire 1 " B $end -$var wire 1 # C $end -$var wire 1 $ Z $end -$var wire 1 % W2 $end -$var wire 1 & W1 $end -$var wire 1 ' W0 $end -$var wire 1 ( S $end -$scope module h0 $end -$var wire 1 ! A $end -$var wire 1 " B $end -$var wire 1 & C $end -$var wire 1 ' S $end -$upscope $end -$scope module h1 $end -$var wire 1 ' A $end -$var wire 1 $ B $end -$var wire 1 % C $end -$var wire 1 ( S $end -$upscope $end -$upscope $end -$scope module mtb $end -$var wire 4 ) C [3:0] $end -$var reg 2 * A [1:0] $end -$var reg 2 + B [1:0] $end -$scope module uut $end -$var wire 2 , A [1:0] $end -$var wire 2 - B [1:0] $end -$var wire 1 . c1 $end -$var wire 1 / c2 $end -$var wire 1 0 c5 $end -$var wire 1 1 c4 $end -$var wire 4 2 C [3:0] $end -$scope module h0 $end -$var wire 1 . A $end -$var wire 1 / B $end -$var wire 1 1 C $end -$var wire 1 3 S $end -$upscope $end -$scope module h1 $end -$var wire 1 0 A $end -$var wire 1 1 B $end -$var wire 1 4 C $end -$var wire 1 5 S $end -$upscope $end -$upscope $end -$upscope $end -$enddefinitions $end -$comment Show the parameter values. $end -$dumpall -$end -#0 -$dumpvars -05 -04 -03 -b0 2 -01 -00 -0/ -0. -b11 - -b0 , -b11 + -b0 * -b0 ) -x( -x' -x& -x% -z$ -x# -z" -z! -$end -#10 -b10 ) -b10 2 -13 -1/ -b10 + -b10 - -b1 * -b1 , -#20 -1. -0/ -b1 + -b1 - -b10 * -b10 , -#30 -b0 ) -b0 2 -03 -0. -b0 + -b0 - -b11 * -b11 , -#40 -b0 * -b0 , -#50 -b1 ) -b1 2 -b1 + -b1 - -b1 * -b1 , -#60 -15 -10 -b1000 ) -b1000 2 -b10 + -b10 - -b10 * -b10 , -#70 -05 -14 -11 -1. -1/ -b101 ) -b101 2 -b11 + -b11 - -b11 * -b11 , -#80 diff --git a/iverilog/tobb/labs/lab3/src/Adder3Bit b/iverilog/tobb/labs/lab3/src/Adder3Bit deleted file mode 100644 index 6436819..0000000 --- a/iverilog/tobb/labs/lab3/src/Adder3Bit +++ /dev/null @@ -1,140 +0,0 @@ -#! /c/Source/iverilog-install/bin/vvp -:ivl_version "12.0 (devel)" "(s20150603-1539-g2693dd32b)"; -:ivl_delay_selection "TYPICAL"; -:vpi_time_precision + 0; -:vpi_module "C:\iverilog\lib\ivl\system.vpi"; -:vpi_module "C:\iverilog\lib\ivl\vhdl_sys.vpi"; -:vpi_module "C:\iverilog\lib\ivl\vhdl_textio.vpi"; -:vpi_module "C:\iverilog\lib\ivl\v2005_math.vpi"; -:vpi_module "C:\iverilog\lib\ivl\va_math.vpi"; -S_000001e07a11e640 .scope module, "tbAdder3Bit" "tbAdder3Bit" 2 1; - .timescale 0 0; -v000001e07a09f780_0 .var "r1", 2 0; -v000001e07a09f5a0_0 .var "r2", 2 0; -v000001e07a0a0d60_0 .net "w1", 2 0, L_000001e07a0a0ea0; 1 drivers -v000001e07a0a0360_0 .net "w2", 2 0, L_000001e07a0a05e0; 1 drivers -S_000001e07a11e7d0 .scope module, "uut" "Adder3Bit" 2 6, 3 1 0, S_000001e07a11e640; - .timescale 0 0; - .port_info 0 /INPUT 3 "num1"; - .port_info 1 /INPUT 3 "num2"; - .port_info 2 /OUTPUT 3 "Carry"; - .port_info 3 /OUTPUT 3 "sum"; -L_000001e07a118f90 .functor XOR 1, L_000001e07a09fdc0, L_000001e07a09f000, C4<0>, C4<0>; -L_000001e07a1190e0 .functor AND 1, L_000001e07a0a0400, L_000001e07a0a0220, C4<1>, C4<1>; -L_000001e07a119000 .functor XOR 1, L_000001e07a09fbe0, L_000001e07a0a0e00, C4<0>, C4<0>; -L_000001e07a1191c0 .functor XOR 1, L_000001e07a119000, L_000001e07a09f8c0, C4<0>, C4<0>; -L_000001e07a119310 .functor AND 1, L_000001e07a119000, L_000001e07a09f460, C4<1>, C4<1>; -L_000001e07a119070 .functor AND 1, L_000001e07a09fa00, L_000001e07a0a09a0, C4<1>, C4<1>; -L_000001e07a0a2d40 .functor OR 1, L_000001e07a119310, L_000001e07a119070, C4<0>, C4<0>; -L_000001e07a0a25d0 .functor XOR 1, L_000001e07a09fc80, L_000001e07a0a0b80, C4<0>, C4<0>; -L_000001e07a0a2bf0 .functor XOR 1, L_000001e07a0a25d0, L_000001e07a09faa0, C4<0>, C4<0>; -L_000001e07a0a24f0 .functor AND 1, L_000001e07a0a25d0, L_000001e07a09f500, C4<1>, C4<1>; -L_000001e07a0a2170 .functor AND 1, L_000001e07a09f280, L_000001e07a0a0540, C4<1>, C4<1>; -L_000001e07a0a2640 .functor OR 1, L_000001e07a0a24f0, L_000001e07a0a2170, C4<0>, C4<0>; -v000001e07a036150_0 .net "Carry", 2 0, L_000001e07a0a05e0; alias, 1 drivers -v000001e07a035750_0 .net *"_ivl_1", 0 0, L_000001e07a118f90; 1 drivers -v000001e07a0357f0_0 .net *"_ivl_11", 0 0, L_000001e07a0a0400; 1 drivers -v000001e07a035d90_0 .net *"_ivl_13", 0 0, L_000001e07a0a0220; 1 drivers -v000001e07a036470_0 .net *"_ivl_17", 0 0, L_000001e07a09fbe0; 1 drivers -v000001e07a035ed0_0 .net *"_ivl_19", 0 0, L_000001e07a0a0e00; 1 drivers -v000001e07a036510_0 .net *"_ivl_21", 0 0, L_000001e07a1191c0; 1 drivers -v000001e07a036010_0 .net *"_ivl_25", 0 0, L_000001e07a09f8c0; 1 drivers -v000001e07a035890_0 .net *"_ivl_30", 0 0, L_000001e07a09f460; 1 drivers -v000001e07a0365b0_0 .net *"_ivl_34", 0 0, L_000001e07a09fa00; 1 drivers -v000001e07a035930_0 .net *"_ivl_36", 0 0, L_000001e07a0a09a0; 1 drivers -v000001e07a0a04a0_0 .net *"_ivl_38", 0 0, L_000001e07a0a2d40; 1 drivers -v000001e07a0a0cc0_0 .net *"_ivl_4", 0 0, L_000001e07a09fdc0; 1 drivers -v000001e07a09f1e0_0 .net *"_ivl_45", 0 0, L_000001e07a09fc80; 1 drivers -v000001e07a09f140_0 .net *"_ivl_47", 0 0, L_000001e07a0a0b80; 1 drivers -v000001e07a0a0a40_0 .net *"_ivl_49", 0 0, L_000001e07a0a2bf0; 1 drivers -v000001e07a09f320_0 .net *"_ivl_54", 0 0, L_000001e07a09faa0; 1 drivers -v000001e07a09fe60_0 .net *"_ivl_59", 0 0, L_000001e07a09f500; 1 drivers -v000001e07a09f960_0 .net *"_ivl_6", 0 0, L_000001e07a09f000; 1 drivers -v000001e07a09f820_0 .net *"_ivl_63", 0 0, L_000001e07a09f280; 1 drivers -v000001e07a09f6e0_0 .net *"_ivl_65", 0 0, L_000001e07a0a0540; 1 drivers -v000001e07a0a0040_0 .net *"_ivl_67", 0 0, L_000001e07a0a2640; 1 drivers -v000001e07a09f0a0_0 .net *"_ivl_8", 0 0, L_000001e07a1190e0; 1 drivers -v000001e07a09f640_0 .net "num1", 2 0, v000001e07a09f780_0; 1 drivers -v000001e07a09f3c0 .array "num12", 0 1; -v000001e07a09f3c0_0 .net v000001e07a09f3c0 0, 0 0, L_000001e07a119000; 1 drivers -v000001e07a09f3c0_1 .net v000001e07a09f3c0 1, 0 0, L_000001e07a0a25d0; 1 drivers -v000001e07a09ff00 .array "num12Carry", 0 1; -v000001e07a09ff00_0 .net v000001e07a09ff00 0, 0 0, L_000001e07a119310; 1 drivers -v000001e07a09ff00_1 .net v000001e07a09ff00 1, 0 0, L_000001e07a0a24f0; 1 drivers -v000001e07a0a0900 .array "num1a2", 0 1; -v000001e07a0a0900_0 .net v000001e07a0a0900 0, 0 0, L_000001e07a119070; 1 drivers -v000001e07a0a0900_1 .net v000001e07a0a0900 1, 0 0, L_000001e07a0a2170; 1 drivers -v000001e07a09fb40_0 .net "num2", 2 0, v000001e07a09f5a0_0; 1 drivers -v000001e07a09fd20_0 .net "sum", 2 0, L_000001e07a0a0ea0; alias, 1 drivers -L_000001e07a09fdc0 .part v000001e07a09f780_0, 0, 1; -L_000001e07a09f000 .part v000001e07a09f5a0_0, 0, 1; -L_000001e07a0a0400 .part v000001e07a09f780_0, 0, 1; -L_000001e07a0a0220 .part v000001e07a09f5a0_0, 0, 1; -L_000001e07a09fbe0 .part v000001e07a09f780_0, 1, 1; -L_000001e07a0a0e00 .part v000001e07a09f5a0_0, 1, 1; -L_000001e07a09f8c0 .part L_000001e07a0a05e0, 0, 1; -L_000001e07a09f460 .part L_000001e07a0a05e0, 0, 1; -L_000001e07a09fa00 .part v000001e07a09f780_0, 1, 1; -L_000001e07a0a09a0 .part v000001e07a09f5a0_0, 1, 1; -L_000001e07a09fc80 .part v000001e07a09f780_0, 2, 1; -L_000001e07a0a0b80 .part v000001e07a09f5a0_0, 2, 1; -L_000001e07a0a0ea0 .concat8 [ 1 1 1 0], L_000001e07a118f90, L_000001e07a1191c0, L_000001e07a0a2bf0; -L_000001e07a09faa0 .part L_000001e07a0a05e0, 1, 1; -L_000001e07a09f500 .part L_000001e07a0a05e0, 1, 1; -L_000001e07a09f280 .part v000001e07a09f780_0, 2, 1; -L_000001e07a0a0540 .part v000001e07a09f5a0_0, 2, 1; -L_000001e07a0a05e0 .concat8 [ 1 1 1 0], L_000001e07a1190e0, L_000001e07a0a2d40, L_000001e07a0a2640; - .scope S_000001e07a11e640; -T_0 ; - %vpi_call 2 14 "$dumpfile", "Admp.vcd" {0 0 0}; - %vpi_call 2 15 "$dumpvars" {0 0 0}; - %pushi/vec4 0, 0, 3; - %store/vec4 v000001e07a09f780_0, 0, 3; - %pushi/vec4 0, 0, 3; - %store/vec4 v000001e07a09f5a0_0, 0, 3; - %delay 10, 0; - %pushi/vec4 1, 0, 3; - %store/vec4 v000001e07a09f780_0, 0, 3; - %pushi/vec4 1, 0, 3; - %store/vec4 v000001e07a09f5a0_0, 0, 3; - %delay 10, 0; - %pushi/vec4 2, 0, 3; - %store/vec4 v000001e07a09f780_0, 0, 3; - %pushi/vec4 2, 0, 3; - %store/vec4 v000001e07a09f5a0_0, 0, 3; - %delay 10, 0; - %pushi/vec4 4, 0, 3; - %store/vec4 v000001e07a09f780_0, 0, 3; - %pushi/vec4 4, 0, 3; - %store/vec4 v000001e07a09f5a0_0, 0, 3; - %delay 10, 0; - %pushi/vec4 3, 0, 3; - %store/vec4 v000001e07a09f780_0, 0, 3; - %pushi/vec4 3, 0, 3; - %store/vec4 v000001e07a09f5a0_0, 0, 3; - %delay 10, 0; - %pushi/vec4 5, 0, 3; - %store/vec4 v000001e07a09f780_0, 0, 3; - %pushi/vec4 5, 0, 3; - %store/vec4 v000001e07a09f5a0_0, 0, 3; - %delay 10, 0; - %pushi/vec4 6, 0, 3; - %store/vec4 v000001e07a09f780_0, 0, 3; - %pushi/vec4 6, 0, 3; - %store/vec4 v000001e07a09f5a0_0, 0, 3; - %delay 10, 0; - %pushi/vec4 7, 0, 3; - %store/vec4 v000001e07a09f780_0, 0, 3; - %pushi/vec4 7, 0, 3; - %store/vec4 v000001e07a09f5a0_0, 0, 3; - %delay 10, 0; - %vpi_call 2 24 "$display", v000001e07a0a0d60_0 {0 0 0}; - %vpi_call 2 25 "$display", v000001e07a0a0360_0 {0 0 0}; - %end; - .thread T_0; -# The file index is used to find the file name in the following table. -:file_names 4; - "N/A"; - ""; - ".\tbAdder3Bit.v"; - ".\Adder3Bit.v"; diff --git a/iverilog/tobb/labs/lab3/src/Adder3Bit.v b/iverilog/tobb/labs/lab3/src/Adder3Bit.v deleted file mode 100644 index 3e9595f..0000000 --- a/iverilog/tobb/labs/lab3/src/Adder3Bit.v +++ /dev/null @@ -1,15 +0,0 @@ -module Adder3Bit ( - input [2:0] A, - input [2:0] B, - output [3:0] C -); - -wire c1, c2; -halfAdder a0(A[0], B[0], C[0], c1); - -fullAdder a1(A[1], B[1], c1, C[1], c2); -fullAdder a2(A[2], B[2], c2, C[2], C[3]); - - - -endmodule \ No newline at end of file diff --git a/iverilog/tobb/labs/lab3/src/Admp.vcd b/iverilog/tobb/labs/lab3/src/Admp.vcd deleted file mode 100644 index 5102c73..0000000 --- a/iverilog/tobb/labs/lab3/src/Admp.vcd +++ /dev/null @@ -1,100 +0,0 @@ -$date - Sat Apr 13 14:50:50 2024 -$end -$version - Icarus Verilog -$end -$timescale - 1s -$end -$scope module tbAdder3Bit $end -$var wire 3 ! w2 [2:0] $end -$var wire 3 " w1 [2:0] $end -$var reg 3 # r1 [2:0] $end -$var reg 3 $ r2 [2:0] $end -$scope module uut $end -$var wire 3 % num1 [2:0] $end -$var wire 3 & num2 [2:0] $end -$var wire 3 ' sum [2:0] $end -$var wire 3 ( Carry [2:0] $end -$upscope $end -$upscope $end -$enddefinitions $end -$comment Show the parameter values. $end -$dumpall -$end -#0 -$dumpvars -b0 ( -b0 ' -b0 & -b0 % -b0 $ -b0 # -b0 " -b0 ! -$end -#10 -b10 " -b10 ' -b1 ! -b1 ( -b1 $ -b1 & -b1 # -b1 % -#20 -b100 " -b100 ' -b10 ! -b10 ( -b10 $ -b10 & -b10 # -b10 % -#30 -b0 " -b0 ' -b100 ! -b100 ( -b100 $ -b100 & -b100 # -b100 % -#40 -b110 " -b110 ' -b11 ! -b11 ( -b11 $ -b11 & -b11 # -b11 % -#50 -b10 " -b10 ' -b101 ! -b101 ( -b101 $ -b101 & -b101 # -b101 % -#60 -b100 " -b100 ' -b110 ! -b110 ( -b110 $ -b110 & -b110 # -b110 % -#70 -b110 " -b110 ' -b111 ! -b111 ( -b111 $ -b111 & -b111 # -b111 % -#80 diff --git a/iverilog/tobb/labs/lab3/src/dmp.vcd b/iverilog/tobb/labs/lab3/src/dmp.vcd deleted file mode 100644 index 99e10de..0000000 --- a/iverilog/tobb/labs/lab3/src/dmp.vcd +++ /dev/null @@ -1,234 +0,0 @@ -$date - Fri May 03 11:28:11 2024 -$end -$version - Icarus Verilog -$end -$timescale - 1s -$end -$scope module tb $end -$var wire 4 ! C [3:0] $end -$var reg 3 " A [2:0] $end -$var reg 3 # B [2:0] $end -$scope module uut $end -$var wire 3 $ A [2:0] $end -$var wire 3 % B [2:0] $end -$var wire 1 & c2 $end -$var wire 1 ' c1 $end -$var wire 4 ( C [3:0] $end -$scope module a0 $end -$var wire 1 ) A $end -$var wire 1 * B $end -$var wire 1 ' C $end -$var wire 1 + S $end -$upscope $end -$scope module a1 $end -$var wire 1 , A $end -$var wire 1 - B $end -$var wire 1 & C $end -$var wire 1 ' Z $end -$var wire 1 . W2 $end -$var wire 1 / W1 $end -$var wire 1 0 W0 $end -$var wire 1 1 S $end -$scope module h0 $end -$var wire 1 , A $end -$var wire 1 - B $end -$var wire 1 / C $end -$var wire 1 0 S $end -$upscope $end -$scope module h1 $end -$var wire 1 0 A $end -$var wire 1 ' B $end -$var wire 1 . C $end -$var wire 1 1 S $end -$upscope $end -$upscope $end -$scope module a2 $end -$var wire 1 2 A $end -$var wire 1 3 B $end -$var wire 1 4 C $end -$var wire 1 & Z $end -$var wire 1 5 W2 $end -$var wire 1 6 W1 $end -$var wire 1 7 W0 $end -$var wire 1 8 S $end -$scope module h0 $end -$var wire 1 2 A $end -$var wire 1 3 B $end -$var wire 1 6 C $end -$var wire 1 7 S $end -$upscope $end -$scope module h1 $end -$var wire 1 7 A $end -$var wire 1 & B $end -$var wire 1 5 C $end -$var wire 1 8 S $end -$upscope $end -$upscope $end -$upscope $end -$upscope $end -$enddefinitions $end -$comment Show the parameter values. $end -$dumpall -$end -#0 -$dumpvars -18 -17 -06 -05 -04 -13 -02 -11 -10 -0/ -0. -1- -0, -1+ -1* -0) -b111 ( -0' -0& -b111 % -b0 $ -b111 # -b0 " -b111 ! -$end -#10 -0* -1) -b110 # -b110 % -b1 " -b1 $ -#20 -1* -0- -0) -1, -b101 # -b101 % -b10 " -b10 $ -#30 -0* -1) -b100 # -b100 % -b11 " -b11 $ -#40 -1* -1- -03 -0) -0, -12 -b11 # -b11 % -b100 " -b100 $ -#50 -0* -1) -b10 # -b10 % -b101 " -b101 $ -#60 -1* -0- -0) -1, -b1 # -b1 % -b110 " -b110 $ -#70 -0* -1) -b0 # -b0 % -b111 " -b111 $ -#80 -01 -08 -b0 ! -b0 ( -0+ -00 -07 -0) -0, -02 -b0 " -b0 $ -#90 -b1 ! -b1 ( -1+ -1) -b1 " -b1 $ -#100 -11 -b10 ! -b10 ( -0+ -10 -0) -1, -b10 " -b10 $ -#110 -b11 ! -b11 ( -1+ -1) -b11 " -b11 $ -#120 -01 -18 -b100 ! -b100 ( -0+ -00 -17 -0) -0, -12 -b100 " -b100 $ -#130 -b101 ! -b101 ( -1+ -1) -b101 " -b101 $ -#140 -11 -b110 ! -b110 ( -0+ -10 -0) -1, -b110 " -b110 $ -#150 -b111 ! -b111 ( -1+ -1) -b111 " -b111 $ -#160 diff --git a/iverilog/tobb/labs/lab3/src/fullAdder.v b/iverilog/tobb/labs/lab3/src/fullAdder.v deleted file mode 100644 index 262fa76..0000000 --- a/iverilog/tobb/labs/lab3/src/fullAdder.v +++ /dev/null @@ -1,12 +0,0 @@ -module fullAdder( - input A, B, Z, - output S, C -); - wire W0, W1, W2; - -halfAdder h0(A, B, W0, W1); -halfAdder h1(W0, Z, S, W2); - -or(C, W1, W2); - -endmodule \ No newline at end of file diff --git a/iverilog/tobb/labs/lab3/src/halfAdder.v b/iverilog/tobb/labs/lab3/src/halfAdder.v deleted file mode 100644 index 3d5c9c8..0000000 --- a/iverilog/tobb/labs/lab3/src/halfAdder.v +++ /dev/null @@ -1,9 +0,0 @@ -module halfAdder( - input A, B, - output S, C -); - -xor(S, A, B); -and(C, A, B); - -endmodule \ No newline at end of file diff --git a/iverilog/tobb/labs/lab3/src/mtb.v b/iverilog/tobb/labs/lab3/src/mtb.v deleted file mode 100644 index 86b4b96..0000000 --- a/iverilog/tobb/labs/lab3/src/mtb.v +++ /dev/null @@ -1,23 +0,0 @@ -module mtb(); - -reg[1:0] A, B; -wire [3:0] C; -mult2bit uut(A,B,C); - -initial begin - $dumpfile("3dmp.vcd"); - $dumpvars; - - A = 2'd0; B = 2'd3; #10; - A = 2'd1; B = 2'd2; #10; - A = 2'd2; B = 2'd1; #10; - A = 2'd3; B = 2'd0; #10; - - A = 2'd0; B = 2'd0; #10; - A = 2'd1; B = 2'd1; #10; - A = 2'd2; B = 2'd2; #10; - A = 2'd3; B = 2'd3; #10; - -end - -endmodule \ No newline at end of file diff --git a/iverilog/tobb/labs/lab3/src/mult2 b/iverilog/tobb/labs/lab3/src/mult2 deleted file mode 100644 index aa9b8be..0000000 --- a/iverilog/tobb/labs/lab3/src/mult2 +++ /dev/null @@ -1,169 +0,0 @@ -#! /c/Source/iverilog-install/bin/vvp -:ivl_version "12.0 (devel)" "(s20150603-1539-g2693dd32b)"; -:ivl_delay_selection "TYPICAL"; -:vpi_time_precision + 0; -:vpi_module "C:\iverilog\lib\ivl\system.vpi"; -:vpi_module "C:\iverilog\lib\ivl\vhdl_sys.vpi"; -:vpi_module "C:\iverilog\lib\ivl\vhdl_textio.vpi"; -:vpi_module "C:\iverilog\lib\ivl\v2005_math.vpi"; -:vpi_module "C:\iverilog\lib\ivl\va_math.vpi"; -S_0000025ecd40d010 .scope module, "fullAdder" "fullAdder" 2 1; - .timescale 0 0; - .port_info 0 /INPUT 1 "A"; - .port_info 1 /INPUT 1 "B"; - .port_info 2 /INPUT 1 "Z"; - .port_info 3 /OUTPUT 1 "S"; - .port_info 4 /OUTPUT 1 "C"; -L_0000025ecd257f60 .functor OR 1, L_0000025ecd258660, L_0000025ecd2585f0, C4<0>, C4<0>; -o0000025ecd26dfb8 .functor BUFZ 1, C4; HiZ drive -v0000025ecd25a670_0 .net "A", 0 0, o0000025ecd26dfb8; 0 drivers -o0000025ecd26dfe8 .functor BUFZ 1, C4; HiZ drive -v0000025ecd25ae90_0 .net "B", 0 0, o0000025ecd26dfe8; 0 drivers -v0000025ecd25a710_0 .net "C", 0 0, L_0000025ecd257f60; 1 drivers -v0000025ecd25a8f0_0 .net "S", 0 0, L_0000025ecd258580; 1 drivers -v0000025ecd25afd0_0 .net "W0", 0 0, L_0000025ecd2584a0; 1 drivers -v0000025ecd25a990_0 .net "W1", 0 0, L_0000025ecd258660; 1 drivers -v0000025ecd25aa30_0 .net "W2", 0 0, L_0000025ecd2585f0; 1 drivers -o0000025ecd26e138 .functor BUFZ 1, C4; HiZ drive -v0000025ecd25b070_0 .net "Z", 0 0, o0000025ecd26e138; 0 drivers -S_0000025ecd40e9d0 .scope module, "h0" "halfAdder" 2 7, 3 1 0, S_0000025ecd40d010; - .timescale 0 0; - .port_info 0 /INPUT 1 "A"; - .port_info 1 /INPUT 1 "B"; - .port_info 2 /OUTPUT 1 "S"; - .port_info 3 /OUTPUT 1 "C"; -L_0000025ecd2584a0 .functor XOR 1, o0000025ecd26dfb8, o0000025ecd26dfe8, C4<0>, C4<0>; -L_0000025ecd258660 .functor AND 1, o0000025ecd26dfb8, o0000025ecd26dfe8, C4<1>, C4<1>; -v0000025ecd25a530_0 .net "A", 0 0, o0000025ecd26dfb8; alias, 0 drivers -v0000025ecd25adf0_0 .net "B", 0 0, o0000025ecd26dfe8; alias, 0 drivers -v0000025ecd25a5d0_0 .net "C", 0 0, L_0000025ecd258660; alias, 1 drivers -v0000025ecd25b2f0_0 .net "S", 0 0, L_0000025ecd2584a0; alias, 1 drivers -S_0000025ecd40eb60 .scope module, "h1" "halfAdder" 2 8, 3 1 0, S_0000025ecd40d010; - .timescale 0 0; - .port_info 0 /INPUT 1 "A"; - .port_info 1 /INPUT 1 "B"; - .port_info 2 /OUTPUT 1 "S"; - .port_info 3 /OUTPUT 1 "C"; -L_0000025ecd258580 .functor XOR 1, L_0000025ecd2584a0, o0000025ecd26e138, C4<0>, C4<0>; -L_0000025ecd2585f0 .functor AND 1, L_0000025ecd2584a0, o0000025ecd26e138, C4<1>, C4<1>; -v0000025ecd25b110_0 .net "A", 0 0, L_0000025ecd2584a0; alias, 1 drivers -v0000025ecd25a850_0 .net "B", 0 0, o0000025ecd26e138; alias, 0 drivers -v0000025ecd25b1b0_0 .net "C", 0 0, L_0000025ecd2585f0; alias, 1 drivers -v0000025ecd25a3f0_0 .net "S", 0 0, L_0000025ecd258580; alias, 1 drivers -S_0000025ecd40d1a0 .scope module, "mtb" "mtb" 4 1; - .timescale 0 0; -v0000025ecd2c1fb0_0 .var "A", 1 0; -v0000025ecd2c1bf0_0 .var "B", 1 0; -v0000025ecd2c1f10_0 .net "C", 3 0, L_0000025ecd2c0f70; 1 drivers -S_0000025ecd26aae0 .scope module, "uut" "mult2bit" 4 5, 5 1 0, S_0000025ecd40d1a0; - .timescale 0 0; - .port_info 0 /INPUT 2 "A"; - .port_info 1 /INPUT 2 "B"; - .port_info 2 /OUTPUT 4 "C"; -L_0000025ecd257fd0 .functor AND 1, L_0000025ecd2c1dd0, L_0000025ecd2c0ed0, C4<1>, C4<1>; -L_0000025ecd2c2a60 .functor AND 1, L_0000025ecd2c2230, L_0000025ecd2c0890, C4<1>, C4<1>; -L_0000025ecd2c2de0 .functor AND 1, L_0000025ecd2c0b10, L_0000025ecd2c22d0, C4<1>, C4<1>; -L_0000025ecd2c28a0 .functor AND 1, L_0000025ecd2c2410, L_0000025ecd2c24b0, C4<1>, C4<1>; -v0000025ecd2c15b0_0 .net "A", 1 0, v0000025ecd2c1fb0_0; 1 drivers -v0000025ecd2c1d30_0 .net "B", 1 0, v0000025ecd2c1bf0_0; 1 drivers -v0000025ecd2c0bb0_0 .net "C", 3 0, L_0000025ecd2c0f70; alias, 1 drivers -v0000025ecd2c1e70_0 .net *"_ivl_1", 0 0, L_0000025ecd2c1dd0; 1 drivers -v0000025ecd2c1830_0 .net *"_ivl_11", 0 0, L_0000025ecd2c22d0; 1 drivers -v0000025ecd2c0c50_0 .net *"_ivl_12", 0 0, L_0000025ecd2c28a0; 1 drivers -v0000025ecd2c2370_0 .net *"_ivl_15", 0 0, L_0000025ecd2c2410; 1 drivers -v0000025ecd2c18d0_0 .net *"_ivl_17", 0 0, L_0000025ecd2c24b0; 1 drivers -v0000025ecd2c2690_0 .net *"_ivl_3", 0 0, L_0000025ecd2c0ed0; 1 drivers -v0000025ecd2c0a70_0 .net *"_ivl_5", 0 0, L_0000025ecd2c2230; 1 drivers -v0000025ecd2c0cf0_0 .net *"_ivl_7", 0 0, L_0000025ecd2c0890; 1 drivers -v0000025ecd2c1c90_0 .net *"_ivl_9", 0 0, L_0000025ecd2c0b10; 1 drivers -v0000025ecd2c1470_0 .net "c1", 0 0, L_0000025ecd257fd0; 1 drivers -v0000025ecd2c2190_0 .net "c2", 0 0, L_0000025ecd2c2a60; 1 drivers -v0000025ecd2c1650_0 .net "c4", 0 0, L_0000025ecd2c2f30; 1 drivers -v0000025ecd2c0d90_0 .net "c5", 0 0, L_0000025ecd2c2de0; 1 drivers -L_0000025ecd2c1dd0 .part v0000025ecd2c1fb0_0, 1, 1; -L_0000025ecd2c0ed0 .part v0000025ecd2c1bf0_0, 0, 1; -L_0000025ecd2c2230 .part v0000025ecd2c1fb0_0, 0, 1; -L_0000025ecd2c0890 .part v0000025ecd2c1bf0_0, 1, 1; -L_0000025ecd2c0b10 .part v0000025ecd2c1fb0_0, 1, 1; -L_0000025ecd2c22d0 .part v0000025ecd2c1bf0_0, 1, 1; -L_0000025ecd2c2410 .part v0000025ecd2c1fb0_0, 0, 1; -L_0000025ecd2c24b0 .part v0000025ecd2c1bf0_0, 0, 1; -L_0000025ecd2c0f70 .concat8 [ 1 1 1 1], L_0000025ecd2c28a0, L_0000025ecd2c35c0, L_0000025ecd2c2fa0, L_0000025ecd2c32b0; -S_0000025ecd26ac70 .scope module, "h0" "halfAdder" 5 14, 3 1 0, S_0000025ecd26aae0; - .timescale 0 0; - .port_info 0 /INPUT 1 "A"; - .port_info 1 /INPUT 1 "B"; - .port_info 2 /OUTPUT 1 "S"; - .port_info 3 /OUTPUT 1 "C"; -L_0000025ecd2c35c0 .functor XOR 1, L_0000025ecd257fd0, L_0000025ecd2c2a60, C4<0>, C4<0>; -L_0000025ecd2c2f30 .functor AND 1, L_0000025ecd257fd0, L_0000025ecd2c2a60, C4<1>, C4<1>; -v0000025ecd25ab70_0 .net "A", 0 0, L_0000025ecd257fd0; alias, 1 drivers -v0000025ecd25acb0_0 .net "B", 0 0, L_0000025ecd2c2a60; alias, 1 drivers -v0000025ecd25ad50_0 .net "C", 0 0, L_0000025ecd2c2f30; alias, 1 drivers -v0000025ecd25af30_0 .net "S", 0 0, L_0000025ecd2c35c0; 1 drivers -S_0000025ecd232990 .scope module, "h1" "halfAdder" 5 15, 3 1 0, S_0000025ecd26aae0; - .timescale 0 0; - .port_info 0 /INPUT 1 "A"; - .port_info 1 /INPUT 1 "B"; - .port_info 2 /OUTPUT 1 "S"; - .port_info 3 /OUTPUT 1 "C"; -L_0000025ecd2c32b0 .functor XOR 1, L_0000025ecd2c2de0, L_0000025ecd2c2f30, C4<0>, C4<0>; -L_0000025ecd2c2fa0 .functor AND 1, L_0000025ecd2c2de0, L_0000025ecd2c2f30, C4<1>, C4<1>; -v0000025ecd2c25f0_0 .net "A", 0 0, L_0000025ecd2c2de0; alias, 1 drivers -v0000025ecd2c1330_0 .net "B", 0 0, L_0000025ecd2c2f30; alias, 1 drivers -v0000025ecd2c09d0_0 .net "C", 0 0, L_0000025ecd2c2fa0; 1 drivers -v0000025ecd2c1b50_0 .net "S", 0 0, L_0000025ecd2c32b0; 1 drivers - .scope S_0000025ecd40d1a0; -T_0 ; - %vpi_call 4 8 "$dumpfile", "3dmp.vcd" {0 0 0}; - %vpi_call 4 9 "$dumpvars" {0 0 0}; - %pushi/vec4 0, 0, 2; - %store/vec4 v0000025ecd2c1fb0_0, 0, 2; - %pushi/vec4 3, 0, 2; - %store/vec4 v0000025ecd2c1bf0_0, 0, 2; - %delay 10, 0; - %pushi/vec4 1, 0, 2; - %store/vec4 v0000025ecd2c1fb0_0, 0, 2; - %pushi/vec4 2, 0, 2; - %store/vec4 v0000025ecd2c1bf0_0, 0, 2; - %delay 10, 0; - %pushi/vec4 2, 0, 2; - %store/vec4 v0000025ecd2c1fb0_0, 0, 2; - %pushi/vec4 1, 0, 2; - %store/vec4 v0000025ecd2c1bf0_0, 0, 2; - %delay 10, 0; - %pushi/vec4 3, 0, 2; - %store/vec4 v0000025ecd2c1fb0_0, 0, 2; - %pushi/vec4 0, 0, 2; - %store/vec4 v0000025ecd2c1bf0_0, 0, 2; - %delay 10, 0; - %pushi/vec4 0, 0, 2; - %store/vec4 v0000025ecd2c1fb0_0, 0, 2; - %pushi/vec4 0, 0, 2; - %store/vec4 v0000025ecd2c1bf0_0, 0, 2; - %delay 10, 0; - %pushi/vec4 1, 0, 2; - %store/vec4 v0000025ecd2c1fb0_0, 0, 2; - %pushi/vec4 1, 0, 2; - %store/vec4 v0000025ecd2c1bf0_0, 0, 2; - %delay 10, 0; - %pushi/vec4 2, 0, 2; - %store/vec4 v0000025ecd2c1fb0_0, 0, 2; - %pushi/vec4 2, 0, 2; - %store/vec4 v0000025ecd2c1bf0_0, 0, 2; - %delay 10, 0; - %pushi/vec4 3, 0, 2; - %store/vec4 v0000025ecd2c1fb0_0, 0, 2; - %pushi/vec4 3, 0, 2; - %store/vec4 v0000025ecd2c1bf0_0, 0, 2; - %delay 10, 0; - %end; - .thread T_0; -# The file index is used to find the file name in the following table. -:file_names 6; - "N/A"; - ""; - ".\fullAdder.v"; - ".\halfAdder.v"; - ".\mtb.v"; - ".\mult2bit.v"; diff --git a/iverilog/tobb/labs/lab3/src/mult2bit.v b/iverilog/tobb/labs/lab3/src/mult2bit.v deleted file mode 100644 index b287fba..0000000 --- a/iverilog/tobb/labs/lab3/src/mult2bit.v +++ /dev/null @@ -1,17 +0,0 @@ -module mult2bit ( - input [1:0] A, - input [1:0] B, - output [3:0] C -); - -wire c1, c2, c4, c5; - -and a0(c1, A[1], B[0]); -and a1(c2, A[0], B[1]); -and a2(c5, A[1], B[1]); -and a3(C[0], A[0], B[0]); - -halfAdder h0(c1, c2, C[1], c4); -halfAdder h1(c5, c4, C[3], C[2]); - -endmodule \ No newline at end of file diff --git a/iverilog/tobb/labs/lab3/src/tb.v b/iverilog/tobb/labs/lab3/src/tb.v deleted file mode 100644 index 01cb4cc..0000000 --- a/iverilog/tobb/labs/lab3/src/tb.v +++ /dev/null @@ -1,31 +0,0 @@ -module tb(); - -reg [2:0] A, B; -wire [3:0] C; -Adder3Bit uut(A, B, C); - -initial begin - $dumpfile("dmp.vcd"); - $dumpvars; - - A = 3'd0; B = 3'd7; #10; - A = 3'd1; B = 3'd6; #10; - A = 3'd2; B = 3'd5; #10; - A = 3'd3; B = 3'd4; #10; - A = 3'd4; B = 3'd3; #10; - A = 3'd5; B = 3'd2; #10; - A = 3'd6; B = 3'd1; #10; - A = 3'd7; B = 3'd0; #10; - - A = 3'd0; B = 3'd0; #10; - A = 3'd1; B = 3'd0; #10; - A = 3'd2; B = 3'd0; #10; - A = 3'd3; B = 3'd0; #10; - A = 3'd4; B = 3'd0; #10; - A = 3'd5; B = 3'd0; #10; - A = 3'd6; B = 3'd0; #10; - A = 3'd7; B = 3'd0; #10; - -end - -endmodule \ No newline at end of file diff --git a/iverilog/tobb/labs/lab3_solution/adder3bit.v b/iverilog/tobb/labs/lab3_solution/adder3bit.v deleted file mode 100644 index 650e8f3..0000000 --- a/iverilog/tobb/labs/lab3_solution/adder3bit.v +++ /dev/null @@ -1,13 +0,0 @@ -module adder3bit( - input [2:0] A, - input [2:0] B, - output [3:0] C -); - - -wire c1, c2, c3, c4; -ha a0(A[0], B[0], C[0], c1); -fa a1(A[1], B[1], c1, C[1], c2); -fa a2(A[2], B[2], c2, C[2], C[3]); - -endmodule diff --git a/iverilog/tobb/labs/lab3_solution/fa.v b/iverilog/tobb/labs/lab3_solution/fa.v deleted file mode 100644 index 2ae4072..0000000 --- a/iverilog/tobb/labs/lab3_solution/fa.v +++ /dev/null @@ -1,12 +0,0 @@ -module fa( - input X, Y, Z, - output S, C -); - -wire W0, W1, W2; - -ha h0(X, Y, W0, W1); -ha h1(W0, Z, S, W2); -or(C, W1, W2); - -endmodule diff --git a/iverilog/tobb/labs/lab3_solution/ha.v b/iverilog/tobb/labs/lab3_solution/ha.v deleted file mode 100644 index feeaeba..0000000 --- a/iverilog/tobb/labs/lab3_solution/ha.v +++ /dev/null @@ -1,9 +0,0 @@ -module ha( - input X, Y, - output S, C -); - -xor(S, X, Y); -and(C, X, Y); - -endmodule diff --git a/iverilog/tobb/labs/lab3_solution/run.sh b/iverilog/tobb/labs/lab3_solution/run.sh deleted file mode 100644 index f5af250..0000000 --- a/iverilog/tobb/labs/lab3_solution/run.sh +++ /dev/null @@ -1,3 +0,0 @@ -iverilog *.v && - vvp a.out && - gtkwave dmp.vcd diff --git a/iverilog/tobb/labs/lab3_solution/tb.v b/iverilog/tobb/labs/lab3_solution/tb.v deleted file mode 100644 index c09cf83..0000000 --- a/iverilog/tobb/labs/lab3_solution/tb.v +++ /dev/null @@ -1,31 +0,0 @@ -module tb(); - -reg [2:0] A, B; -wire [3:0] C; -adder3bit uut(A, B, C); - -initial begin - $dumpfile("dmp.vcd"); - $dumpvars; - - A = 3'd0; B = 3'd7; #10; - A = 3'd1; B = 3'd6; #10; - A = 3'd2; B = 3'd5; #10; - A = 3'd3; B = 3'd4; #10; - A = 3'd4; B = 3'd3; #10; - A = 3'd5; B = 3'd2; #10; - A = 3'd6; B = 3'd1; #10; - A = 3'd7; B = 3'd0; #10; - - A = 3'd0; B = 3'd0; #10; - A = 3'd1; B = 3'd0; #10; - A = 3'd2; B = 3'd0; #10; - A = 3'd3; B = 3'd0; #10; - A = 3'd4; B = 3'd0; #10; - A = 3'd5; B = 3'd0; #10; - A = 3'd6; B = 3'd0; #10; - A = 3'd7; B = 3'd0; #10; - -end - -endmodule diff --git a/iverilog/tobb/labs/lab4/lab4.v b/iverilog/tobb/labs/lab4/lab4.v deleted file mode 100644 index 1b0aed8..0000000 --- a/iverilog/tobb/labs/lab4/lab4.v +++ /dev/null @@ -1,22 +0,0 @@ -module lab4( - input [8:0] signal, - output reg [3:0] S -); - -always@(*) begin - S = 4'b0000; - if (signal[8] == 1) begin //First most significant bit -> sum - S = signal[5:3] + signal[2:0]; - end - else if (signal[7] == 1) begin - S = signal[5:3] - signal [2:0]; -end - else if (signal[6] == 1) begin - S = signal[5:3] & signal [2:0]; - end - else if (signal[6] == 0) begin - S = signal[5:3] | signal [2:0]; - end - -end -endmodule \ No newline at end of file diff --git a/iverilog/tobb/labs/lab4/lab4o b/iverilog/tobb/labs/lab4/lab4o deleted file mode 100644 index a0ee508..0000000 --- a/iverilog/tobb/labs/lab4/lab4o +++ /dev/null @@ -1,114 +0,0 @@ -#! /usr/bin/vvp -:ivl_version "11.0 (stable)"; -:ivl_delay_selection "TYPICAL"; -:vpi_time_precision + 0; -:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/system.vpi"; -:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/vhdl_sys.vpi"; -:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/vhdl_textio.vpi"; -:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/v2005_math.vpi"; -:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/va_math.vpi"; -S_0x55d6490fdb70 .scope module, "lab4tb" "lab4tb" 2 1; - .timescale 0 0; -v0x55d64910fee0_0 .var "s1", 8 0; -v0x55d64910ffa0_0 .net "s2", 3 0, v0x55d6490c37f0_0; 1 drivers -S_0x55d6490fdd00 .scope module, "uut" "lab4" 2 6, 3 1 0, S_0x55d6490fdb70; - .timescale 0 0; - .port_info 0 /INPUT 9 "signal"; - .port_info 1 /OUTPUT 4 "S"; -v0x55d6490c37f0_0 .var "S", 3 0; -v0x55d6490c3c00_0 .net "signal", 8 0, v0x55d64910fee0_0; 1 drivers -E_0x55d6490c2340 .event edge, v0x55d6490c3c00_0; - .scope S_0x55d6490fdd00; -T_0 ; - %wait E_0x55d6490c2340; - %pushi/vec4 0, 0, 4; - %store/vec4 v0x55d6490c37f0_0, 0, 4; - %load/vec4 v0x55d6490c3c00_0; - %parti/s 1, 8, 5; - %pad/u 32; - %cmpi/e 1, 0, 32; - %jmp/0xz T_0.0, 4; - %load/vec4 v0x55d6490c3c00_0; - %parti/s 3, 3, 3; - %pad/u 4; - %load/vec4 v0x55d6490c3c00_0; - %parti/s 3, 0, 2; - %pad/u 4; - %add; - %store/vec4 v0x55d6490c37f0_0, 0, 4; - %jmp T_0.1; -T_0.0 ; - %load/vec4 v0x55d6490c3c00_0; - %parti/s 1, 7, 4; - %pad/u 32; - %cmpi/e 1, 0, 32; - %jmp/0xz T_0.2, 4; - %load/vec4 v0x55d6490c3c00_0; - %parti/s 3, 3, 3; - %pad/u 4; - %load/vec4 v0x55d6490c3c00_0; - %parti/s 3, 0, 2; - %pad/u 4; - %sub; - %store/vec4 v0x55d6490c37f0_0, 0, 4; - %jmp T_0.3; -T_0.2 ; - %load/vec4 v0x55d6490c3c00_0; - %parti/s 1, 6, 4; - %pad/u 32; - %cmpi/e 1, 0, 32; - %jmp/0xz T_0.4, 4; - %load/vec4 v0x55d6490c3c00_0; - %parti/s 3, 3, 3; - %pad/u 4; - %load/vec4 v0x55d6490c3c00_0; - %parti/s 3, 0, 2; - %pad/u 4; - %and; - %store/vec4 v0x55d6490c37f0_0, 0, 4; - %jmp T_0.5; -T_0.4 ; - %load/vec4 v0x55d6490c3c00_0; - %parti/s 1, 6, 4; - %pad/u 32; - %cmpi/e 0, 0, 32; - %jmp/0xz T_0.6, 4; - %load/vec4 v0x55d6490c3c00_0; - %parti/s 3, 3, 3; - %pad/u 4; - %load/vec4 v0x55d6490c3c00_0; - %parti/s 3, 0, 2; - %pad/u 4; - %or; - %store/vec4 v0x55d6490c37f0_0, 0, 4; -T_0.6 ; -T_0.5 ; -T_0.3 ; -T_0.1 ; - %jmp T_0; - .thread T_0, $push; - .scope S_0x55d6490fdb70; -T_1 ; - %vpi_call 2 12 "$dumpfile", "lab4v.vcd" {0 0 0}; - %vpi_call 2 13 "$dumpvars" {0 0 0}; - %pushi/vec4 297, 0, 9; - %store/vec4 v0x55d64910fee0_0, 0, 9; - %delay 10, 0; - %pushi/vec4 169, 0, 9; - %store/vec4 v0x55d64910fee0_0, 0, 9; - %delay 10, 0; - %pushi/vec4 105, 0, 9; - %store/vec4 v0x55d64910fee0_0, 0, 9; - %delay 10, 0; - %pushi/vec4 41, 0, 9; - %store/vec4 v0x55d64910fee0_0, 0, 9; - %delay 10, 0; - %vpi_call 2 19 "$display", "Done" {0 0 0}; - %end; - .thread T_1; -# The file index is used to find the file name in the following table. -:file_names 4; - "N/A"; - ""; - "lab4tb.v"; - "lab4.v"; diff --git a/iverilog/tobb/labs/lab4/lab4tb.v b/iverilog/tobb/labs/lab4/lab4tb.v deleted file mode 100644 index d1d2bb8..0000000 --- a/iverilog/tobb/labs/lab4/lab4tb.v +++ /dev/null @@ -1,22 +0,0 @@ -module lab4tb(); - -reg [8:0] s1; -wire [3:0] s2; - -lab4 uut( - .signal(s1), - .S(s2) -); - -initial begin - $dumpfile("lab4v.vcd"); - $dumpvars; - - s1 = 9'b100_101_001; #10; - s1 = 9'b010_101_001; #10; - s1 = 9'b001_101_001; #10; - s1 = 9'b000_101_001; #10; - $display("Done"); -end - -endmodule \ No newline at end of file diff --git a/iverilog/tobb/labs/lab4/lab4v.vcd b/iverilog/tobb/labs/lab4/lab4v.vcd deleted file mode 100644 index 2a581d5..0000000 --- a/iverilog/tobb/labs/lab4/lab4v.vcd +++ /dev/null @@ -1,41 +0,0 @@ -$date - Fri Jul 5 05:10:51 2024 -$end -$version - Icarus Verilog -$end -$timescale - 1s -$end -$scope module lab4tb $end -$var wire 4 ! s2 [3:0] $end -$var reg 9 " s1 [8:0] $end -$scope module uut $end -$var wire 9 # signal [8:0] $end -$var reg 4 $ S [3:0] $end -$upscope $end -$upscope $end -$enddefinitions $end -#0 -$dumpvars -b110 $ -b100101001 # -b100101001 " -b110 ! -$end -#10 -b100 ! -b100 $ -b10101001 " -b10101001 # -#20 -b1 ! -b1 $ -b1101001 " -b1101001 # -#30 -b101 ! -b101 $ -b101001 " -b101001 # -#40 diff --git a/iverilog/tobb/labs/lab5/1.v b/iverilog/tobb/labs/lab5/1.v deleted file mode 100644 index 0cf3447..0000000 --- a/iverilog/tobb/labs/lab5/1.v +++ /dev/null @@ -1,28 +0,0 @@ -module timer ( - input clock, - input reset, - input gate, - input [2:0] counter, - input way, - output reg [5:0] count -); -reg [5:0] countReg; - - -always@(posedge clock or posedge reset) begin - if (reset) begin - countReg <= 6'd0; - end - else if (gate) begin - if (way && (countReg != 6'b111_111)) begin - countReg <= countReg + counter; - end - else if (!way && (countReg != 6'b000_000)) begin - countReg <= countReg - counter; - end - end -end - -assign count = countReg; - -endmodule \ No newline at end of file diff --git a/iverilog/tobb/labs/lab5/lab5 b/iverilog/tobb/labs/lab5/lab5 deleted file mode 100644 index 6dbcd43..0000000 --- a/iverilog/tobb/labs/lab5/lab5 +++ /dev/null @@ -1,68 +0,0 @@ -#! /usr/bin/vvp -:ivl_version "11.0 (stable)"; -:ivl_delay_selection "TYPICAL"; -:vpi_time_precision + 0; -:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/system.vpi"; -:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/vhdl_sys.vpi"; -:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/vhdl_textio.vpi"; -:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/v2005_math.vpi"; -:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/va_math.vpi"; -S_0x55ec01128cc0 .scope module, "seqBlinkTB" "seqBlinkTB" 2 1; - .timescale 0 0; -v0x55ec01139850_0 .var "clock", 0 0; -v0x55ec01139920_0 .net "leds", 3 0, v0x55ec01139650_0; 1 drivers -S_0x55ec01128e50 .scope module, "uut" "seqBlink" 2 6, 3 1 0, S_0x55ec01128cc0; - .timescale 0 0; - .port_info 0 /INPUT 1 "clock"; - .port_info 1 /OUTPUT 4 "leds"; -v0x55ec010f07f0_0 .net "clock", 0 0, v0x55ec01139850_0; 1 drivers -v0x55ec010f0c00_0 .var "count", 1 0; -v0x55ec01139650_0 .var "leds", 3 0; -v0x55ec01139710_0 .var "start", 3 0; -E_0x55ec01127bc0 .event posedge, v0x55ec010f07f0_0; - .scope S_0x55ec01128e50; -T_0 ; - %pushi/vec4 0, 0, 2; - %store/vec4 v0x55ec010f0c00_0, 0, 2; - %pushi/vec4 1, 0, 4; - %store/vec4 v0x55ec01139710_0, 0, 4; - %end; - .thread T_0; - .scope S_0x55ec01128e50; -T_1 ; - %wait E_0x55ec01127bc0; - %load/vec4 v0x55ec010f0c00_0; - %addi 1, 0, 2; - %assign/vec4 v0x55ec010f0c00_0, 0; - %load/vec4 v0x55ec01139710_0; - %ix/getv 4, v0x55ec010f0c00_0; - %shiftl 4; - %assign/vec4 v0x55ec01139650_0, 0; - %jmp T_1; - .thread T_1; - .scope S_0x55ec01128cc0; -T_2 ; - %pushi/vec4 0, 0, 1; - %store/vec4 v0x55ec01139850_0, 0, 1; -T_2.0 ; - %delay 5, 0; - %load/vec4 v0x55ec01139850_0; - %inv; - %store/vec4 v0x55ec01139850_0, 0, 1; - %jmp T_2.0; - %end; - .thread T_2; - .scope S_0x55ec01128cc0; -T_3 ; - %vpi_call 2 16 "$dumpfile", "lab5v.vcd" {0 0 0}; - %vpi_call 2 17 "$dumpvars" {0 0 0}; - %delay 100, 0; - %vpi_call 2 21 "$finish" {0 0 0}; - %end; - .thread T_3; -# The file index is used to find the file name in the following table. -:file_names 4; - "N/A"; - ""; - "seqBlinkTB.v"; - "seqBlink.v"; diff --git a/iverilog/tobb/labs/lab5/lab5t.vcd b/iverilog/tobb/labs/lab5/lab5t.vcd deleted file mode 100644 index 6541c49..0000000 --- a/iverilog/tobb/labs/lab5/lab5t.vcd +++ /dev/null @@ -1,122 +0,0 @@ -$date - Mon Jul 8 05:12:15 2024 -$end -$version - Icarus Verilog -$end -$timescale - 1s -$end -$scope module timerTB $end -$var wire 6 ! count [5:0] $end -$var reg 1 " clock $end -$var reg 3 # counter [2:0] $end -$var reg 1 $ gate $end -$var reg 1 % reset $end -$var reg 1 & way $end -$scope module uut $end -$var wire 1 " clock $end -$var wire 3 ' counter [2:0] $end -$var wire 1 $ gate $end -$var wire 1 % reset $end -$var wire 1 & way $end -$var reg 6 ( count [5:0] $end -$var reg 6 ) countReg [5:0] $end -$upscope $end -$upscope $end -$enddefinitions $end -#0 -$dumpvars -b101011 ) -b101011 ( -b10 ' -1& -1% -1$ -b10 # -0" -b101011 ! -$end -#5 -b0 ! -b0 ( -b0 ) -1" -#10 -0" -#15 -1" -#20 -0" -#25 -1" -#30 -0" -#35 -1" -#40 -0" -#45 -1" -#50 -0" -#55 -1" -#60 -0" -#65 -1" -#70 -0" -#75 -1" -#80 -0" -#85 -1" -#90 -0" -#95 -1" -#100 -0" -#105 -1" -#110 -0" -#115 -1" -#120 -0" -#125 -1" -#130 -0" -#135 -1" -#140 -0" -#145 -1" -#150 -0" -#155 -1" -#160 -0" -#165 -1" -#170 -0" -#175 -1" -#180 -0" -#185 -1" -#190 -0" -#195 -1" -#200 -0" diff --git a/iverilog/tobb/labs/lab5/lab5v.vcd b/iverilog/tobb/labs/lab5/lab5v.vcd deleted file mode 100644 index 8b61338..0000000 --- a/iverilog/tobb/labs/lab5/lab5v.vcd +++ /dev/null @@ -1,98 +0,0 @@ -$date - Sun Jul 7 02:46:47 2024 -$end -$version - Icarus Verilog -$end -$timescale - 1s -$end -$scope module seqBlinkTB $end -$var wire 4 ! leds [3:0] $end -$var reg 1 " clock $end -$scope module uut $end -$var wire 1 " clock $end -$var reg 2 # count [1:0] $end -$var reg 4 $ leds [3:0] $end -$var reg 4 % start [3:0] $end -$upscope $end -$upscope $end -$enddefinitions $end -#0 -$dumpvars -b1 % -bx $ -b0 # -0" -bx ! -$end -#5 -b1 ! -b1 $ -b1 # -1" -#10 -0" -#15 -b10 ! -b10 $ -b10 # -1" -#20 -0" -#25 -b100 ! -b100 $ -b11 # -1" -#30 -0" -#35 -b1000 ! -b1000 $ -b0 # -1" -#40 -0" -#45 -b1 ! -b1 $ -b1 # -1" -#50 -0" -#55 -b10 ! -b10 $ -b10 # -1" -#60 -0" -#65 -b100 ! -b100 $ -b11 # -1" -#70 -0" -#75 -b1000 ! -b1000 $ -b0 # -1" -#80 -0" -#85 -b1 ! -b1 $ -b1 # -1" -#90 -0" -#95 -b10 ! -b10 $ -b10 # -1" -#100 -0" diff --git a/iverilog/tobb/labs/lab5/seqBlink.v b/iverilog/tobb/labs/lab5/seqBlink.v deleted file mode 100644 index 6b02bdc..0000000 --- a/iverilog/tobb/labs/lab5/seqBlink.v +++ /dev/null @@ -1,36 +0,0 @@ -module seqBlink ( - input clock, - output reg [3:0] led -); - -reg [2:0] fsm = 0; - -reg [31:0] clkcnt = 0; -reg newclk = 0; - -always@(posedge clock) begin - clkcnt <= clkcnt + 1'b1; - if (clkcnt > 9_000_000) begin - clkcnt <= 0; - newclk <= ~newclk; - end -end - -always@(posedge newclk) begin - if (fsm == 3'd7) begin - fsm <= 0; - end else begin - fsm <= fsm + 1; - end - case (fsm) - 3'b000 : led <= 4'b0111; - 3'b001 : led <= 4'b1011; - 3'b010 : led <= 4'b1101; - 3'b011 : led <= 4'b1110; - 3'b100 : led <= 4'b1101; - 3'b101 : led <= 4'b1011; - 3'b110 : led <= 4'b0111; - default: led <= 4'b0000; - endcase -end -endmodule diff --git a/iverilog/tobb/labs/lab5/seqBlinkTB.v b/iverilog/tobb/labs/lab5/seqBlinkTB.v deleted file mode 100644 index 3d09657..0000000 --- a/iverilog/tobb/labs/lab5/seqBlinkTB.v +++ /dev/null @@ -1,24 +0,0 @@ -module seqBlinkTB(); - -reg clock; -wire [3:0] leds; - -seqBlink uut(clock, leds); - -initial begin - clock = 0; - forever begin - #5 clock = ~clock; - end -end - -initial begin - $dumpfile("lab5v.vcd"); - $dumpvars; - - #100; - - $finish; -end - -endmodule \ No newline at end of file diff --git a/iverilog/tobb/labs/lab5/timer.v b/iverilog/tobb/labs/lab5/timer.v deleted file mode 100644 index 76c35f8..0000000 --- a/iverilog/tobb/labs/lab5/timer.v +++ /dev/null @@ -1,30 +0,0 @@ -module timer ( - input clock, - input reset, - input gate, - input [2:0] counter, - input way, - output reg [5:0] count -); -reg [5:0] countReg = 6'b101_011; - - -always@(posedge clock) begin - if (reset) begin - countReg <= 6'd0; - end - else if (gate) begin - if (way && (countReg != 6'b111_111)) begin - countReg <= countReg + counter; - end - else if (!way && (countReg != 6'b000_000)) begin - countReg <= countReg - counter; - end - end -end - -always@(*) begin - count = countReg; -end - -endmodule \ No newline at end of file diff --git a/iverilog/tobb/labs/lab5/timerTB.v b/iverilog/tobb/labs/lab5/timerTB.v deleted file mode 100644 index 41d8cb8..0000000 --- a/iverilog/tobb/labs/lab5/timerTB.v +++ /dev/null @@ -1,27 +0,0 @@ -module timerTB (); - reg clock; - reg reset; - reg gate; - reg [2:0] counter; - reg way; - wire [5:0] count; - -timer uut (clock,reset,gate,counter,way,count); - -initial begin - clock = 0; - forever begin - #5 clock = ~clock; - end -end - -initial begin - $dumpfile("lab5t.vcd"); - $dumpvars; - - reset = 1'b0; gate = 1'b1; counter = 3'b010; way = 1'b1; - #200; - $finish; -end - -endmodule \ No newline at end of file diff --git a/iverilog/tobb/labs/lab5/vlab5 b/iverilog/tobb/labs/lab5/vlab5 deleted file mode 100644 index 8f7415d..0000000 --- a/iverilog/tobb/labs/lab5/vlab5 +++ /dev/null @@ -1,137 +0,0 @@ -#! /usr/bin/vvp -:ivl_version "11.0 (stable)"; -:ivl_delay_selection "TYPICAL"; -:vpi_time_precision + 0; -:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/system.vpi"; -:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/vhdl_sys.vpi"; -:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/vhdl_textio.vpi"; -:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/v2005_math.vpi"; -:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/va_math.vpi"; -S_0x55928b0bbf60 .scope module, "timerTB" "timerTB" 2 1; - .timescale 0 0; -v0x55928b0d05d0_0 .var "clock", 0 0; -v0x55928b0d0690_0 .net "count", 5 0, v0x55928b0d0000_0; 1 drivers -v0x55928b0d0760_0 .var "counter", 2 0; -v0x55928b0d0860_0 .var "gate", 0 0; -v0x55928b0d0930_0 .var "reset", 0 0; -v0x55928b0d0a20_0 .var "way", 0 0; -S_0x55928b0bc0f0 .scope module, "uut" "timer" 2 9, 3 1 0, S_0x55928b0bbf60; - .timescale 0 0; - .port_info 0 /INPUT 1 "clock"; - .port_info 1 /INPUT 1 "reset"; - .port_info 2 /INPUT 1 "gate"; - .port_info 3 /INPUT 3 "counter"; - .port_info 4 /INPUT 1 "way"; - .port_info 5 /OUTPUT 6 "count"; -v0x55928b0a8600_0 .net "clock", 0 0, v0x55928b0d05d0_0; 1 drivers -v0x55928b0d0000_0 .var "count", 5 0; -v0x55928b0d00e0_0 .var "countReg", 5 0; -v0x55928b0d01a0_0 .net "counter", 2 0, v0x55928b0d0760_0; 1 drivers -v0x55928b0d0280_0 .net "gate", 0 0, v0x55928b0d0860_0; 1 drivers -v0x55928b0d0390_0 .net "reset", 0 0, v0x55928b0d0930_0; 1 drivers -v0x55928b0d0450_0 .net "way", 0 0, v0x55928b0d0a20_0; 1 drivers -E_0x55928b0b8e60 .event edge, v0x55928b0d00e0_0; -E_0x55928b0b9330 .event posedge, v0x55928b0a8600_0; - .scope S_0x55928b0bc0f0; -T_0 ; - %pushi/vec4 43, 0, 6; - %store/vec4 v0x55928b0d00e0_0, 0, 6; - %end; - .thread T_0; - .scope S_0x55928b0bc0f0; -T_1 ; - %wait E_0x55928b0b9330; - %load/vec4 v0x55928b0d0390_0; - %flag_set/vec4 8; - %jmp/0xz T_1.0, 8; - %pushi/vec4 0, 0, 6; - %assign/vec4 v0x55928b0d00e0_0, 0; - %jmp T_1.1; -T_1.0 ; - %load/vec4 v0x55928b0d0280_0; - %flag_set/vec4 8; - %jmp/0xz T_1.2, 8; - %load/vec4 v0x55928b0d0450_0; - %load/vec4 v0x55928b0d00e0_0; - %pushi/vec4 63, 0, 6; - %cmp/ne; - %flag_get/vec4 4; - %and; - %flag_set/vec4 8; - %jmp/0xz T_1.4, 8; - %load/vec4 v0x55928b0d00e0_0; - %load/vec4 v0x55928b0d01a0_0; - %pad/u 6; - %add; - %assign/vec4 v0x55928b0d00e0_0, 0; - %jmp T_1.5; -T_1.4 ; - %load/vec4 v0x55928b0d0450_0; - %nor/r; - %load/vec4 v0x55928b0d00e0_0; - %pushi/vec4 0, 0, 6; - %cmp/ne; - %flag_get/vec4 4; - %and; - %flag_set/vec4 8; - %jmp/0xz T_1.6, 8; - %load/vec4 v0x55928b0d00e0_0; - %load/vec4 v0x55928b0d01a0_0; - %pad/u 6; - %sub; - %assign/vec4 v0x55928b0d00e0_0, 0; -T_1.6 ; -T_1.5 ; -T_1.2 ; -T_1.1 ; - %jmp T_1; - .thread T_1; - .scope S_0x55928b0bc0f0; -T_2 ; - %wait E_0x55928b0b8e60; - %load/vec4 v0x55928b0d00e0_0; - %store/vec4 v0x55928b0d0000_0, 0, 6; - %jmp T_2; - .thread T_2, $push; - .scope S_0x55928b0bbf60; -T_3 ; - %pushi/vec4 0, 0, 1; - %store/vec4 v0x55928b0d05d0_0, 0, 1; -T_3.0 ; - %delay 5, 0; - %load/vec4 v0x55928b0d05d0_0; - %inv; - %store/vec4 v0x55928b0d05d0_0, 0, 1; - %jmp T_3.0; - %end; - .thread T_3; - .scope S_0x55928b0bbf60; -T_4 ; - %vpi_call 2 19 "$dumpfile", "lab5t.vcd" {0 0 0}; - %vpi_call 2 20 "$dumpvars" {0 0 0}; - %pushi/vec4 0, 0, 1; - %store/vec4 v0x55928b0d0930_0, 0, 1; - %pushi/vec4 1, 0, 1; - %store/vec4 v0x55928b0d0860_0, 0, 1; - %pushi/vec4 2, 0, 3; - %store/vec4 v0x55928b0d0760_0, 0, 3; - %pushi/vec4 1, 0, 1; - %store/vec4 v0x55928b0d0a20_0, 0, 1; - %pushi/vec4 1, 0, 1; - %store/vec4 v0x55928b0d0930_0, 0, 1; - %pushi/vec4 1, 0, 1; - %store/vec4 v0x55928b0d0860_0, 0, 1; - %pushi/vec4 2, 0, 3; - %store/vec4 v0x55928b0d0760_0, 0, 3; - %pushi/vec4 1, 0, 1; - %store/vec4 v0x55928b0d0a20_0, 0, 1; - %delay 200, 0; - %vpi_call 2 25 "$finish" {0 0 0}; - %end; - .thread T_4; -# The file index is used to find the file name in the following table. -:file_names 4; - "N/A"; - ""; - "timerTB.v"; - "timer.v"; diff --git a/iverilog/tobb/labs/lab6/bibp.v b/iverilog/tobb/labs/lab6/bibp.v deleted file mode 100644 index 7667e1f..0000000 --- a/iverilog/tobb/labs/lab6/bibp.v +++ /dev/null @@ -1,35 +0,0 @@ -module bibp #(parameter UZUNLUK = 8)( - input [UZUNLUK + 2:0] buyruk, -/* output reg [(UZUNLUK/2) - 1:0] v1, - output reg [(UZUNLUK/2) - 1:0] v2, */ - output reg [(UZUNLUK/2):0] sonuc -); - -/* localparam halfUZUNLUK = UZUNLUK / 2; - localparam v1 = buyruk[UZUNLUK - 1 : halfUZUNLUK]; - localparam v2 = buyruk[halfUZUNLUK - 1 : 0]; -*/ - -/*assign v1 = buyruk[UZUNLUK - 1 : UZUNLUK/2]; -assign v2 = buyruk[UZUNLUK/2 : 0];*/ - -// wire [(UZUNLUK/2) - 1:0] v1,v2; - -// !!! LOCALPARAM IVERILOG DA PROBLEMLI OLDUGU ICIN KULLANILMIYOR !!! - -always@(*) begin - $display("%d", buyruk[UZUNLUK - 1 : UZUNLUK/2]); - $display("%d", buyruk[(UZUNLUK/2) - 1 : 0]); - $display("%d", buyruk[UZUNLUK - 1 : UZUNLUK/2] - buyruk[(UZUNLUK/2) - 1 : 0]); - case(buyruk[UZUNLUK+2:UZUNLUK]) - 3'b000: sonuc = buyruk[(UZUNLUK - 1) : UZUNLUK/2] + buyruk[(UZUNLUK/2) - 1 : 0]; - 3'b001: sonuc = buyruk[(UZUNLUK - 1) : UZUNLUK/2] - buyruk[(UZUNLUK/2) - 1 : 0]; // SUBTRACTION ?????? CHECK!!! - 3'b010: sonuc = {1'b0, buyruk[UZUNLUK - 1 : UZUNLUK/2] & buyruk[(UZUNLUK/2) - 1 : 0]}; - 3'b011: sonuc = {1'b0, buyruk[UZUNLUK - 1 : UZUNLUK/2] | buyruk[(UZUNLUK/2) - 1 : 0]}; - 3'b100: sonuc = {1'b0, buyruk[UZUNLUK - 1 : UZUNLUK/2] ^ buyruk[(UZUNLUK/2) - 1 : 0]}; - default: sonuc = -1; - endcase - $display("%b", sonuc); -end - -endmodule \ No newline at end of file diff --git a/iverilog/tobb/labs/lab6/bibpTB.v b/iverilog/tobb/labs/lab6/bibpTB.v deleted file mode 100644 index 8ca94aa..0000000 --- a/iverilog/tobb/labs/lab6/bibpTB.v +++ /dev/null @@ -1,16 +0,0 @@ -module bibpTB(); - -parameter UZUNLUK = 8; -reg [UZUNLUK+2:0] buyruk; -wire [UZUNLUK/2:0] sonuc; - -bibp #(.UZUNLUK(UZUNLUK)) uut(.buyruk(buyruk), .sonuc(sonuc)); - -initial begin - $dumpfile("vbibp.vcd"); - $dumpvars; - - buyruk = 11'b111_0101_0100; #10; - $finish; -end -endmodule \ No newline at end of file diff --git a/iverilog/tobb/labs/lab6/obj_dir/Vbibp b/iverilog/tobb/labs/lab6/obj_dir/Vbibp deleted file mode 100644 index 3e5cdce0cf3bd827e5e0af65b0729a3191baa652..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 164136 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%0A8ay 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%0Adf>x1_pz#Y0A{SvG^mzpKS1O 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 MT%GHP;P`3%e|^TOP)} -{ - // Register model with the context - contextp()->addModel(this); -} - -Vbibp::Vbibp(const char* _vcname__) - : Vbibp(Verilated::threadContextp(), _vcname__) -{ -} - -//============================================================ -// Destructor - -Vbibp::~Vbibp() { - delete vlSymsp; -} - -//============================================================ -// Evaluation function - -#ifdef VL_DEBUG -void Vbibp___024root___eval_debug_assertions(Vbibp___024root* vlSelf); -#endif // VL_DEBUG -void Vbibp___024root___eval_static(Vbibp___024root* vlSelf); -void Vbibp___024root___eval_initial(Vbibp___024root* vlSelf); -void Vbibp___024root___eval_settle(Vbibp___024root* vlSelf); -void Vbibp___024root___eval(Vbibp___024root* vlSelf); - -void Vbibp::eval_step() { - VL_DEBUG_IF(VL_DBG_MSGF("+++++TOP Evaluate Vbibp::eval_step\n"); ); -#ifdef VL_DEBUG - // Debug assertions - Vbibp___024root___eval_debug_assertions(&(vlSymsp->TOP)); -#endif // VL_DEBUG - if (VL_UNLIKELY(!vlSymsp->__Vm_didInit)) { - vlSymsp->__Vm_didInit = true; - VL_DEBUG_IF(VL_DBG_MSGF("+ Initial\n");); - Vbibp___024root___eval_static(&(vlSymsp->TOP)); - Vbibp___024root___eval_initial(&(vlSymsp->TOP)); - Vbibp___024root___eval_settle(&(vlSymsp->TOP)); - } - // MTask 0 start - VL_DEBUG_IF(VL_DBG_MSGF("MTask0 starting\n");); - Verilated::mtaskId(0); - VL_DEBUG_IF(VL_DBG_MSGF("+ Eval\n");); - Vbibp___024root___eval(&(vlSymsp->TOP)); - // Evaluate cleanup - Verilated::endOfThreadMTask(vlSymsp->__Vm_evalMsgQp); - Verilated::endOfEval(vlSymsp->__Vm_evalMsgQp); -} - -//============================================================ -// Events and timing -bool Vbibp::eventsPending() { return !vlSymsp->TOP.__VdlySched.empty(); } - -uint64_t Vbibp::nextTimeSlot() { return vlSymsp->TOP.__VdlySched.nextTimeSlot(); } - -//============================================================ -// Utilities - -const char* Vbibp::name() const { - return vlSymsp->name(); -} - -//============================================================ -// Invoke final blocks - -void Vbibp___024root___eval_final(Vbibp___024root* vlSelf); - -VL_ATTR_COLD void Vbibp::final() { - Vbibp___024root___eval_final(&(vlSymsp->TOP)); -} - -//============================================================ -// Implementations of abstract methods from VerilatedModel - -const char* Vbibp::hierName() const { return vlSymsp->name(); } -const char* Vbibp::modelName() const { return "Vbibp"; } -unsigned Vbibp::threads() const { return 1; } diff --git a/iverilog/tobb/labs/lab6/obj_dir/Vbibp.h b/iverilog/tobb/labs/lab6/obj_dir/Vbibp.h deleted file mode 100644 index 78fe4bd..0000000 --- a/iverilog/tobb/labs/lab6/obj_dir/Vbibp.h +++ /dev/null @@ -1,72 +0,0 @@ -// Verilated -*- C++ -*- -// DESCRIPTION: Verilator output: Primary model header -// -// This header should be included by all source files instantiating the design. -// The class here is then constructed to instantiate the design. -// See the Verilator manual for examples. - -#ifndef VERILATED_VBIBP_H_ -#define VERILATED_VBIBP_H_ // guard - -#include "verilated.h" - -class Vbibp__Syms; -class Vbibp___024root; - -// This class is the main interface to the Verilated model -class Vbibp VL_NOT_FINAL : public VerilatedModel { - private: - // Symbol table holding complete model state (owned by this class) - Vbibp__Syms* const vlSymsp; - - public: - - // PORTS - // The application code writes and reads these signals to - // propagate new values into/out from the Verilated model. - - // CELLS - // Public to allow access to /* verilator public */ items. - // Otherwise the application code can consider these internals. - - // Root instance pointer to allow access to model internals, - // including inlined /* verilator public_flat_* */ items. - Vbibp___024root* const rootp; - - // CONSTRUCTORS - /// Construct the model; called by application code - /// If contextp is null, then the model will use the default global context - /// If name is "", then makes a wrapper with a - /// single model invisible with respect to DPI scope names. - explicit Vbibp(VerilatedContext* contextp, const char* name = "TOP"); - explicit Vbibp(const char* name = "TOP"); - /// Destroy the model; called (often implicitly) by application code - virtual ~Vbibp(); - private: - VL_UNCOPYABLE(Vbibp); ///< Copying not allowed - - public: - // API METHODS - /// Evaluate the model. Application must call when inputs change. - void eval() { eval_step(); } - /// Evaluate when calling multiple units/models per time step. - void eval_step(); - /// Evaluate at end of a timestep for tracing, when using eval_step(). - /// Application must call after all eval() and before time changes. - void eval_end_step() {} - /// Simulation complete, run final blocks. Application must call on completion. - void final(); - /// Are there scheduled events to handle? - bool eventsPending(); - /// Returns time at next time slot. Aborts if !eventsPending() - uint64_t nextTimeSlot(); - /// Retrieve name of this model instance (as passed to constructor). - const char* name() const; - - // Abstract methods from VerilatedModel - const char* hierName() const override final; - const char* modelName() const override final; - unsigned threads() const override final; -} VL_ATTR_ALIGNED(VL_CACHE_LINE_BYTES); - -#endif // guard diff --git a/iverilog/tobb/labs/lab6/obj_dir/Vbibp.mk b/iverilog/tobb/labs/lab6/obj_dir/Vbibp.mk deleted file mode 100644 index b898344..0000000 --- a/iverilog/tobb/labs/lab6/obj_dir/Vbibp.mk +++ /dev/null @@ -1,65 +0,0 @@ -# Verilated -*- Makefile -*- -# DESCRIPTION: Verilator output: Makefile for building Verilated archive or executable -# -# Execute this makefile from the object directory: -# make -f Vbibp.mk - -default: Vbibp - -### Constants... -# Perl executable (from $PERL) -PERL = perl -# Path to Verilator kit (from $VERILATOR_ROOT) -VERILATOR_ROOT = /usr/share/verilator -# SystemC include directory with systemc.h (from $SYSTEMC_INCLUDE) -SYSTEMC_INCLUDE ?= -# SystemC library directory with libsystemc.a (from $SYSTEMC_LIBDIR) -SYSTEMC_LIBDIR ?= - -### Switches... -# C++ code coverage 0/1 (from --prof-c) -VM_PROFC = 0 -# SystemC output mode? 0/1 (from --sc) -VM_SC = 0 -# Legacy or SystemC output mode? 0/1 (from --sc) -VM_SP_OR_SC = $(VM_SC) -# Deprecated -VM_PCLI = 1 -# Deprecated: SystemC architecture to find link library path (from $SYSTEMC_ARCH) -VM_SC_TARGET_ARCH = linux - -### Vars... -# Design prefix (from --prefix) -VM_PREFIX = Vbibp -# Module prefix (from --prefix) -VM_MODPREFIX = Vbibp -# User CFLAGS (from -CFLAGS on Verilator command line) -VM_USER_CFLAGS = \ - -DVL_TIME_CONTEXT \ - -# User LDLIBS (from -LDFLAGS on Verilator command line) -VM_USER_LDLIBS = \ - -# User .cpp files (from .cpp's on Verilator command line) -VM_USER_CLASSES = \ - -# User .cpp directories (from .cpp's on Verilator command line) -VM_USER_DIR = \ - - -### Default rules... -# Include list of all generated classes -include Vbibp_classes.mk -# Include global rules -include $(VERILATOR_ROOT)/include/verilated.mk - -### Executable rules... (from --exe) -VPATH += $(VM_USER_DIR) - - -### Link rules... (from --exe) -Vbibp: $(VK_USER_OBJS) $(VK_GLOBAL_OBJS) $(VM_PREFIX)__ALL.a $(VM_HIER_LIBS) - $(LINK) $(LDFLAGS) $^ $(LOADLIBES) $(LDLIBS) $(LIBS) $(SC_LIBS) -o $@ - - -# Verilated -*- Makefile -*- diff --git a/iverilog/tobb/labs/lab6/obj_dir/VbibpTB.cpp b/iverilog/tobb/labs/lab6/obj_dir/VbibpTB.cpp deleted file mode 100644 index 912aa7d..0000000 --- a/iverilog/tobb/labs/lab6/obj_dir/VbibpTB.cpp +++ /dev/null @@ -1,92 +0,0 @@ -// Verilated -*- C++ -*- -// DESCRIPTION: Verilator output: Model implementation (design independent parts) - -#include "VbibpTB.h" -#include "VbibpTB__Syms.h" - -//============================================================ -// Constructors - -VbibpTB::VbibpTB(VerilatedContext* _vcontextp__, const char* _vcname__) - : VerilatedModel{*_vcontextp__} - , vlSymsp{new VbibpTB__Syms(contextp(), _vcname__, this)} - , rootp{&(vlSymsp->TOP)} -{ - // Register model with the context - contextp()->addModel(this); -} - -VbibpTB::VbibpTB(const char* _vcname__) - : VbibpTB(Verilated::threadContextp(), _vcname__) -{ -} - -//============================================================ -// Destructor - -VbibpTB::~VbibpTB() { - delete vlSymsp; -} - -//============================================================ -// Evaluation function - -#ifdef VL_DEBUG -void VbibpTB___024root___eval_debug_assertions(VbibpTB___024root* vlSelf); -#endif // VL_DEBUG -void VbibpTB___024root___eval_static(VbibpTB___024root* vlSelf); -void VbibpTB___024root___eval_initial(VbibpTB___024root* vlSelf); -void VbibpTB___024root___eval_settle(VbibpTB___024root* vlSelf); -void VbibpTB___024root___eval(VbibpTB___024root* vlSelf); - -void VbibpTB::eval_step() { - VL_DEBUG_IF(VL_DBG_MSGF("+++++TOP Evaluate VbibpTB::eval_step\n"); ); -#ifdef VL_DEBUG - // Debug assertions - VbibpTB___024root___eval_debug_assertions(&(vlSymsp->TOP)); -#endif // VL_DEBUG - if (VL_UNLIKELY(!vlSymsp->__Vm_didInit)) { - vlSymsp->__Vm_didInit = true; - VL_DEBUG_IF(VL_DBG_MSGF("+ Initial\n");); - VbibpTB___024root___eval_static(&(vlSymsp->TOP)); - VbibpTB___024root___eval_initial(&(vlSymsp->TOP)); - VbibpTB___024root___eval_settle(&(vlSymsp->TOP)); - } - // MTask 0 start - VL_DEBUG_IF(VL_DBG_MSGF("MTask0 starting\n");); - Verilated::mtaskId(0); - VL_DEBUG_IF(VL_DBG_MSGF("+ Eval\n");); - VbibpTB___024root___eval(&(vlSymsp->TOP)); - // Evaluate cleanup - Verilated::endOfThreadMTask(vlSymsp->__Vm_evalMsgQp); - Verilated::endOfEval(vlSymsp->__Vm_evalMsgQp); -} - -//============================================================ -// Events and timing -bool VbibpTB::eventsPending() { return !vlSymsp->TOP.__VdlySched.empty(); } - -uint64_t VbibpTB::nextTimeSlot() { return vlSymsp->TOP.__VdlySched.nextTimeSlot(); } - -//============================================================ -// Utilities - -const char* VbibpTB::name() const { - return vlSymsp->name(); -} - -//============================================================ -// Invoke final blocks - -void VbibpTB___024root___eval_final(VbibpTB___024root* vlSelf); - -VL_ATTR_COLD void VbibpTB::final() { - VbibpTB___024root___eval_final(&(vlSymsp->TOP)); -} - -//============================================================ -// Implementations of abstract methods from VerilatedModel - -const char* VbibpTB::hierName() const { return vlSymsp->name(); } -const char* VbibpTB::modelName() const { return "VbibpTB"; } -unsigned VbibpTB::threads() const { return 1; } diff --git a/iverilog/tobb/labs/lab6/obj_dir/VbibpTB.h b/iverilog/tobb/labs/lab6/obj_dir/VbibpTB.h deleted file mode 100644 index eeb1897..0000000 --- a/iverilog/tobb/labs/lab6/obj_dir/VbibpTB.h +++ /dev/null @@ -1,72 +0,0 @@ -// Verilated -*- C++ -*- -// DESCRIPTION: Verilator output: Primary model header -// -// This header should be included by all source files instantiating the design. -// The class here is then constructed to instantiate the design. -// See the Verilator manual for examples. - -#ifndef VERILATED_VBIBPTB_H_ -#define VERILATED_VBIBPTB_H_ // guard - -#include "verilated.h" - -class VbibpTB__Syms; -class VbibpTB___024root; - -// This class is the main interface to the Verilated model -class VbibpTB VL_NOT_FINAL : public VerilatedModel { - private: - // Symbol table holding complete model state (owned by this class) - VbibpTB__Syms* const vlSymsp; - - public: - - // PORTS - // The application code writes and reads these signals to - // propagate new values into/out from the Verilated model. - - // CELLS - // Public to allow access to /* verilator public */ items. - // Otherwise the application code can consider these internals. - - // Root instance pointer to allow access to model internals, - // including inlined /* verilator public_flat_* */ items. - VbibpTB___024root* const rootp; - - // CONSTRUCTORS - /// Construct the model; called by application code - /// If contextp is null, then the model will use the default global context - /// If name is "", then makes a wrapper with a - /// single model invisible with respect to DPI scope names. - explicit VbibpTB(VerilatedContext* contextp, const char* name = "TOP"); - explicit VbibpTB(const char* name = "TOP"); - /// Destroy the model; called (often implicitly) by application code - virtual ~VbibpTB(); - private: - VL_UNCOPYABLE(VbibpTB); ///< Copying not allowed - - public: - // API METHODS - /// Evaluate the model. Application must call when inputs change. - void eval() { eval_step(); } - /// Evaluate when calling multiple units/models per time step. - void eval_step(); - /// Evaluate at end of a timestep for tracing, when using eval_step(). - /// Application must call after all eval() and before time changes. - void eval_end_step() {} - /// Simulation complete, run final blocks. Application must call on completion. - void final(); - /// Are there scheduled events to handle? - bool eventsPending(); - /// Returns time at next time slot. Aborts if !eventsPending() - uint64_t nextTimeSlot(); - /// Retrieve name of this model instance (as passed to constructor). - const char* name() const; - - // Abstract methods from VerilatedModel - const char* hierName() const override final; - const char* modelName() const override final; - unsigned threads() const override final; -} VL_ATTR_ALIGNED(VL_CACHE_LINE_BYTES); - -#endif // guard diff --git a/iverilog/tobb/labs/lab6/obj_dir/VbibpTB.mk b/iverilog/tobb/labs/lab6/obj_dir/VbibpTB.mk deleted file mode 100644 index 0dac373..0000000 --- a/iverilog/tobb/labs/lab6/obj_dir/VbibpTB.mk +++ /dev/null @@ -1,65 +0,0 @@ -# Verilated -*- Makefile -*- -# DESCRIPTION: Verilator output: Makefile for building Verilated archive or executable -# -# Execute this makefile from the object directory: -# make -f VbibpTB.mk - -default: VbibpTB - -### Constants... -# Perl executable (from $PERL) -PERL = perl -# Path to Verilator kit (from $VERILATOR_ROOT) -VERILATOR_ROOT = /usr/share/verilator -# SystemC include directory with systemc.h (from $SYSTEMC_INCLUDE) -SYSTEMC_INCLUDE ?= -# SystemC library directory with libsystemc.a (from $SYSTEMC_LIBDIR) -SYSTEMC_LIBDIR ?= - -### Switches... -# C++ code coverage 0/1 (from --prof-c) -VM_PROFC = 0 -# SystemC output mode? 0/1 (from --sc) -VM_SC = 0 -# Legacy or SystemC output mode? 0/1 (from --sc) -VM_SP_OR_SC = $(VM_SC) -# Deprecated -VM_PCLI = 1 -# Deprecated: SystemC architecture to find link library path (from $SYSTEMC_ARCH) -VM_SC_TARGET_ARCH = linux - -### Vars... -# Design prefix (from --prefix) -VM_PREFIX = VbibpTB -# Module prefix (from --prefix) -VM_MODPREFIX = VbibpTB -# User CFLAGS (from -CFLAGS on Verilator command line) -VM_USER_CFLAGS = \ - -DVL_TIME_CONTEXT \ - -# User LDLIBS (from -LDFLAGS on Verilator command line) -VM_USER_LDLIBS = \ - -# User .cpp files (from .cpp's on Verilator command line) -VM_USER_CLASSES = \ - -# User .cpp directories (from .cpp's on Verilator command line) -VM_USER_DIR = \ - - -### Default rules... -# Include list of all generated classes -include VbibpTB_classes.mk -# Include global rules -include $(VERILATOR_ROOT)/include/verilated.mk - -### Executable rules... (from --exe) -VPATH += $(VM_USER_DIR) - - -### Link rules... (from --exe) -VbibpTB: $(VK_USER_OBJS) $(VK_GLOBAL_OBJS) $(VM_PREFIX)__ALL.a $(VM_HIER_LIBS) - $(LINK) $(LDFLAGS) $^ $(LOADLIBES) $(LDLIBS) $(LIBS) $(SC_LIBS) -o $@ - - -# Verilated -*- Makefile -*- diff --git a/iverilog/tobb/labs/lab6/obj_dir/VbibpTB__Syms.cpp b/iverilog/tobb/labs/lab6/obj_dir/VbibpTB__Syms.cpp deleted file mode 100644 index 5d49a5e..0000000 --- a/iverilog/tobb/labs/lab6/obj_dir/VbibpTB__Syms.cpp +++ /dev/null @@ -1,26 +0,0 @@ -// Verilated -*- C++ -*- -// DESCRIPTION: Verilator output: Symbol table implementation internals - -#include "VbibpTB__Syms.h" -#include "VbibpTB.h" -#include "VbibpTB___024root.h" - -// FUNCTIONS -VbibpTB__Syms::~VbibpTB__Syms() -{ -} - -VbibpTB__Syms::VbibpTB__Syms(VerilatedContext* contextp, const char* namep, VbibpTB* modelp) - : VerilatedSyms{contextp} - // Setup internal state of the Syms class - , __Vm_modelp{modelp} - // Setup module instances - , TOP{this, namep} -{ - // Configure time unit / time precision - _vm_contextp__->timeunit(-12); - _vm_contextp__->timeprecision(-12); - // Setup each module's pointers to their submodules - // Setup each module's pointer back to symbol table (for public functions) - TOP.__Vconfigure(true); -} diff --git a/iverilog/tobb/labs/lab6/obj_dir/VbibpTB__Syms.h b/iverilog/tobb/labs/lab6/obj_dir/VbibpTB__Syms.h deleted file mode 100644 index 8cb77eb..0000000 --- a/iverilog/tobb/labs/lab6/obj_dir/VbibpTB__Syms.h +++ /dev/null @@ -1,37 +0,0 @@ -// Verilated -*- C++ -*- -// DESCRIPTION: Verilator output: Symbol table internal header -// -// Internal details; most calling programs do not need this header, -// unless using verilator public meta comments. - -#ifndef VERILATED_VBIBPTB__SYMS_H_ -#define VERILATED_VBIBPTB__SYMS_H_ // guard - -#include "verilated.h" - -// INCLUDE MODEL CLASS - -#include "VbibpTB.h" - -// INCLUDE MODULE CLASSES -#include "VbibpTB___024root.h" - -// SYMS CLASS (contains all model state) -class VbibpTB__Syms final : public VerilatedSyms { - public: - // INTERNAL STATE - VbibpTB* const __Vm_modelp; - bool __Vm_didInit = false; - - // MODULE INSTANCE STATE - VbibpTB___024root TOP; - - // CONSTRUCTORS - VbibpTB__Syms(VerilatedContext* contextp, const char* namep, VbibpTB* modelp); - ~VbibpTB__Syms(); - - // METHODS - const char* name() { return TOP.name(); } -} VL_ATTR_ALIGNED(VL_CACHE_LINE_BYTES); - -#endif // guard diff --git a/iverilog/tobb/labs/lab6/obj_dir/VbibpTB___024root.h b/iverilog/tobb/labs/lab6/obj_dir/VbibpTB___024root.h deleted file mode 100644 index 29af41f..0000000 --- a/iverilog/tobb/labs/lab6/obj_dir/VbibpTB___024root.h +++ /dev/null @@ -1,39 +0,0 @@ -// Verilated -*- C++ -*- -// DESCRIPTION: Verilator output: Design internal header -// See VbibpTB.h for the primary calling header - -#ifndef VERILATED_VBIBPTB___024ROOT_H_ -#define VERILATED_VBIBPTB___024ROOT_H_ // guard - -#include "verilated.h" -#include "verilated_timing.h" - -class VbibpTB__Syms; - -class VbibpTB___024root final : public VerilatedModule { - public: - - // DESIGN SPECIFIC STATE - CData/*0:0*/ __VactContinue; - SData/*10:0*/ bibpTB__DOT__buyruk; - IData/*31:0*/ __VstlIterCount; - IData/*31:0*/ __VactIterCount; - VlDelayScheduler __VdlySched; - VlTriggerVec<1> __VstlTriggered; - VlTriggerVec<1> __VactTriggered; - VlTriggerVec<1> __VnbaTriggered; - - // INTERNAL VARIABLES - VbibpTB__Syms* const vlSymsp; - - // CONSTRUCTORS - VbibpTB___024root(VbibpTB__Syms* symsp, const char* v__name); - ~VbibpTB___024root(); - VL_UNCOPYABLE(VbibpTB___024root); - - // INTERNAL METHODS - void __Vconfigure(bool first); -} VL_ATTR_ALIGNED(VL_CACHE_LINE_BYTES); - - -#endif // guard diff --git a/iverilog/tobb/labs/lab6/obj_dir/VbibpTB___024root__DepSet_h31122c8e__0.cpp b/iverilog/tobb/labs/lab6/obj_dir/VbibpTB___024root__DepSet_h31122c8e__0.cpp deleted file mode 100644 index f38ece7..0000000 --- a/iverilog/tobb/labs/lab6/obj_dir/VbibpTB___024root__DepSet_h31122c8e__0.cpp +++ /dev/null @@ -1,180 +0,0 @@ -// Verilated -*- C++ -*- -// DESCRIPTION: Verilator output: Design implementation internals -// See VbibpTB.h for the primary calling header - -#include "verilated.h" - -#include "VbibpTB___024root.h" - -VlCoroutine VbibpTB___024root___eval_initial__TOP__0(VbibpTB___024root* vlSelf); - -void VbibpTB___024root___eval_initial(VbibpTB___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - VbibpTB__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ VbibpTB___024root___eval_initial\n"); ); - // Body - VbibpTB___024root___eval_initial__TOP__0(vlSelf); -} - -VL_INLINE_OPT void VbibpTB___024root___act_sequent__TOP__0(VbibpTB___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - VbibpTB__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ VbibpTB___024root___act_sequent__TOP__0\n"); ); - // Init - CData/*4:0*/ bibpTB__DOT__sonuc; - bibpTB__DOT__sonuc = 0; - // Body - VL_WRITEF("%2#\n%2#\n%2#\n",4,(0xfU & ((IData)(vlSelf->bibpTB__DOT__buyruk) - >> 4U)), - 4,(0xfU & (IData)(vlSelf->bibpTB__DOT__buyruk)), - 4,(0xfU & (((IData)(vlSelf->bibpTB__DOT__buyruk) - >> 4U) - (IData)(vlSelf->bibpTB__DOT__buyruk)))); - bibpTB__DOT__sonuc = ((0x400U & (IData)(vlSelf->bibpTB__DOT__buyruk)) - ? 0x1fU : (0x1fU & ((0x200U - & (IData)(vlSelf->bibpTB__DOT__buyruk)) - ? ( - (0x100U - & (IData)(vlSelf->bibpTB__DOT__buyruk)) - ? 0x1fU - : - ((0x80U - & (IData)(vlSelf->bibpTB__DOT__buyruk)) - ? 0x1fU - : - ((0xfU - & ((IData)(vlSelf->bibpTB__DOT__buyruk) - >> 4U)) - ^ - (0xfU - & (IData)(vlSelf->bibpTB__DOT__buyruk))))) - : ( - (0x100U - & (IData)(vlSelf->bibpTB__DOT__buyruk)) - ? - ((0x80U - & (IData)(vlSelf->bibpTB__DOT__buyruk)) - ? - (0xfU - & (((IData)(vlSelf->bibpTB__DOT__buyruk) - >> 4U) - | (IData)(vlSelf->bibpTB__DOT__buyruk))) - : - (0xfU - & (((IData)(vlSelf->bibpTB__DOT__buyruk) - >> 4U) - & (IData)(vlSelf->bibpTB__DOT__buyruk)))) - : - ((0x80U - & (IData)(vlSelf->bibpTB__DOT__buyruk)) - ? - ((0xfU - & ((IData)(vlSelf->bibpTB__DOT__buyruk) - >> 4U)) - - - (0xfU - & (IData)(vlSelf->bibpTB__DOT__buyruk))) - : - ((0xfU - & ((IData)(vlSelf->bibpTB__DOT__buyruk) - >> 4U)) - + - (0xfU - & (IData)(vlSelf->bibpTB__DOT__buyruk)))))))); - VL_WRITEF("%2#\n",5,bibpTB__DOT__sonuc); -} - -void VbibpTB___024root___eval_act(VbibpTB___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - VbibpTB__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ VbibpTB___024root___eval_act\n"); ); - // Body - if (vlSelf->__VactTriggered.at(0U)) { - VbibpTB___024root___act_sequent__TOP__0(vlSelf); - } -} - -void VbibpTB___024root___eval_nba(VbibpTB___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - VbibpTB__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ VbibpTB___024root___eval_nba\n"); ); - // Body - if (vlSelf->__VnbaTriggered.at(0U)) { - VbibpTB___024root___act_sequent__TOP__0(vlSelf); - } -} - -void VbibpTB___024root___eval_triggers__act(VbibpTB___024root* vlSelf); -#ifdef VL_DEBUG -VL_ATTR_COLD void VbibpTB___024root___dump_triggers__act(VbibpTB___024root* vlSelf); -#endif // VL_DEBUG -void VbibpTB___024root___timing_resume(VbibpTB___024root* vlSelf); -#ifdef VL_DEBUG -VL_ATTR_COLD void VbibpTB___024root___dump_triggers__nba(VbibpTB___024root* vlSelf); -#endif // VL_DEBUG - -void VbibpTB___024root___eval(VbibpTB___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - VbibpTB__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ VbibpTB___024root___eval\n"); ); - // Init - VlTriggerVec<1> __VpreTriggered; - IData/*31:0*/ __VnbaIterCount; - CData/*0:0*/ __VnbaContinue; - // Body - __VnbaIterCount = 0U; - __VnbaContinue = 1U; - while (__VnbaContinue) { - __VnbaContinue = 0U; - vlSelf->__VnbaTriggered.clear(); - vlSelf->__VactIterCount = 0U; - vlSelf->__VactContinue = 1U; - while (vlSelf->__VactContinue) { - vlSelf->__VactContinue = 0U; - VbibpTB___024root___eval_triggers__act(vlSelf); - if (vlSelf->__VactTriggered.any()) { - vlSelf->__VactContinue = 1U; - if (VL_UNLIKELY((0x64U < vlSelf->__VactIterCount))) { -#ifdef VL_DEBUG - VbibpTB___024root___dump_triggers__act(vlSelf); -#endif - VL_FATAL_MT("bibpTB.v", 1, "", "Active region did not converge."); - } - vlSelf->__VactIterCount = ((IData)(1U) - + vlSelf->__VactIterCount); - __VpreTriggered.andNot(vlSelf->__VactTriggered, vlSelf->__VnbaTriggered); - vlSelf->__VnbaTriggered.set(vlSelf->__VactTriggered); - VbibpTB___024root___timing_resume(vlSelf); - VbibpTB___024root___eval_act(vlSelf); - } - } - if (vlSelf->__VnbaTriggered.any()) { - __VnbaContinue = 1U; - if (VL_UNLIKELY((0x64U < __VnbaIterCount))) { -#ifdef VL_DEBUG - VbibpTB___024root___dump_triggers__nba(vlSelf); -#endif - VL_FATAL_MT("bibpTB.v", 1, "", "NBA region did not converge."); - } - __VnbaIterCount = ((IData)(1U) + __VnbaIterCount); - VbibpTB___024root___eval_nba(vlSelf); - } - } -} - -void VbibpTB___024root___timing_resume(VbibpTB___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - VbibpTB__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ VbibpTB___024root___timing_resume\n"); ); - // Body - if (vlSelf->__VactTriggered.at(0U)) { - vlSelf->__VdlySched.resume(); - } -} - -#ifdef VL_DEBUG -void VbibpTB___024root___eval_debug_assertions(VbibpTB___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - VbibpTB__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ VbibpTB___024root___eval_debug_assertions\n"); ); -} -#endif // VL_DEBUG diff --git a/iverilog/tobb/labs/lab6/obj_dir/VbibpTB___024root__DepSet_h31122c8e__0__Slow.cpp b/iverilog/tobb/labs/lab6/obj_dir/VbibpTB___024root__DepSet_h31122c8e__0__Slow.cpp deleted file mode 100644 index 4e00e68..0000000 --- a/iverilog/tobb/labs/lab6/obj_dir/VbibpTB___024root__DepSet_h31122c8e__0__Slow.cpp +++ /dev/null @@ -1,117 +0,0 @@ -// Verilated -*- C++ -*- -// DESCRIPTION: Verilator output: Design implementation internals -// See VbibpTB.h for the primary calling header - -#include "verilated.h" - -#include "VbibpTB___024root.h" - -VL_ATTR_COLD void VbibpTB___024root___eval_static(VbibpTB___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - VbibpTB__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ VbibpTB___024root___eval_static\n"); ); -} - -VL_ATTR_COLD void VbibpTB___024root___eval_final(VbibpTB___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - VbibpTB__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ VbibpTB___024root___eval_final\n"); ); -} - -VL_ATTR_COLD void VbibpTB___024root___eval_triggers__stl(VbibpTB___024root* vlSelf); -#ifdef VL_DEBUG -VL_ATTR_COLD void VbibpTB___024root___dump_triggers__stl(VbibpTB___024root* vlSelf); -#endif // VL_DEBUG -VL_ATTR_COLD void VbibpTB___024root___eval_stl(VbibpTB___024root* vlSelf); - -VL_ATTR_COLD void VbibpTB___024root___eval_settle(VbibpTB___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - VbibpTB__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ VbibpTB___024root___eval_settle\n"); ); - // Init - CData/*0:0*/ __VstlContinue; - // Body - vlSelf->__VstlIterCount = 0U; - __VstlContinue = 1U; - while (__VstlContinue) { - __VstlContinue = 0U; - VbibpTB___024root___eval_triggers__stl(vlSelf); - if (vlSelf->__VstlTriggered.any()) { - __VstlContinue = 1U; - if (VL_UNLIKELY((0x64U < vlSelf->__VstlIterCount))) { -#ifdef VL_DEBUG - VbibpTB___024root___dump_triggers__stl(vlSelf); -#endif - VL_FATAL_MT("bibpTB.v", 1, "", "Settle region did not converge."); - } - vlSelf->__VstlIterCount = ((IData)(1U) - + vlSelf->__VstlIterCount); - VbibpTB___024root___eval_stl(vlSelf); - } - } -} - -#ifdef VL_DEBUG -VL_ATTR_COLD void VbibpTB___024root___dump_triggers__stl(VbibpTB___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - VbibpTB__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ VbibpTB___024root___dump_triggers__stl\n"); ); - // Body - if ((1U & (~ (IData)(vlSelf->__VstlTriggered.any())))) { - VL_DBG_MSGF(" No triggers active\n"); - } - if (vlSelf->__VstlTriggered.at(0U)) { - VL_DBG_MSGF(" 'stl' region trigger index 0 is active: Internal 'stl' trigger - first iteration\n"); - } -} -#endif // VL_DEBUG - -void VbibpTB___024root___act_sequent__TOP__0(VbibpTB___024root* vlSelf); - -VL_ATTR_COLD void VbibpTB___024root___eval_stl(VbibpTB___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - VbibpTB__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ VbibpTB___024root___eval_stl\n"); ); - // Body - if (vlSelf->__VstlTriggered.at(0U)) { - VbibpTB___024root___act_sequent__TOP__0(vlSelf); - } -} - -#ifdef VL_DEBUG -VL_ATTR_COLD void VbibpTB___024root___dump_triggers__act(VbibpTB___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - VbibpTB__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ VbibpTB___024root___dump_triggers__act\n"); ); - // Body - if ((1U & (~ (IData)(vlSelf->__VactTriggered.any())))) { - VL_DBG_MSGF(" No triggers active\n"); - } - if (vlSelf->__VactTriggered.at(0U)) { - VL_DBG_MSGF(" 'act' region trigger index 0 is active: @([true] __VdlySched.awaitingCurrentTime())\n"); - } -} -#endif // VL_DEBUG - -#ifdef VL_DEBUG -VL_ATTR_COLD void VbibpTB___024root___dump_triggers__nba(VbibpTB___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - VbibpTB__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ VbibpTB___024root___dump_triggers__nba\n"); ); - // Body - if ((1U & (~ (IData)(vlSelf->__VnbaTriggered.any())))) { - VL_DBG_MSGF(" No triggers active\n"); - } - if (vlSelf->__VnbaTriggered.at(0U)) { - VL_DBG_MSGF(" 'nba' region trigger index 0 is active: @([true] __VdlySched.awaitingCurrentTime())\n"); - } -} -#endif // VL_DEBUG - -VL_ATTR_COLD void VbibpTB___024root___ctor_var_reset(VbibpTB___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - VbibpTB__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ VbibpTB___024root___ctor_var_reset\n"); ); - // Body - vlSelf->bibpTB__DOT__buyruk = VL_RAND_RESET_I(11); - } diff --git a/iverilog/tobb/labs/lab6/obj_dir/VbibpTB___024root__DepSet_h7f8acf28__0.cpp b/iverilog/tobb/labs/lab6/obj_dir/VbibpTB___024root__DepSet_h7f8acf28__0.cpp deleted file mode 100644 index aa8f637..0000000 --- a/iverilog/tobb/labs/lab6/obj_dir/VbibpTB___024root__DepSet_h7f8acf28__0.cpp +++ /dev/null @@ -1,43 +0,0 @@ -// Verilated -*- C++ -*- -// DESCRIPTION: Verilator output: Design implementation internals -// See VbibpTB.h for the primary calling header - -#include "verilated.h" - -#include "VbibpTB__Syms.h" -#include "VbibpTB___024root.h" - -VL_INLINE_OPT VlCoroutine VbibpTB___024root___eval_initial__TOP__0(VbibpTB___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - VbibpTB__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ VbibpTB___024root___eval_initial__TOP__0\n"); ); - // Init - VlWide<3>/*95:0*/ __Vtemp_h84e83511__0; - // Body - __Vtemp_h84e83511__0[0U] = 0x2e766364U; - __Vtemp_h84e83511__0[1U] = 0x62696270U; - __Vtemp_h84e83511__0[2U] = 0x76U; - vlSymsp->_vm_contextp__->dumpfile(VL_CVT_PACK_STR_NW(3, __Vtemp_h84e83511__0)); - VL_PRINTF_MT("-Info: bibpTB.v:11: $dumpvar ignored, as Verilated without --trace\n"); - vlSelf->bibpTB__DOT__buyruk = 0x154U; - co_await vlSelf->__VdlySched.delay(0xaU, "bibpTB.v", - 13); - VL_FINISH_MT("bibpTB.v", 14, ""); -} - -#ifdef VL_DEBUG -VL_ATTR_COLD void VbibpTB___024root___dump_triggers__act(VbibpTB___024root* vlSelf); -#endif // VL_DEBUG - -void VbibpTB___024root___eval_triggers__act(VbibpTB___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - VbibpTB__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ VbibpTB___024root___eval_triggers__act\n"); ); - // Body - vlSelf->__VactTriggered.at(0U) = vlSelf->__VdlySched.awaitingCurrentTime(); -#ifdef VL_DEBUG - if (VL_UNLIKELY(vlSymsp->_vm_contextp__->debug())) { - VbibpTB___024root___dump_triggers__act(vlSelf); - } -#endif -} diff --git a/iverilog/tobb/labs/lab6/obj_dir/VbibpTB___024root__DepSet_h7f8acf28__0__Slow.cpp b/iverilog/tobb/labs/lab6/obj_dir/VbibpTB___024root__DepSet_h7f8acf28__0__Slow.cpp deleted file mode 100644 index 3f1e1a1..0000000 --- a/iverilog/tobb/labs/lab6/obj_dir/VbibpTB___024root__DepSet_h7f8acf28__0__Slow.cpp +++ /dev/null @@ -1,25 +0,0 @@ -// Verilated -*- C++ -*- -// DESCRIPTION: Verilator output: Design implementation internals -// See VbibpTB.h for the primary calling header - -#include "verilated.h" - -#include "VbibpTB__Syms.h" -#include "VbibpTB___024root.h" - -#ifdef VL_DEBUG -VL_ATTR_COLD void VbibpTB___024root___dump_triggers__stl(VbibpTB___024root* vlSelf); -#endif // VL_DEBUG - -VL_ATTR_COLD void VbibpTB___024root___eval_triggers__stl(VbibpTB___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - VbibpTB__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ VbibpTB___024root___eval_triggers__stl\n"); ); - // Body - vlSelf->__VstlTriggered.at(0U) = (0U == vlSelf->__VstlIterCount); -#ifdef VL_DEBUG - if (VL_UNLIKELY(vlSymsp->_vm_contextp__->debug())) { - VbibpTB___024root___dump_triggers__stl(vlSelf); - } -#endif -} diff --git a/iverilog/tobb/labs/lab6/obj_dir/VbibpTB___024root__Slow.cpp b/iverilog/tobb/labs/lab6/obj_dir/VbibpTB___024root__Slow.cpp deleted file mode 100644 index 5d7ae92..0000000 --- a/iverilog/tobb/labs/lab6/obj_dir/VbibpTB___024root__Slow.cpp +++ /dev/null @@ -1,26 +0,0 @@ -// Verilated -*- C++ -*- -// DESCRIPTION: Verilator output: Design implementation internals -// See VbibpTB.h for the primary calling header - -#include "verilated.h" - -#include "VbibpTB__Syms.h" -#include "VbibpTB___024root.h" - -void VbibpTB___024root___ctor_var_reset(VbibpTB___024root* vlSelf); - -VbibpTB___024root::VbibpTB___024root(VbibpTB__Syms* symsp, const char* v__name) - : VerilatedModule{v__name} - , __VdlySched{*symsp->_vm_contextp__} - , vlSymsp{symsp} - { - // Reset structure values - VbibpTB___024root___ctor_var_reset(this); -} - -void VbibpTB___024root::__Vconfigure(bool first) { - if (false && first) {} // Prevent unused -} - -VbibpTB___024root::~VbibpTB___024root() { -} diff --git a/iverilog/tobb/labs/lab6/obj_dir/VbibpTB__main.cpp b/iverilog/tobb/labs/lab6/obj_dir/VbibpTB__main.cpp deleted file mode 100644 index 5963771..0000000 --- a/iverilog/tobb/labs/lab6/obj_dir/VbibpTB__main.cpp +++ /dev/null @@ -1,34 +0,0 @@ -// Verilated -*- C++ -*- -// DESCRIPTION: main() calling loop, created with Verilator --main - -#include "verilated.h" -#include "VbibpTB.h" - -//====================== - -int main(int argc, char** argv, char**) { - // Setup context, defaults, and parse command line - Verilated::debug(0); - const std::unique_ptr contextp{new VerilatedContext}; - contextp->commandArgs(argc, argv); - - // Construct the Verilated model, from Vtop.h generated from Verilating - const std::unique_ptr topp{new VbibpTB{contextp.get()}}; - - // Simulate until $finish - while (!contextp->gotFinish()) { - // Evaluate model - topp->eval(); - // Advance time - if (!topp->eventsPending()) break; - contextp->time(topp->nextTimeSlot()); - } - - if (!contextp->gotFinish()) { - VL_DEBUG_IF(VL_PRINTF("+ Exiting without $finish; no events left\n");); - } - - // Final model cleanup - topp->final(); - return 0; -} diff --git a/iverilog/tobb/labs/lab6/obj_dir/VbibpTB_classes.mk b/iverilog/tobb/labs/lab6/obj_dir/VbibpTB_classes.mk deleted file mode 100644 index dadceee..0000000 --- a/iverilog/tobb/labs/lab6/obj_dir/VbibpTB_classes.mk +++ /dev/null @@ -1,54 +0,0 @@ -# Verilated -*- Makefile -*- -# DESCRIPTION: Verilator output: Make include file with class lists -# -# This file lists generated Verilated files, for including in higher level makefiles. -# See VbibpTB.mk for the caller. - -### Switches... -# C11 constructs required? 0/1 (always on now) -VM_C11 = 1 -# Timing enabled? 0/1 -VM_TIMING = 1 -# Coverage output mode? 0/1 (from --coverage) -VM_COVERAGE = 0 -# Parallel builds? 0/1 (from --output-split) -VM_PARALLEL_BUILDS = 0 -# Tracing output mode? 0/1 (from --trace/--trace-fst) -VM_TRACE = 0 -# Tracing output mode in VCD format? 0/1 (from --trace) -VM_TRACE_VCD = 0 -# Tracing output mode in FST format? 0/1 (from --trace-fst) -VM_TRACE_FST = 0 - -### Object file lists... -# Generated module classes, fast-path, compile with highest optimization -VM_CLASSES_FAST += \ - VbibpTB \ - VbibpTB___024root__DepSet_h7f8acf28__0 \ - VbibpTB___024root__DepSet_h31122c8e__0 \ - VbibpTB__main \ - -# Generated module classes, non-fast-path, compile with low/medium optimization -VM_CLASSES_SLOW += \ - VbibpTB___024root__Slow \ - VbibpTB___024root__DepSet_h7f8acf28__0__Slow \ - VbibpTB___024root__DepSet_h31122c8e__0__Slow \ - -# Generated support classes, fast-path, compile with highest optimization -VM_SUPPORT_FAST += \ - -# Generated support classes, non-fast-path, compile with low/medium optimization -VM_SUPPORT_SLOW += \ - VbibpTB__Syms \ - -# Global classes, need linked once per executable, fast-path, compile with highest optimization -VM_GLOBAL_FAST += \ - verilated \ - verilated_timing \ - verilated_threads \ - -# Global classes, need linked once per executable, non-fast-path, compile with low/medium optimization -VM_GLOBAL_SLOW += \ - - -# Verilated -*- Makefile -*- diff --git a/iverilog/tobb/labs/lab6/obj_dir/Vbibp__ALL.a b/iverilog/tobb/labs/lab6/obj_dir/Vbibp__ALL.a deleted file mode 100644 index 25cfc5feb18e5fb3305e3f58de3965a72f84c99d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25518 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 Y@^EA=KW1m+-_>C9%Y6h=ftCM%02h!l3;+NC diff --git a/iverilog/tobb/labs/lab6/obj_dir/Vbibp__ALL.cpp b/iverilog/tobb/labs/lab6/obj_dir/Vbibp__ALL.cpp deleted file mode 100644 index 61269ca..0000000 --- a/iverilog/tobb/labs/lab6/obj_dir/Vbibp__ALL.cpp +++ /dev/null @@ -1,10 +0,0 @@ -// DESCRIPTION: Generated by verilator_includer via makefile -#define VL_INCLUDE_OPT include -#include "Vbibp.cpp" -#include "Vbibp___024root__DepSet_h1791c79f__0.cpp" -#include "Vbibp___024root__DepSet_h1fed60c4__0.cpp" -#include "Vbibp__main.cpp" -#include "Vbibp___024root__Slow.cpp" -#include "Vbibp___024root__DepSet_h1791c79f__0__Slow.cpp" -#include "Vbibp___024root__DepSet_h1fed60c4__0__Slow.cpp" -#include "Vbibp__Syms.cpp" diff --git a/iverilog/tobb/labs/lab6/obj_dir/Vbibp__ALL.d b/iverilog/tobb/labs/lab6/obj_dir/Vbibp__ALL.d deleted file mode 100644 index 2032d5e..0000000 --- a/iverilog/tobb/labs/lab6/obj_dir/Vbibp__ALL.d +++ /dev/null @@ -1,12 +0,0 @@ -Vbibp__ALL.o: Vbibp__ALL.cpp Vbibp.cpp Vbibp.h \ - /usr/share/verilator/include/verilated.h \ - /usr/share/verilator/include/verilatedos.h \ - /usr/share/verilator/include/verilated_config.h \ - /usr/share/verilator/include/verilated_types.h \ - /usr/share/verilator/include/verilated_funcs.h Vbibp__Syms.h \ - Vbibp___024root.h /usr/share/verilator/include/verilated_timing.h \ - /usr/share/verilator/include/verilated.h \ - Vbibp___024root__DepSet_h1791c79f__0.cpp \ - Vbibp___024root__DepSet_h1fed60c4__0.cpp Vbibp__main.cpp \ - Vbibp___024root__Slow.cpp Vbibp___024root__DepSet_h1791c79f__0__Slow.cpp \ - Vbibp___024root__DepSet_h1fed60c4__0__Slow.cpp Vbibp__Syms.cpp diff --git a/iverilog/tobb/labs/lab6/obj_dir/Vbibp__ALL.o b/iverilog/tobb/labs/lab6/obj_dir/Vbibp__ALL.o deleted file mode 100644 index d5c325498dcf5a9bcb58f7816f3e014772fe8dad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22848 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 - _vm_contextp__->timeprecision(-12); - // Setup each module's pointers to their submodules - // Setup each module's pointer back to symbol table (for public functions) - TOP.__Vconfigure(true); -} diff --git a/iverilog/tobb/labs/lab6/obj_dir/Vbibp__Syms.h b/iverilog/tobb/labs/lab6/obj_dir/Vbibp__Syms.h deleted file mode 100644 index c93187d..0000000 --- a/iverilog/tobb/labs/lab6/obj_dir/Vbibp__Syms.h +++ /dev/null @@ -1,37 +0,0 @@ -// Verilated -*- C++ -*- -// DESCRIPTION: Verilator output: Symbol table internal header -// -// Internal details; most calling programs do not need this header, -// unless using verilator public meta comments. - -#ifndef VERILATED_VBIBP__SYMS_H_ -#define VERILATED_VBIBP__SYMS_H_ // guard - -#include "verilated.h" - -// INCLUDE MODEL CLASS - -#include "Vbibp.h" - -// INCLUDE MODULE CLASSES -#include "Vbibp___024root.h" - -// SYMS CLASS (contains all model state) -class Vbibp__Syms final : public VerilatedSyms { - public: - // INTERNAL STATE - Vbibp* const __Vm_modelp; - bool __Vm_didInit = false; - - // MODULE INSTANCE STATE - Vbibp___024root TOP; - - // CONSTRUCTORS - Vbibp__Syms(VerilatedContext* contextp, const char* namep, Vbibp* modelp); - ~Vbibp__Syms(); - - // METHODS - const char* name() { return TOP.name(); } -} VL_ATTR_ALIGNED(VL_CACHE_LINE_BYTES); - -#endif // guard diff --git a/iverilog/tobb/labs/lab6/obj_dir/Vbibp___024root.h b/iverilog/tobb/labs/lab6/obj_dir/Vbibp___024root.h deleted file mode 100644 index b439a9d..0000000 --- a/iverilog/tobb/labs/lab6/obj_dir/Vbibp___024root.h +++ /dev/null @@ -1,39 +0,0 @@ -// Verilated -*- C++ -*- -// DESCRIPTION: Verilator output: Design internal header -// See Vbibp.h for the primary calling header - -#ifndef VERILATED_VBIBP___024ROOT_H_ -#define VERILATED_VBIBP___024ROOT_H_ // guard - -#include "verilated.h" -#include "verilated_timing.h" - -class Vbibp__Syms; - -class Vbibp___024root final : public VerilatedModule { - public: - - // DESIGN SPECIFIC STATE - CData/*0:0*/ __VactContinue; - SData/*10:0*/ bibpTB__DOT__buyruk; - IData/*31:0*/ __VstlIterCount; - IData/*31:0*/ __VactIterCount; - VlDelayScheduler __VdlySched; - VlTriggerVec<1> __VstlTriggered; - VlTriggerVec<1> __VactTriggered; - VlTriggerVec<1> __VnbaTriggered; - - // INTERNAL VARIABLES - Vbibp__Syms* const vlSymsp; - - // CONSTRUCTORS - Vbibp___024root(Vbibp__Syms* symsp, const char* v__name); - ~Vbibp___024root(); - VL_UNCOPYABLE(Vbibp___024root); - - // INTERNAL METHODS - void __Vconfigure(bool first); -} VL_ATTR_ALIGNED(VL_CACHE_LINE_BYTES); - - -#endif // guard diff --git a/iverilog/tobb/labs/lab6/obj_dir/Vbibp___024root__DepSet_h1791c79f__0.cpp b/iverilog/tobb/labs/lab6/obj_dir/Vbibp___024root__DepSet_h1791c79f__0.cpp deleted file mode 100644 index d7411bb..0000000 --- a/iverilog/tobb/labs/lab6/obj_dir/Vbibp___024root__DepSet_h1791c79f__0.cpp +++ /dev/null @@ -1,43 +0,0 @@ -// Verilated -*- C++ -*- -// DESCRIPTION: Verilator output: Design implementation internals -// See Vbibp.h for the primary calling header - -#include "verilated.h" - -#include "Vbibp__Syms.h" -#include "Vbibp___024root.h" - -VL_INLINE_OPT VlCoroutine Vbibp___024root___eval_initial__TOP__0(Vbibp___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - Vbibp__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ Vbibp___024root___eval_initial__TOP__0\n"); ); - // Init - VlWide<3>/*95:0*/ __Vtemp_h84e83511__0; - // Body - __Vtemp_h84e83511__0[0U] = 0x2e766364U; - __Vtemp_h84e83511__0[1U] = 0x62696270U; - __Vtemp_h84e83511__0[2U] = 0x76U; - vlSymsp->_vm_contextp__->dumpfile(VL_CVT_PACK_STR_NW(3, __Vtemp_h84e83511__0)); - VL_PRINTF_MT("-Info: bibpTB.v:11: $dumpvar ignored, as Verilated without --trace\n"); - vlSelf->bibpTB__DOT__buyruk = 0x754U; - co_await vlSelf->__VdlySched.delay(0xaU, "bibpTB.v", - 13); - VL_FINISH_MT("bibpTB.v", 14, ""); -} - -#ifdef VL_DEBUG -VL_ATTR_COLD void Vbibp___024root___dump_triggers__act(Vbibp___024root* vlSelf); -#endif // VL_DEBUG - -void Vbibp___024root___eval_triggers__act(Vbibp___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - Vbibp__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ Vbibp___024root___eval_triggers__act\n"); ); - // Body - vlSelf->__VactTriggered.at(0U) = vlSelf->__VdlySched.awaitingCurrentTime(); -#ifdef VL_DEBUG - if (VL_UNLIKELY(vlSymsp->_vm_contextp__->debug())) { - Vbibp___024root___dump_triggers__act(vlSelf); - } -#endif -} diff --git a/iverilog/tobb/labs/lab6/obj_dir/Vbibp___024root__DepSet_h1791c79f__0__Slow.cpp b/iverilog/tobb/labs/lab6/obj_dir/Vbibp___024root__DepSet_h1791c79f__0__Slow.cpp deleted file mode 100644 index cf06e6c..0000000 --- a/iverilog/tobb/labs/lab6/obj_dir/Vbibp___024root__DepSet_h1791c79f__0__Slow.cpp +++ /dev/null @@ -1,25 +0,0 @@ -// Verilated -*- C++ -*- -// DESCRIPTION: Verilator output: Design implementation internals -// See Vbibp.h for the primary calling header - -#include "verilated.h" - -#include "Vbibp__Syms.h" -#include "Vbibp___024root.h" - -#ifdef VL_DEBUG -VL_ATTR_COLD void Vbibp___024root___dump_triggers__stl(Vbibp___024root* vlSelf); -#endif // VL_DEBUG - -VL_ATTR_COLD void Vbibp___024root___eval_triggers__stl(Vbibp___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - Vbibp__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ Vbibp___024root___eval_triggers__stl\n"); ); - // Body - vlSelf->__VstlTriggered.at(0U) = (0U == vlSelf->__VstlIterCount); -#ifdef VL_DEBUG - if (VL_UNLIKELY(vlSymsp->_vm_contextp__->debug())) { - Vbibp___024root___dump_triggers__stl(vlSelf); - } -#endif -} diff --git a/iverilog/tobb/labs/lab6/obj_dir/Vbibp___024root__DepSet_h1fed60c4__0.cpp b/iverilog/tobb/labs/lab6/obj_dir/Vbibp___024root__DepSet_h1fed60c4__0.cpp deleted file mode 100644 index 663550a..0000000 --- a/iverilog/tobb/labs/lab6/obj_dir/Vbibp___024root__DepSet_h1fed60c4__0.cpp +++ /dev/null @@ -1,163 +0,0 @@ -// Verilated -*- C++ -*- -// DESCRIPTION: Verilator output: Design implementation internals -// See Vbibp.h for the primary calling header - -#include "verilated.h" - -#include "Vbibp___024root.h" - -VlCoroutine Vbibp___024root___eval_initial__TOP__0(Vbibp___024root* vlSelf); - -void Vbibp___024root___eval_initial(Vbibp___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - Vbibp__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ Vbibp___024root___eval_initial\n"); ); - // Body - Vbibp___024root___eval_initial__TOP__0(vlSelf); -} - -VL_INLINE_OPT void Vbibp___024root___act_sequent__TOP__0(Vbibp___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - Vbibp__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ Vbibp___024root___act_sequent__TOP__0\n"); ); - // Init - CData/*4:0*/ bibpTB__DOT__sonuc; - bibpTB__DOT__sonuc = 0; - // Body - VL_WRITEF("%2#\n%2#\n%2#\n",4,(0xfU & ((IData)(vlSelf->bibpTB__DOT__buyruk) - >> 4U)), - 4,(0xfU & (IData)(vlSelf->bibpTB__DOT__buyruk)), - 4,(0xfU & (((IData)(vlSelf->bibpTB__DOT__buyruk) - >> 4U) - (IData)(vlSelf->bibpTB__DOT__buyruk)))); - bibpTB__DOT__sonuc = (0x1fU & ((0x400U & (IData)(vlSelf->bibpTB__DOT__buyruk)) - ? ((0x200U & (IData)(vlSelf->bibpTB__DOT__buyruk)) - ? 0x1fU : ( - (0x100U - & (IData)(vlSelf->bibpTB__DOT__buyruk)) - ? 0x1fU - : - (0xfU - & (((IData)(vlSelf->bibpTB__DOT__buyruk) - >> 4U) - ^ (IData)(vlSelf->bibpTB__DOT__buyruk))))) - : ((0x200U & (IData)(vlSelf->bibpTB__DOT__buyruk)) - ? ((0x100U - & (IData)(vlSelf->bibpTB__DOT__buyruk)) - ? (0xfU - & (((IData)(vlSelf->bibpTB__DOT__buyruk) - >> 4U) - | (IData)(vlSelf->bibpTB__DOT__buyruk))) - : (0xfU - & (((IData)(vlSelf->bibpTB__DOT__buyruk) - >> 4U) - & (IData)(vlSelf->bibpTB__DOT__buyruk)))) - : ((0x100U - & (IData)(vlSelf->bibpTB__DOT__buyruk)) - ? ((0xfU - & ((IData)(vlSelf->bibpTB__DOT__buyruk) - >> 4U)) - - (0xfU - & (IData)(vlSelf->bibpTB__DOT__buyruk))) - : ((0xfU - & ((IData)(vlSelf->bibpTB__DOT__buyruk) - >> 4U)) - + (0xfU - & (IData)(vlSelf->bibpTB__DOT__buyruk))))))); - VL_WRITEF("%b\n",5,bibpTB__DOT__sonuc); -} - -void Vbibp___024root___eval_act(Vbibp___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - Vbibp__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ Vbibp___024root___eval_act\n"); ); - // Body - if (vlSelf->__VactTriggered.at(0U)) { - Vbibp___024root___act_sequent__TOP__0(vlSelf); - } -} - -void Vbibp___024root___eval_nba(Vbibp___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - Vbibp__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ Vbibp___024root___eval_nba\n"); ); - // Body - if (vlSelf->__VnbaTriggered.at(0U)) { - Vbibp___024root___act_sequent__TOP__0(vlSelf); - } -} - -void Vbibp___024root___eval_triggers__act(Vbibp___024root* vlSelf); -#ifdef VL_DEBUG -VL_ATTR_COLD void Vbibp___024root___dump_triggers__act(Vbibp___024root* vlSelf); -#endif // VL_DEBUG -void Vbibp___024root___timing_resume(Vbibp___024root* vlSelf); -#ifdef VL_DEBUG -VL_ATTR_COLD void Vbibp___024root___dump_triggers__nba(Vbibp___024root* vlSelf); -#endif // VL_DEBUG - -void Vbibp___024root___eval(Vbibp___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - Vbibp__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ Vbibp___024root___eval\n"); ); - // Init - VlTriggerVec<1> __VpreTriggered; - IData/*31:0*/ __VnbaIterCount; - CData/*0:0*/ __VnbaContinue; - // Body - __VnbaIterCount = 0U; - __VnbaContinue = 1U; - while (__VnbaContinue) { - __VnbaContinue = 0U; - vlSelf->__VnbaTriggered.clear(); - vlSelf->__VactIterCount = 0U; - vlSelf->__VactContinue = 1U; - while (vlSelf->__VactContinue) { - vlSelf->__VactContinue = 0U; - Vbibp___024root___eval_triggers__act(vlSelf); - if (vlSelf->__VactTriggered.any()) { - vlSelf->__VactContinue = 1U; - if (VL_UNLIKELY((0x64U < vlSelf->__VactIterCount))) { -#ifdef VL_DEBUG - Vbibp___024root___dump_triggers__act(vlSelf); -#endif - VL_FATAL_MT("bibpTB.v", 1, "", "Active region did not converge."); - } - vlSelf->__VactIterCount = ((IData)(1U) - + vlSelf->__VactIterCount); - __VpreTriggered.andNot(vlSelf->__VactTriggered, vlSelf->__VnbaTriggered); - vlSelf->__VnbaTriggered.set(vlSelf->__VactTriggered); - Vbibp___024root___timing_resume(vlSelf); - Vbibp___024root___eval_act(vlSelf); - } - } - if (vlSelf->__VnbaTriggered.any()) { - __VnbaContinue = 1U; - if (VL_UNLIKELY((0x64U < __VnbaIterCount))) { -#ifdef VL_DEBUG - Vbibp___024root___dump_triggers__nba(vlSelf); -#endif - VL_FATAL_MT("bibpTB.v", 1, "", "NBA region did not converge."); - } - __VnbaIterCount = ((IData)(1U) + __VnbaIterCount); - Vbibp___024root___eval_nba(vlSelf); - } - } -} - -void Vbibp___024root___timing_resume(Vbibp___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - Vbibp__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ Vbibp___024root___timing_resume\n"); ); - // Body - if (vlSelf->__VactTriggered.at(0U)) { - vlSelf->__VdlySched.resume(); - } -} - -#ifdef VL_DEBUG -void Vbibp___024root___eval_debug_assertions(Vbibp___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - Vbibp__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ Vbibp___024root___eval_debug_assertions\n"); ); -} -#endif // VL_DEBUG diff --git a/iverilog/tobb/labs/lab6/obj_dir/Vbibp___024root__DepSet_h1fed60c4__0__Slow.cpp b/iverilog/tobb/labs/lab6/obj_dir/Vbibp___024root__DepSet_h1fed60c4__0__Slow.cpp deleted file mode 100644 index 45dd9b6..0000000 --- a/iverilog/tobb/labs/lab6/obj_dir/Vbibp___024root__DepSet_h1fed60c4__0__Slow.cpp +++ /dev/null @@ -1,117 +0,0 @@ -// Verilated -*- C++ -*- -// DESCRIPTION: Verilator output: Design implementation internals -// See Vbibp.h for the primary calling header - -#include "verilated.h" - -#include "Vbibp___024root.h" - -VL_ATTR_COLD void Vbibp___024root___eval_static(Vbibp___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - Vbibp__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ Vbibp___024root___eval_static\n"); ); -} - -VL_ATTR_COLD void Vbibp___024root___eval_final(Vbibp___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - Vbibp__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ Vbibp___024root___eval_final\n"); ); -} - -VL_ATTR_COLD void Vbibp___024root___eval_triggers__stl(Vbibp___024root* vlSelf); -#ifdef VL_DEBUG -VL_ATTR_COLD void Vbibp___024root___dump_triggers__stl(Vbibp___024root* vlSelf); -#endif // VL_DEBUG -VL_ATTR_COLD void Vbibp___024root___eval_stl(Vbibp___024root* vlSelf); - -VL_ATTR_COLD void Vbibp___024root___eval_settle(Vbibp___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - Vbibp__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ Vbibp___024root___eval_settle\n"); ); - // Init - CData/*0:0*/ __VstlContinue; - // Body - vlSelf->__VstlIterCount = 0U; - __VstlContinue = 1U; - while (__VstlContinue) { - __VstlContinue = 0U; - Vbibp___024root___eval_triggers__stl(vlSelf); - if (vlSelf->__VstlTriggered.any()) { - __VstlContinue = 1U; - if (VL_UNLIKELY((0x64U < vlSelf->__VstlIterCount))) { -#ifdef VL_DEBUG - Vbibp___024root___dump_triggers__stl(vlSelf); -#endif - VL_FATAL_MT("bibpTB.v", 1, "", "Settle region did not converge."); - } - vlSelf->__VstlIterCount = ((IData)(1U) - + vlSelf->__VstlIterCount); - Vbibp___024root___eval_stl(vlSelf); - } - } -} - -#ifdef VL_DEBUG -VL_ATTR_COLD void Vbibp___024root___dump_triggers__stl(Vbibp___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - Vbibp__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ Vbibp___024root___dump_triggers__stl\n"); ); - // Body - if ((1U & (~ (IData)(vlSelf->__VstlTriggered.any())))) { - VL_DBG_MSGF(" No triggers active\n"); - } - if (vlSelf->__VstlTriggered.at(0U)) { - VL_DBG_MSGF(" 'stl' region trigger index 0 is active: Internal 'stl' trigger - first iteration\n"); - } -} -#endif // VL_DEBUG - -void Vbibp___024root___act_sequent__TOP__0(Vbibp___024root* vlSelf); - -VL_ATTR_COLD void Vbibp___024root___eval_stl(Vbibp___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - Vbibp__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ Vbibp___024root___eval_stl\n"); ); - // Body - if (vlSelf->__VstlTriggered.at(0U)) { - Vbibp___024root___act_sequent__TOP__0(vlSelf); - } -} - -#ifdef VL_DEBUG -VL_ATTR_COLD void Vbibp___024root___dump_triggers__act(Vbibp___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - Vbibp__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ Vbibp___024root___dump_triggers__act\n"); ); - // Body - if ((1U & (~ (IData)(vlSelf->__VactTriggered.any())))) { - VL_DBG_MSGF(" No triggers active\n"); - } - if (vlSelf->__VactTriggered.at(0U)) { - VL_DBG_MSGF(" 'act' region trigger index 0 is active: @([true] __VdlySched.awaitingCurrentTime())\n"); - } -} -#endif // VL_DEBUG - -#ifdef VL_DEBUG -VL_ATTR_COLD void Vbibp___024root___dump_triggers__nba(Vbibp___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - Vbibp__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ Vbibp___024root___dump_triggers__nba\n"); ); - // Body - if ((1U & (~ (IData)(vlSelf->__VnbaTriggered.any())))) { - VL_DBG_MSGF(" No triggers active\n"); - } - if (vlSelf->__VnbaTriggered.at(0U)) { - VL_DBG_MSGF(" 'nba' region trigger index 0 is active: @([true] __VdlySched.awaitingCurrentTime())\n"); - } -} -#endif // VL_DEBUG - -VL_ATTR_COLD void Vbibp___024root___ctor_var_reset(Vbibp___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - Vbibp__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ Vbibp___024root___ctor_var_reset\n"); ); - // Body - vlSelf->bibpTB__DOT__buyruk = VL_RAND_RESET_I(11); - } diff --git a/iverilog/tobb/labs/lab6/obj_dir/Vbibp___024root__Slow.cpp b/iverilog/tobb/labs/lab6/obj_dir/Vbibp___024root__Slow.cpp deleted file mode 100644 index 9b47201..0000000 --- a/iverilog/tobb/labs/lab6/obj_dir/Vbibp___024root__Slow.cpp +++ /dev/null @@ -1,26 +0,0 @@ -// Verilated -*- C++ -*- -// DESCRIPTION: Verilator output: Design implementation internals -// See Vbibp.h for the primary calling header - -#include "verilated.h" - -#include "Vbibp__Syms.h" -#include "Vbibp___024root.h" - -void Vbibp___024root___ctor_var_reset(Vbibp___024root* vlSelf); - -Vbibp___024root::Vbibp___024root(Vbibp__Syms* symsp, const char* v__name) - : VerilatedModule{v__name} - , __VdlySched{*symsp->_vm_contextp__} - , vlSymsp{symsp} - { - // Reset structure values - Vbibp___024root___ctor_var_reset(this); -} - -void Vbibp___024root::__Vconfigure(bool first) { - if (false && first) {} // Prevent unused -} - -Vbibp___024root::~Vbibp___024root() { -} diff --git a/iverilog/tobb/labs/lab6/obj_dir/Vbibp__main.cpp b/iverilog/tobb/labs/lab6/obj_dir/Vbibp__main.cpp deleted file mode 100644 index 86a378b..0000000 --- a/iverilog/tobb/labs/lab6/obj_dir/Vbibp__main.cpp +++ /dev/null @@ -1,34 +0,0 @@ -// Verilated -*- C++ -*- -// DESCRIPTION: main() calling loop, created with Verilator --main - -#include "verilated.h" -#include "Vbibp.h" - -//====================== - -int main(int argc, char** argv, char**) { - // Setup context, defaults, and parse command line - Verilated::debug(0); - const std::unique_ptr contextp{new VerilatedContext}; - contextp->commandArgs(argc, argv); - - // Construct the Verilated model, from Vtop.h generated from Verilating - const std::unique_ptr topp{new Vbibp{contextp.get()}}; - - // Simulate until $finish - while (!contextp->gotFinish()) { - // Evaluate model - topp->eval(); - // Advance time - if (!topp->eventsPending()) break; - contextp->time(topp->nextTimeSlot()); - } - - if (!contextp->gotFinish()) { - VL_DEBUG_IF(VL_PRINTF("+ Exiting without $finish; no events left\n");); - } - - // Final model cleanup - topp->final(); - return 0; -} diff --git a/iverilog/tobb/labs/lab6/obj_dir/Vbibp__ver.d b/iverilog/tobb/labs/lab6/obj_dir/Vbibp__ver.d deleted file mode 100644 index 4b37e78..0000000 --- a/iverilog/tobb/labs/lab6/obj_dir/Vbibp__ver.d +++ /dev/null @@ -1 +0,0 @@ -obj_dir/Vbibp.cpp obj_dir/Vbibp.h obj_dir/Vbibp.mk obj_dir/Vbibp__Syms.cpp obj_dir/Vbibp__Syms.h obj_dir/Vbibp___024root.h obj_dir/Vbibp___024root__DepSet_h1791c79f__0.cpp obj_dir/Vbibp___024root__DepSet_h1791c79f__0__Slow.cpp obj_dir/Vbibp___024root__DepSet_h1fed60c4__0.cpp obj_dir/Vbibp___024root__DepSet_h1fed60c4__0__Slow.cpp obj_dir/Vbibp___024root__Slow.cpp obj_dir/Vbibp__main.cpp obj_dir/Vbibp__ver.d obj_dir/Vbibp_classes.mk : /usr/bin/verilator_bin /usr/bin/verilator_bin bibp.v bibpTB.v diff --git a/iverilog/tobb/labs/lab6/obj_dir/Vbibp__verFiles.dat b/iverilog/tobb/labs/lab6/obj_dir/Vbibp__verFiles.dat deleted file mode 100644 index 2063b92..0000000 --- a/iverilog/tobb/labs/lab6/obj_dir/Vbibp__verFiles.dat +++ /dev/null @@ -1,20 +0,0 @@ -# DESCRIPTION: Verilator output: Timestamp data for --skip-identical. Delete at will. -C "--binary bibp.v bibpTB.v" -S 12244816 28045 1719496600 881980186 1680199511 0 "/usr/bin/verilator_bin" -S 1391 45758 1720892163 82220690 1720892163 82220690 "bibp.v" -S 280 45770 1720891982 812222176 1720891982 812222176 "bibpTB.v" -T 2913 45968 1720892165 682220680 1720892165 682220680 "obj_dir/Vbibp.cpp" -T 2653 45967 1720892165 682220680 1720892165 682220680 "obj_dir/Vbibp.h" -T 1734 45977 1720892165 682220680 1720892165 682220680 "obj_dir/Vbibp.mk" -T 746 45965 1720892165 682220680 1720892165 682220680 "obj_dir/Vbibp__Syms.cpp" -T 902 45966 1720892165 682220680 1720892165 682220680 "obj_dir/Vbibp__Syms.h" -T 991 45969 1720892165 682220680 1720892165 682220680 "obj_dir/Vbibp___024root.h" -T 1689 45973 1720892165 682220680 1720892165 682220680 "obj_dir/Vbibp___024root__DepSet_h1791c79f__0.cpp" -T 843 45971 1720892165 682220680 1720892165 682220680 "obj_dir/Vbibp___024root__DepSet_h1791c79f__0__Slow.cpp" -T 7548 45974 1720892165 682220680 1720892165 682220680 "obj_dir/Vbibp___024root__DepSet_h1fed60c4__0.cpp" -T 4683 45972 1720892165 682220680 1720892165 682220680 "obj_dir/Vbibp___024root__DepSet_h1fed60c4__0__Slow.cpp" -T 668 45970 1720892165 682220680 1720892165 682220680 "obj_dir/Vbibp___024root__Slow.cpp" -T 961 45975 1720892165 682220680 1720892165 682220680 "obj_dir/Vbibp__main.cpp" -T 501 45978 1720892165 682220680 1720892165 682220680 "obj_dir/Vbibp__ver.d" -T 0 0 1720892165 682220680 1720892165 682220680 "obj_dir/Vbibp__verFiles.dat" -T 1664 45976 1720892165 682220680 1720892165 682220680 "obj_dir/Vbibp_classes.mk" diff --git a/iverilog/tobb/labs/lab6/obj_dir/Vbibp_classes.mk b/iverilog/tobb/labs/lab6/obj_dir/Vbibp_classes.mk deleted file mode 100644 index 6f00957..0000000 --- a/iverilog/tobb/labs/lab6/obj_dir/Vbibp_classes.mk +++ /dev/null @@ -1,54 +0,0 @@ -# Verilated -*- Makefile -*- -# DESCRIPTION: Verilator output: Make include file with class lists -# -# This file lists generated Verilated files, for including in higher level makefiles. -# See Vbibp.mk for the caller. - -### Switches... -# C11 constructs required? 0/1 (always on now) -VM_C11 = 1 -# Timing enabled? 0/1 -VM_TIMING = 1 -# Coverage output mode? 0/1 (from --coverage) -VM_COVERAGE = 0 -# Parallel builds? 0/1 (from --output-split) -VM_PARALLEL_BUILDS = 0 -# Tracing output mode? 0/1 (from --trace/--trace-fst) -VM_TRACE = 0 -# Tracing output mode in VCD format? 0/1 (from --trace) -VM_TRACE_VCD = 0 -# Tracing output mode in FST format? 0/1 (from --trace-fst) -VM_TRACE_FST = 0 - -### Object file lists... -# Generated module classes, fast-path, compile with highest optimization -VM_CLASSES_FAST += \ - Vbibp \ - Vbibp___024root__DepSet_h1791c79f__0 \ - Vbibp___024root__DepSet_h1fed60c4__0 \ - Vbibp__main \ - -# Generated module classes, non-fast-path, compile with low/medium optimization -VM_CLASSES_SLOW += \ - Vbibp___024root__Slow \ - Vbibp___024root__DepSet_h1791c79f__0__Slow \ - Vbibp___024root__DepSet_h1fed60c4__0__Slow \ - -# Generated support classes, fast-path, compile with highest optimization -VM_SUPPORT_FAST += \ - -# Generated support classes, non-fast-path, compile with low/medium optimization -VM_SUPPORT_SLOW += \ - Vbibp__Syms \ - -# Global classes, need linked once per executable, fast-path, compile with highest optimization -VM_GLOBAL_FAST += \ - verilated \ - verilated_timing \ - verilated_threads \ - -# Global classes, need linked once per executable, non-fast-path, compile with low/medium optimization -VM_GLOBAL_SLOW += \ - - -# Verilated -*- Makefile -*- diff --git a/iverilog/tobb/labs/lab6/obj_dir/verilated.d b/iverilog/tobb/labs/lab6/obj_dir/verilated.d deleted file mode 100644 index d1c18c3..0000000 --- a/iverilog/tobb/labs/lab6/obj_dir/verilated.d +++ /dev/null @@ -1,12 +0,0 @@ -verilated.o: /usr/share/verilator/include/verilated.cpp \ - /usr/share/verilator/include/verilated_config.h \ - /usr/share/verilator/include/verilatedos.h \ - /usr/share/verilator/include/verilated_imp.h \ - /usr/share/verilator/include/verilated.h \ - /usr/share/verilator/include/verilated_types.h \ - /usr/share/verilator/include/verilated_funcs.h \ - /usr/share/verilator/include/verilated_syms.h \ - /usr/share/verilator/include/verilated_sym_props.h \ - /usr/share/verilator/include/verilated_threads.h \ - /usr/share/verilator/include/verilated_trace.h \ - /usr/share/verilator/include/verilated_trace_defs.h diff --git a/iverilog/tobb/labs/lab6/obj_dir/verilated.o b/iverilog/tobb/labs/lab6/obj_dir/verilated.o deleted file mode 100644 index d7daedd1104a533e54952bccf88e3dca6daaa84d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 197480 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 We|`$jo$~I=n|xL;yY_Jl?f(zjcDJ$s diff --git a/iverilog/tobb/labs/lab6/obj_dir/verilated_threads.d b/iverilog/tobb/labs/lab6/obj_dir/verilated_threads.d deleted file mode 100644 index 0df0edd..0000000 --- a/iverilog/tobb/labs/lab6/obj_dir/verilated_threads.d +++ /dev/null @@ -1,7 +0,0 @@ -verilated_threads.o: /usr/share/verilator/include/verilated_threads.cpp \ - /usr/share/verilator/include/verilatedos.h \ - /usr/share/verilator/include/verilated_threads.h \ - /usr/share/verilator/include/verilated.h \ - /usr/share/verilator/include/verilated_config.h \ - /usr/share/verilator/include/verilated_types.h \ - /usr/share/verilator/include/verilated_funcs.h diff --git a/iverilog/tobb/labs/lab6/obj_dir/verilated_threads.o b/iverilog/tobb/labs/lab6/obj_dir/verilated_threads.o deleted file mode 100644 index bce79c746ca0082f6e8f843d2d00f1c0951d81d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30832 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 diff --git a/iverilog/tobb/labs/lab6/obj_dir/verilated_timing.d b/iverilog/tobb/labs/lab6/obj_dir/verilated_timing.d deleted file mode 100644 index 87a70f9..0000000 --- a/iverilog/tobb/labs/lab6/obj_dir/verilated_timing.d +++ /dev/null @@ -1,7 +0,0 @@ -verilated_timing.o: /usr/share/verilator/include/verilated_timing.cpp \ - /usr/share/verilator/include/verilated_timing.h \ - /usr/share/verilator/include/verilated.h \ - /usr/share/verilator/include/verilatedos.h \ - /usr/share/verilator/include/verilated_config.h \ - /usr/share/verilator/include/verilated_types.h \ - /usr/share/verilator/include/verilated_funcs.h diff --git a/iverilog/tobb/labs/lab6/obj_dir/verilated_timing.o b/iverilog/tobb/labs/lab6/obj_dir/verilated_timing.o deleted file mode 100644 index 61f79d6a2ad6c82f4c072552888f930f41708821..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8664 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 oB5*I;k diff --git a/iverilog/tobb/labs/lab6/vbibp.vcd b/iverilog/tobb/labs/lab6/vbibp.vcd deleted file mode 100644 index a79f6fa..0000000 --- a/iverilog/tobb/labs/lab6/vbibp.vcd +++ /dev/null @@ -1,26 +0,0 @@ -$date - Sat Jul 13 20:33:06 2024 -$end -$version - Icarus Verilog -$end -$timescale - 1s -$end -$scope module bibpTB $end -$var wire 5 ! sonuc [4:0] $end -$var reg 11 " buyruk [10:0] $end -$scope module uut $end -$var wire 11 # buyruk [10:0] $end -$var reg 5 $ sonuc [4:0] $end -$upscope $end -$upscope $end -$enddefinitions $end -#0 -$dumpvars -b11111 $ -b11101010100 # -b11101010100 " -b11111 ! -$end -#10 diff --git a/iverilog/tobb/labs/lab6/vvbibp b/iverilog/tobb/labs/lab6/vvbibp deleted file mode 100644 index 00d5342..0000000 --- a/iverilog/tobb/labs/lab6/vvbibp +++ /dev/null @@ -1,129 +0,0 @@ -#! /usr/bin/vvp -:ivl_version "11.0 (stable)"; -:ivl_delay_selection "TYPICAL"; -:vpi_time_precision + 0; -:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/system.vpi"; -:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/vhdl_sys.vpi"; -:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/vhdl_textio.vpi"; -:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/v2005_math.vpi"; -:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/va_math.vpi"; -S_0x55b097fd0df0 .scope module, "bibpTB" "bibpTB" 2 1; - .timescale 0 0; -P_0x55b097fd1ec0 .param/l "UZUNLUK" 0 2 3, +C4<00000000000000000000000000001000>; -v0x55b098020f40_0 .var "buyruk", 10 0; -v0x55b098021030_0 .net "sonuc", 4 0, v0x55b098020e00_0; 1 drivers -S_0x55b097fd0fd0 .scope module, "uut" "bibp" 2 7, 3 1 0, S_0x55b097fd0df0; - .timescale 0 0; - .port_info 0 /INPUT 11 "buyruk"; - .port_info 1 /OUTPUT 5 "sonuc"; -P_0x55b097fd1de0 .param/l "UZUNLUK" 0 3 1, +C4<00000000000000000000000000001000>; -v0x55b09800a8e0_0 .net "buyruk", 10 0, v0x55b098020f40_0; 1 drivers -v0x55b098020e00_0 .var "sonuc", 4 0; -E_0x55b09800af00 .event edge, v0x55b09800a8e0_0, v0x55b098020e00_0; - .scope S_0x55b097fd0fd0; -T_0 ; - %wait E_0x55b09800af00; - %vpi_call 3 21 "$display", "%d", &PV {0 0 0}; - %vpi_call 3 22 "$display", "%d", &PV {0 0 0}; - %load/vec4 v0x55b09800a8e0_0; - %parti/s 4, 4, 4; - %load/vec4 v0x55b09800a8e0_0; - %parti/s 4, 0, 2; - %sub; - %vpi_call 3 23 "$display", "%d", S<0,vec4,u4> {1 0 0}; - %load/vec4 v0x55b09800a8e0_0; - %parti/s 3, 8, 5; - %dup/vec4; - %pushi/vec4 0, 0, 3; - %cmp/u; - %jmp/1 T_0.0, 6; - %dup/vec4; - %pushi/vec4 1, 0, 3; - %cmp/u; - %jmp/1 T_0.1, 6; - %dup/vec4; - %pushi/vec4 2, 0, 3; - %cmp/u; - %jmp/1 T_0.2, 6; - %dup/vec4; - %pushi/vec4 3, 0, 3; - %cmp/u; - %jmp/1 T_0.3, 6; - %dup/vec4; - %pushi/vec4 4, 0, 3; - %cmp/u; - %jmp/1 T_0.4, 6; - %pushi/vec4 31, 0, 5; - %store/vec4 v0x55b098020e00_0, 0, 5; - %jmp T_0.6; -T_0.0 ; - %load/vec4 v0x55b09800a8e0_0; - %parti/s 4, 4, 4; - %pad/u 5; - %load/vec4 v0x55b09800a8e0_0; - %parti/s 4, 0, 2; - %pad/u 5; - %add; - %store/vec4 v0x55b098020e00_0, 0, 5; - %jmp T_0.6; -T_0.1 ; - %load/vec4 v0x55b09800a8e0_0; - %parti/s 4, 4, 4; - %pad/u 5; - %load/vec4 v0x55b09800a8e0_0; - %parti/s 4, 0, 2; - %pad/u 5; - %sub; - %store/vec4 v0x55b098020e00_0, 0, 5; - %jmp T_0.6; -T_0.2 ; - %pushi/vec4 0, 0, 1; - %load/vec4 v0x55b09800a8e0_0; - %parti/s 4, 4, 4; - %load/vec4 v0x55b09800a8e0_0; - %parti/s 4, 0, 2; - %and; - %concat/vec4; draw_concat_vec4 - %store/vec4 v0x55b098020e00_0, 0, 5; - %jmp T_0.6; -T_0.3 ; - %pushi/vec4 0, 0, 1; - %load/vec4 v0x55b09800a8e0_0; - %parti/s 4, 4, 4; - %load/vec4 v0x55b09800a8e0_0; - %parti/s 4, 0, 2; - %or; - %concat/vec4; draw_concat_vec4 - %store/vec4 v0x55b098020e00_0, 0, 5; - %jmp T_0.6; -T_0.4 ; - %pushi/vec4 0, 0, 1; - %load/vec4 v0x55b09800a8e0_0; - %parti/s 4, 4, 4; - %load/vec4 v0x55b09800a8e0_0; - %parti/s 4, 0, 2; - %xor; - %concat/vec4; draw_concat_vec4 - %store/vec4 v0x55b098020e00_0, 0, 5; - %jmp T_0.6; -T_0.6 ; - %pop/vec4 1; - %vpi_call 3 32 "$display", "%b", v0x55b098020e00_0 {0 0 0}; - %jmp T_0; - .thread T_0, $push; - .scope S_0x55b097fd0df0; -T_1 ; - %vpi_call 2 10 "$dumpfile", "vbibp.vcd" {0 0 0}; - %vpi_call 2 11 "$dumpvars" {0 0 0}; - %pushi/vec4 1876, 0, 11; - %store/vec4 v0x55b098020f40_0, 0, 11; - %delay 10, 0; - %vpi_call 2 14 "$finish" {0 0 0}; - %end; - .thread T_1; -# The file index is used to find the file name in the following table. -:file_names 4; - "N/A"; - ""; - "bibpTB.v"; - "bibp.v"; diff --git a/project0.2/ALU b/project0.2/ALU new file mode 100644 index 0000000..0252248 --- /dev/null +++ b/project0.2/ALU @@ -0,0 +1,1451 @@ +#! /usr/bin/vvp +:ivl_version "11.0 (stable)"; +:ivl_delay_selection "TYPICAL"; +:vpi_time_precision + 0; +:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/system.vpi"; +:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/vhdl_sys.vpi"; +:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/vhdl_textio.vpi"; +:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/v2005_math.vpi"; +:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/va_math.vpi"; +S_0x5578aae7dd60 .scope module, "ALUTB" "ALUTB" 2 1; + .timescale 0 0; +v0x5578aaf10bb0_0 .var "A", 3 0; +v0x5578aaf10c90_0 .var "B", 3 0; +v0x5578aaf10d50_0 .var "CarryIN", 0 0; +v0x5578aaf10e20_0 .net "CarryOUT", 0 0, L_0x5578aaf1fa50; 1 drivers +v0x5578aaf10ec0_0 .net "Y", 3 0, L_0x5578aaf2b630; 1 drivers +v0x5578aaf10fb0_0 .var "opCodeA", 2 0; +v0x5578aaf110a0_0 .net "overflow", 0 0, L_0x5578aaf1fac0; 1 drivers +S_0x5578aae7c060 .scope module, "uut" "ALU" 2 9, 3 1 0, S_0x5578aae7dd60; + .timescale 0 0; + .port_info 0 /INPUT 4 "A"; + .port_info 1 /INPUT 4 "B"; + .port_info 2 /INPUT 1 "CarryIN"; + .port_info 3 /INPUT 3 "opCodeA"; + .port_info 4 /OUTPUT 4 "Y"; + .port_info 5 /OUTPUT 1 "CarryOUT"; + .port_info 6 /OUTPUT 1 "overflow"; +L_0x5578aaf25dd0 .functor OR 1, L_0x5578aaf25e40, L_0x5578aaf25ee0, C4<0>, C4<0>; +L_0x5578aaf25fd0 .functor OR 1, L_0x5578aaf26040, L_0x5578aaf261c0, C4<0>, C4<0>; +L_0x5578aaf262f0 .functor OR 1, L_0x5578aaf26360, L_0x5578aaf26400, C4<0>, C4<0>; +L_0x5578aaf266d0 .functor OR 1, L_0x5578aaf26790, L_0x5578aaf26880, C4<0>, C4<0>; +L_0x5578aaf26920 .functor OR 1, L_0x5578aaf26990, L_0x5578aaf26b40, C4<0>, C4<0>; +L_0x5578aaf26c30 .functor OR 1, L_0x5578aaf26ca0, L_0x5578aaf26e10, C4<0>, C4<0>; +L_0x5578aaf26ad0 .functor OR 1, L_0x5578aaf26f90, L_0x5578aaf27150, C4<0>, C4<0>; +L_0x5578aaf27420 .functor OR 1, L_0x5578aaf27530, L_0x5578aaf27620, C4<0>, C4<0>; +L_0x5578aaf277c0 .functor AND 1, L_0x5578aaf27380, L_0x5578aaf27880, C4<1>, C4<1>; +L_0x5578aaf27a30 .functor AND 1, L_0x5578aaf27aa0, L_0x5578aaf27b40, C4<1>, C4<1>; +L_0x5578aaf27d00 .functor AND 1, L_0x5578aaf27d70, L_0x5578aaf27e10, C4<1>, C4<1>; +L_0x5578aaf28170 .functor AND 1, L_0x5578aaf282a0, L_0x5578aaf28590, C4<1>, C4<1>; +L_0x5578aaf28680 .functor AND 1, L_0x5578aaf286f0, L_0x5578aaf288e0, C4<1>, C4<1>; +L_0x5578aaf289d0 .functor AND 1, L_0x5578aaf28ac0, L_0x5578aaf28cc0, C4<1>, C4<1>; +L_0x5578aaf28230 .functor AND 1, L_0x5578aaf28db0, L_0x5578aaf28f70, C4<1>, C4<1>; +L_0x5578aaf28e50 .functor AND 1, L_0x5578aaf293b0, L_0x5578aaf29450, C4<1>, C4<1>; +L_0x5578aaf29680 .functor OR 1, L_0x5578aaf296f0, L_0x5578aaf29830, C4<0>, C4<0>; +L_0x5578aaf29ac0 .functor OR 1, L_0x5578aaf29bd0, L_0x5578aaf29cc0, C4<0>, C4<0>; +L_0x5578aaf29f10 .functor OR 1, L_0x5578aaf29f80, L_0x5578aaf2a070, C4<0>, C4<0>; +L_0x5578aaf2a450 .functor OR 1, L_0x5578aaf29b30, L_0x5578aaf2a790, C4<0>, C4<0>; +L_0x5578aaf2a880 .functor OR 1, L_0x5578aaf2a8f0, L_0x5578aaf2abc0, C4<0>, C4<0>; +L_0x5578aaf2ad00 .functor OR 1, L_0x5578aaf2ae30, L_0x5578aaf2b0c0, C4<0>, C4<0>; +L_0x5578aaf2b160 .functor OR 1, L_0x5578aaf2b1d0, L_0x5578aaf2b500, C4<0>, C4<0>; +L_0x5578aaf2b980 .functor OR 1, L_0x5578aaf2bb10, L_0x5578aaf2bc00, C4<0>, C4<0>; +v0x5578aaf0b6c0_0 .net "A", 3 0, v0x5578aaf10bb0_0; 1 drivers +v0x5578aaf0b890_0 .net "B", 3 0, v0x5578aaf10c90_0; 1 drivers +v0x5578aaf0b950_0 .net "CarryIN", 0 0, v0x5578aaf10d50_0; 1 drivers +v0x5578aaf0bb00_0 .net "CarryOUT", 0 0, L_0x5578aaf1fa50; alias, 1 drivers +v0x5578aaf0bba0_0 .net "Y", 3 0, L_0x5578aaf2b630; alias, 1 drivers +v0x5578aaf0bc40_0 .net *"_ivl_10", 0 0, L_0x5578aaf25fd0; 1 drivers +v0x5578aaf0bd20_0 .net *"_ivl_101", 0 0, L_0x5578aaf293b0; 1 drivers +v0x5578aaf0be00_0 .net *"_ivl_103", 0 0, L_0x5578aaf29450; 1 drivers +v0x5578aaf0bee0_0 .net *"_ivl_104", 0 0, L_0x5578aaf29680; 1 drivers +v0x5578aaf0bfc0_0 .net *"_ivl_107", 0 0, L_0x5578aaf296f0; 1 drivers +v0x5578aaf0c0a0_0 .net *"_ivl_109", 0 0, L_0x5578aaf29830; 1 drivers +v0x5578aaf0c180_0 .net *"_ivl_110", 0 0, L_0x5578aaf29ac0; 1 drivers +v0x5578aaf0c260_0 .net *"_ivl_113", 0 0, L_0x5578aaf29bd0; 1 drivers +v0x5578aaf0c340_0 .net *"_ivl_115", 0 0, L_0x5578aaf29cc0; 1 drivers +v0x5578aaf0c420_0 .net *"_ivl_116", 0 0, L_0x5578aaf29f10; 1 drivers +v0x5578aaf0c500_0 .net *"_ivl_119", 0 0, L_0x5578aaf29f80; 1 drivers +v0x5578aaf0c5e0_0 .net *"_ivl_121", 0 0, L_0x5578aaf2a070; 1 drivers +v0x5578aaf0c7d0_0 .net *"_ivl_122", 0 0, L_0x5578aaf2a450; 1 drivers +v0x5578aaf0c8b0_0 .net *"_ivl_126", 0 0, L_0x5578aaf29b30; 1 drivers +v0x5578aaf0c990_0 .net *"_ivl_128", 0 0, L_0x5578aaf2a790; 1 drivers +v0x5578aaf0ca70_0 .net *"_ivl_129", 0 0, L_0x5578aaf2a880; 1 drivers +v0x5578aaf0cb50_0 .net *"_ivl_13", 0 0, L_0x5578aaf26040; 1 drivers +v0x5578aaf0cc30_0 .net *"_ivl_132", 0 0, L_0x5578aaf2a8f0; 1 drivers +v0x5578aaf0cd10_0 .net *"_ivl_134", 0 0, L_0x5578aaf2abc0; 1 drivers +v0x5578aaf0cdf0_0 .net *"_ivl_135", 0 0, L_0x5578aaf2ad00; 1 drivers +v0x5578aaf0ced0_0 .net *"_ivl_138", 0 0, L_0x5578aaf2ae30; 1 drivers +v0x5578aaf0cfb0_0 .net *"_ivl_140", 0 0, L_0x5578aaf2b0c0; 1 drivers +v0x5578aaf0d090_0 .net *"_ivl_141", 0 0, L_0x5578aaf2b160; 1 drivers +v0x5578aaf0d170_0 .net *"_ivl_144", 0 0, L_0x5578aaf2b1d0; 1 drivers +v0x5578aaf0d250_0 .net *"_ivl_146", 0 0, L_0x5578aaf2b500; 1 drivers +v0x5578aaf0d330_0 .net *"_ivl_147", 0 0, L_0x5578aaf2b980; 1 drivers +v0x5578aaf0d410_0 .net *"_ivl_15", 0 0, L_0x5578aaf261c0; 1 drivers +v0x5578aaf0d4f0_0 .net *"_ivl_151", 0 0, L_0x5578aaf2bb10; 1 drivers +v0x5578aaf0d5d0_0 .net *"_ivl_153", 0 0, L_0x5578aaf2bc00; 1 drivers +v0x5578aaf0d6b0_0 .net *"_ivl_16", 0 0, L_0x5578aaf262f0; 1 drivers +v0x5578aaf0d790_0 .net *"_ivl_19", 0 0, L_0x5578aaf26360; 1 drivers +v0x5578aaf0d870_0 .net *"_ivl_21", 0 0, L_0x5578aaf26400; 1 drivers +v0x5578aaf0d950_0 .net *"_ivl_22", 0 0, L_0x5578aaf266d0; 1 drivers +v0x5578aaf0da30_0 .net *"_ivl_26", 0 0, L_0x5578aaf26790; 1 drivers +v0x5578aaf0db10_0 .net *"_ivl_28", 0 0, L_0x5578aaf26880; 1 drivers +v0x5578aaf0dbf0_0 .net *"_ivl_29", 0 0, L_0x5578aaf26920; 1 drivers +v0x5578aaf0dcd0_0 .net *"_ivl_32", 0 0, L_0x5578aaf26990; 1 drivers +v0x5578aaf0ddb0_0 .net *"_ivl_34", 0 0, L_0x5578aaf26b40; 1 drivers +v0x5578aaf0de90_0 .net *"_ivl_35", 0 0, L_0x5578aaf26c30; 1 drivers +v0x5578aaf0df70_0 .net *"_ivl_38", 0 0, L_0x5578aaf26ca0; 1 drivers +v0x5578aaf0e050_0 .net *"_ivl_4", 0 0, L_0x5578aaf25dd0; 1 drivers +v0x5578aaf0e130_0 .net *"_ivl_40", 0 0, L_0x5578aaf26e10; 1 drivers +v0x5578aaf0e210_0 .net *"_ivl_41", 0 0, L_0x5578aaf26ad0; 1 drivers +v0x5578aaf0e2f0_0 .net *"_ivl_44", 0 0, L_0x5578aaf26f90; 1 drivers +v0x5578aaf0e3d0_0 .net *"_ivl_46", 0 0, L_0x5578aaf27150; 1 drivers +v0x5578aaf0e4b0_0 .net *"_ivl_47", 0 0, L_0x5578aaf27420; 1 drivers +v0x5578aaf0e590_0 .net *"_ivl_51", 0 0, L_0x5578aaf27530; 1 drivers +v0x5578aaf0e670_0 .net *"_ivl_53", 0 0, L_0x5578aaf27620; 1 drivers +v0x5578aaf0e750_0 .net *"_ivl_54", 0 0, L_0x5578aaf277c0; 1 drivers +v0x5578aaf0e830_0 .net *"_ivl_57", 0 0, L_0x5578aaf27380; 1 drivers +v0x5578aaf0e910_0 .net *"_ivl_59", 0 0, L_0x5578aaf27880; 1 drivers +v0x5578aaf0e9f0_0 .net *"_ivl_60", 0 0, L_0x5578aaf27a30; 1 drivers +v0x5578aaf0ead0_0 .net *"_ivl_63", 0 0, L_0x5578aaf27aa0; 1 drivers +v0x5578aaf0ebb0_0 .net *"_ivl_65", 0 0, L_0x5578aaf27b40; 1 drivers +v0x5578aaf0ec90_0 .net *"_ivl_66", 0 0, L_0x5578aaf27d00; 1 drivers +v0x5578aaf0ed70_0 .net *"_ivl_69", 0 0, L_0x5578aaf27d70; 1 drivers +v0x5578aaf0ee50_0 .net *"_ivl_7", 0 0, L_0x5578aaf25e40; 1 drivers +v0x5578aaf0ef30_0 .net *"_ivl_71", 0 0, L_0x5578aaf27e10; 1 drivers +v0x5578aaf0f010_0 .net *"_ivl_72", 0 0, L_0x5578aaf28170; 1 drivers +v0x5578aaf0f0f0_0 .net *"_ivl_76", 0 0, L_0x5578aaf282a0; 1 drivers +v0x5578aaf0f5e0_0 .net *"_ivl_78", 0 0, L_0x5578aaf28590; 1 drivers +v0x5578aaf0f6c0_0 .net *"_ivl_79", 0 0, L_0x5578aaf28680; 1 drivers +v0x5578aaf0f7a0_0 .net *"_ivl_82", 0 0, L_0x5578aaf286f0; 1 drivers +v0x5578aaf0f880_0 .net *"_ivl_84", 0 0, L_0x5578aaf288e0; 1 drivers +v0x5578aaf0f960_0 .net *"_ivl_85", 0 0, L_0x5578aaf289d0; 1 drivers +v0x5578aaf0fa40_0 .net *"_ivl_88", 0 0, L_0x5578aaf28ac0; 1 drivers +v0x5578aaf0fb20_0 .net *"_ivl_9", 0 0, L_0x5578aaf25ee0; 1 drivers +v0x5578aaf0fc00_0 .net *"_ivl_90", 0 0, L_0x5578aaf28cc0; 1 drivers +v0x5578aaf0fce0_0 .net *"_ivl_91", 0 0, L_0x5578aaf28230; 1 drivers +v0x5578aaf0fdc0_0 .net *"_ivl_94", 0 0, L_0x5578aaf28db0; 1 drivers +v0x5578aaf0fea0_0 .net *"_ivl_96", 0 0, L_0x5578aaf28f70; 1 drivers +v0x5578aaf0ff80_0 .net *"_ivl_97", 0 0, L_0x5578aaf28e50; 1 drivers +v0x5578aaf10060_0 .net "aUtemp1", 3 0, L_0x5578aaf27fe0; 1 drivers +v0x5578aaf10140_0 .net "aUtemp2", 3 0, L_0x5578aaf29060; 1 drivers +v0x5578aaf10220_0 .net "add_Y", 3 0, L_0x5578aaf1e5f0; 1 drivers +v0x5578aaf102e0_0 .net "lUOutput1", 3 0, L_0x5578aaf26540; 1 drivers +v0x5578aaf103a0_0 .net "lUOutput2", 3 0, L_0x5578aaf271f0; 1 drivers +v0x5578aaf10480_0 .net "opCode8", 7 0, L_0x5578aaf12600; 1 drivers +v0x5578aaf10540_0 .net "opCodeA", 2 0, v0x5578aaf10fb0_0; 1 drivers +v0x5578aaf105e0_0 .net "overflow", 0 0, L_0x5578aaf1fac0; alias, 1 drivers +v0x5578aaf106b0_0 .net "resultA", 3 0, L_0x5578aaf22fc0; 1 drivers +v0x5578aaf10780_0 .net "resultO", 3 0, L_0x5578aaf241d0; 1 drivers +v0x5578aaf10850_0 .net "resultX", 3 0, L_0x5578aaf25430; 1 drivers +v0x5578aaf10920_0 .net "sub_Y", 3 0, L_0x5578aaf1f3b0; 1 drivers +v0x5578aaf109f0_0 .net "wireY", 3 0, L_0x5578aaf2a310; 1 drivers +L_0x5578aaf1fb90 .part L_0x5578aaf12600, 0, 2; +L_0x5578aaf25ca0 .part L_0x5578aaf12600, 4, 3; +L_0x5578aaf25e40 .part L_0x5578aaf22fc0, 0, 1; +L_0x5578aaf25ee0 .part L_0x5578aaf241d0, 0, 1; +L_0x5578aaf26040 .part L_0x5578aaf22fc0, 1, 1; +L_0x5578aaf261c0 .part L_0x5578aaf241d0, 1, 1; +L_0x5578aaf26360 .part L_0x5578aaf22fc0, 2, 1; +L_0x5578aaf26400 .part L_0x5578aaf241d0, 2, 1; +L_0x5578aaf26540 .concat8 [ 1 1 1 1], L_0x5578aaf25dd0, L_0x5578aaf25fd0, L_0x5578aaf262f0, L_0x5578aaf266d0; +L_0x5578aaf26790 .part L_0x5578aaf22fc0, 3, 1; +L_0x5578aaf26880 .part L_0x5578aaf241d0, 3, 1; +L_0x5578aaf26990 .part L_0x5578aaf26540, 0, 1; +L_0x5578aaf26b40 .part L_0x5578aaf25430, 0, 1; +L_0x5578aaf26ca0 .part L_0x5578aaf26540, 1, 1; +L_0x5578aaf26e10 .part L_0x5578aaf25430, 1, 1; +L_0x5578aaf26f90 .part L_0x5578aaf26540, 2, 1; +L_0x5578aaf27150 .part L_0x5578aaf25430, 2, 1; +L_0x5578aaf271f0 .concat8 [ 1 1 1 1], L_0x5578aaf26920, L_0x5578aaf26c30, L_0x5578aaf26ad0, L_0x5578aaf27420; +L_0x5578aaf27530 .part L_0x5578aaf26540, 3, 1; +L_0x5578aaf27620 .part L_0x5578aaf25430, 3, 1; +L_0x5578aaf27380 .part L_0x5578aaf12600, 0, 1; +L_0x5578aaf27880 .part L_0x5578aaf1e5f0, 0, 1; +L_0x5578aaf27aa0 .part L_0x5578aaf12600, 0, 1; +L_0x5578aaf27b40 .part L_0x5578aaf1e5f0, 1, 1; +L_0x5578aaf27d70 .part L_0x5578aaf12600, 0, 1; +L_0x5578aaf27e10 .part L_0x5578aaf1e5f0, 2, 1; +L_0x5578aaf27fe0 .concat8 [ 1 1 1 1], L_0x5578aaf277c0, L_0x5578aaf27a30, L_0x5578aaf27d00, L_0x5578aaf28170; +L_0x5578aaf282a0 .part L_0x5578aaf12600, 0, 1; +L_0x5578aaf28590 .part L_0x5578aaf1e5f0, 3, 1; +L_0x5578aaf286f0 .part L_0x5578aaf12600, 1, 1; +L_0x5578aaf288e0 .part L_0x5578aaf1f3b0, 0, 1; +L_0x5578aaf28ac0 .part L_0x5578aaf12600, 1, 1; +L_0x5578aaf28cc0 .part L_0x5578aaf1f3b0, 1, 1; +L_0x5578aaf28db0 .part L_0x5578aaf12600, 1, 1; +L_0x5578aaf28f70 .part L_0x5578aaf1f3b0, 2, 1; +L_0x5578aaf29060 .concat8 [ 1 1 1 1], L_0x5578aaf28680, L_0x5578aaf289d0, L_0x5578aaf28230, L_0x5578aaf28e50; +L_0x5578aaf293b0 .part L_0x5578aaf12600, 1, 1; +L_0x5578aaf29450 .part L_0x5578aaf1f3b0, 3, 1; +L_0x5578aaf296f0 .part L_0x5578aaf27fe0, 0, 1; +L_0x5578aaf29830 .part L_0x5578aaf29060, 0, 1; +L_0x5578aaf29bd0 .part L_0x5578aaf27fe0, 1, 1; +L_0x5578aaf29cc0 .part L_0x5578aaf29060, 1, 1; +L_0x5578aaf29f80 .part L_0x5578aaf27fe0, 2, 1; +L_0x5578aaf2a070 .part L_0x5578aaf29060, 2, 1; +L_0x5578aaf2a310 .concat8 [ 1 1 1 1], L_0x5578aaf29680, L_0x5578aaf29ac0, L_0x5578aaf29f10, L_0x5578aaf2a450; +L_0x5578aaf29b30 .part L_0x5578aaf27fe0, 3, 1; +L_0x5578aaf2a790 .part L_0x5578aaf29060, 3, 1; +L_0x5578aaf2a8f0 .part L_0x5578aaf271f0, 0, 1; +L_0x5578aaf2abc0 .part L_0x5578aaf2a310, 0, 1; +L_0x5578aaf2ae30 .part L_0x5578aaf271f0, 1, 1; +L_0x5578aaf2b0c0 .part L_0x5578aaf2a310, 1, 1; +L_0x5578aaf2b1d0 .part L_0x5578aaf271f0, 2, 1; +L_0x5578aaf2b500 .part L_0x5578aaf2a310, 2, 1; +L_0x5578aaf2b630 .concat8 [ 1 1 1 1], L_0x5578aaf2a880, L_0x5578aaf2ad00, L_0x5578aaf2b160, L_0x5578aaf2b980; +L_0x5578aaf2bb10 .part L_0x5578aaf271f0, 3, 1; +L_0x5578aaf2bc00 .part L_0x5578aaf2a310, 3, 1; +S_0x5578aae71d20 .scope module, "aU" "arithmeticUnit" 3 19, 4 1 0, S_0x5578aae7c060; + .timescale 0 0; + .port_info 0 /INPUT 2 "opCode"; + .port_info 1 /INPUT 4 "A"; + .port_info 2 /INPUT 4 "B"; + .port_info 3 /INPUT 1 "CarryIN"; + .port_info 4 /OUTPUT 4 "add_Y"; + .port_info 5 /OUTPUT 4 "sub_Y"; + .port_info 6 /OUTPUT 1 "CarryOUT"; + .port_info 7 /OUTPUT 1 "overflow"; +L_0x5578aaf1deb0 .functor AND 1, L_0x5578aaf1df20, L_0x5578aaf1e010, C4<1>, C4<1>; +L_0x5578aaf1e100 .functor AND 1, L_0x5578aaf1e170, L_0x5578aaf1e2b0, C4<1>, C4<1>; +L_0x5578aaf1e3a0 .functor AND 1, L_0x5578aaf1e410, L_0x5578aaf1e500, C4<1>, C4<1>; +L_0x5578aaf1e7d0 .functor AND 1, L_0x5578aaf1e890, L_0x5578aaf1ea60, C4<1>, C4<1>; +L_0x5578aaf1ec10 .functor AND 1, L_0x5578aaf1ec80, L_0x5578aaf1edd0, C4<1>, C4<1>; +L_0x5578aaf1ee70 .functor AND 1, L_0x5578aaf1eee0, L_0x5578aaf1f040, C4<1>, C4<1>; +L_0x5578aaf1f130 .functor AND 1, L_0x5578aaf1f1a0, L_0x5578aaf1f2c0, C4<1>, C4<1>; +L_0x5578aaf1efd0 .functor AND 1, L_0x5578aaf1f6c0, L_0x5578aaf1f8c0, C4<1>, C4<1>; +L_0x5578aaf1fa50 .functor OR 1, L_0x5578aaf14480, L_0x5578aaf1ac80, C4<0>, C4<0>; +L_0x5578aaf1fac0 .functor OR 1, L_0x5578aaf15a10, L_0x5578aaf1d300, C4<0>, C4<0>; +v0x5578aaf02a00_0 .net "A", 3 0, v0x5578aaf10bb0_0; alias, 1 drivers +v0x5578aaf02ae0_0 .net "B", 3 0, v0x5578aaf10c90_0; alias, 1 drivers +v0x5578aaf02c30_0 .net "CarryIN", 0 0, v0x5578aaf10d50_0; alias, 1 drivers +v0x5578aaf02cd0_0 .net "CarryOUT", 0 0, L_0x5578aaf1fa50; alias, 1 drivers +v0x5578aaf02d70_0 .net "CarryOUTADD", 0 0, L_0x5578aaf14480; 1 drivers +v0x5578aaf02e10_0 .net "CarryOUTSUB", 0 0, L_0x5578aaf1ac80; 1 drivers +v0x5578aaf02eb0_0 .net *"_ivl_0", 0 0, L_0x5578aaf1deb0; 1 drivers +v0x5578aaf02f90_0 .net *"_ivl_11", 0 0, L_0x5578aaf1e2b0; 1 drivers +v0x5578aaf03070_0 .net *"_ivl_12", 0 0, L_0x5578aaf1e3a0; 1 drivers +v0x5578aaf031e0_0 .net *"_ivl_15", 0 0, L_0x5578aaf1e410; 1 drivers +v0x5578aaf032c0_0 .net *"_ivl_17", 0 0, L_0x5578aaf1e500; 1 drivers +v0x5578aaf033a0_0 .net *"_ivl_18", 0 0, L_0x5578aaf1e7d0; 1 drivers +v0x5578aaf03480_0 .net *"_ivl_22", 0 0, L_0x5578aaf1e890; 1 drivers +v0x5578aaf03560_0 .net *"_ivl_24", 0 0, L_0x5578aaf1ea60; 1 drivers +v0x5578aaf03640_0 .net *"_ivl_25", 0 0, L_0x5578aaf1ec10; 1 drivers +v0x5578aaf03720_0 .net *"_ivl_28", 0 0, L_0x5578aaf1ec80; 1 drivers +v0x5578aaf03800_0 .net *"_ivl_3", 0 0, L_0x5578aaf1df20; 1 drivers +v0x5578aaf039f0_0 .net *"_ivl_30", 0 0, L_0x5578aaf1edd0; 1 drivers +v0x5578aaf03ad0_0 .net *"_ivl_31", 0 0, L_0x5578aaf1ee70; 1 drivers +v0x5578aaf03bb0_0 .net *"_ivl_34", 0 0, L_0x5578aaf1eee0; 1 drivers +v0x5578aaf03c90_0 .net *"_ivl_36", 0 0, L_0x5578aaf1f040; 1 drivers +v0x5578aaf03d70_0 .net *"_ivl_37", 0 0, L_0x5578aaf1f130; 1 drivers +v0x5578aaf03e50_0 .net *"_ivl_40", 0 0, L_0x5578aaf1f1a0; 1 drivers +v0x5578aaf03f30_0 .net *"_ivl_42", 0 0, L_0x5578aaf1f2c0; 1 drivers +v0x5578aaf04010_0 .net *"_ivl_43", 0 0, L_0x5578aaf1efd0; 1 drivers +v0x5578aaf040f0_0 .net *"_ivl_47", 0 0, L_0x5578aaf1f6c0; 1 drivers +v0x5578aaf041d0_0 .net *"_ivl_49", 0 0, L_0x5578aaf1f8c0; 1 drivers +v0x5578aaf042b0_0 .net *"_ivl_5", 0 0, L_0x5578aaf1e010; 1 drivers +v0x5578aaf04390_0 .net *"_ivl_6", 0 0, L_0x5578aaf1e100; 1 drivers +v0x5578aaf04470_0 .net *"_ivl_9", 0 0, L_0x5578aaf1e170; 1 drivers +v0x5578aaf04550_0 .net "addY", 3 0, L_0x5578aaf149b0; 1 drivers +v0x5578aaf04610_0 .net "add_Y", 3 0, L_0x5578aaf1e5f0; alias, 1 drivers +v0x5578aaf046f0_0 .net "opCode", 1 0, L_0x5578aaf1fb90; 1 drivers +v0x5578aaf047d0_0 .net "overflow", 0 0, L_0x5578aaf1fac0; alias, 1 drivers +v0x5578aaf04890_0 .net "overflowADD", 0 0, L_0x5578aaf15a10; 1 drivers +v0x5578aaf04930_0 .net "overflowSUB", 0 0, L_0x5578aaf1d300; 1 drivers +v0x5578aaf049d0_0 .net "subY", 3 0, L_0x5578aaf1dac0; 1 drivers +v0x5578aaf04a90_0 .net "sub_Y", 3 0, L_0x5578aaf1f3b0; alias, 1 drivers +L_0x5578aaf1df20 .part L_0x5578aaf1fb90, 0, 1; +L_0x5578aaf1e010 .part L_0x5578aaf149b0, 0, 1; +L_0x5578aaf1e170 .part L_0x5578aaf1fb90, 0, 1; +L_0x5578aaf1e2b0 .part L_0x5578aaf149b0, 1, 1; +L_0x5578aaf1e410 .part L_0x5578aaf1fb90, 0, 1; +L_0x5578aaf1e500 .part L_0x5578aaf149b0, 2, 1; +L_0x5578aaf1e5f0 .concat8 [ 1 1 1 1], L_0x5578aaf1deb0, L_0x5578aaf1e100, L_0x5578aaf1e3a0, L_0x5578aaf1e7d0; +L_0x5578aaf1e890 .part L_0x5578aaf1fb90, 0, 1; +L_0x5578aaf1ea60 .part L_0x5578aaf149b0, 3, 1; +L_0x5578aaf1ec80 .part L_0x5578aaf1fb90, 1, 1; +L_0x5578aaf1edd0 .part L_0x5578aaf1dac0, 0, 1; +L_0x5578aaf1eee0 .part L_0x5578aaf1fb90, 1, 1; +L_0x5578aaf1f040 .part L_0x5578aaf1dac0, 1, 1; +L_0x5578aaf1f1a0 .part L_0x5578aaf1fb90, 1, 1; +L_0x5578aaf1f2c0 .part L_0x5578aaf1dac0, 2, 1; +L_0x5578aaf1f3b0 .concat8 [ 1 1 1 1], L_0x5578aaf1ec10, L_0x5578aaf1ee70, L_0x5578aaf1f130, L_0x5578aaf1efd0; +L_0x5578aaf1f6c0 .part L_0x5578aaf1fb90, 1, 1; +L_0x5578aaf1f8c0 .part L_0x5578aaf1dac0, 3, 1; +S_0x5578aae9e6e0 .scope module, "a1" "addition" 4 13, 5 1 0, S_0x5578aae71d20; + .timescale 0 0; + .port_info 0 /INPUT 4 "A"; + .port_info 1 /INPUT 4 "B"; + .port_info 2 /INPUT 1 "CarryIN"; + .port_info 3 /OUTPUT 4 "Y"; + .port_info 4 /OUTPUT 1 "CarryOUT"; + .port_info 5 /OUTPUT 1 "overflow"; +v0x5578aaeefe70_0 .net "A", 3 0, v0x5578aaf10bb0_0; alias, 1 drivers +v0x5578aaeeff50_0 .net "B", 3 0, v0x5578aaf10c90_0; alias, 1 drivers +v0x5578aaef0020_0 .net "Carry4", 3 0, L_0x5578aaf2bec0; 1 drivers +v0x5578aaef00f0_0 .net "CarryIN", 0 0, v0x5578aaf10d50_0; alias, 1 drivers +v0x5578aaef0190_0 .net "CarryOUT", 0 0, L_0x5578aaf14480; alias, 1 drivers +v0x5578aaef02d0_0 .net "Y", 3 0, L_0x5578aaf149b0; alias, 1 drivers +o0x7f2137f2a578 .functor BUFZ 1, C4; HiZ drive +; Elide local net with no drivers, v0x5578aaef0390_0 name=_ivl_41 +v0x5578aaef0450_0 .net "overflow", 0 0, L_0x5578aaf15a10; alias, 1 drivers +L_0x5578aaf12e90 .part v0x5578aaf10bb0_0, 0, 1; +L_0x5578aaf12f30 .part v0x5578aaf10c90_0, 0, 1; +L_0x5578aaf134d0 .part v0x5578aaf10bb0_0, 1, 1; +L_0x5578aaf13600 .part v0x5578aaf10c90_0, 1, 1; +L_0x5578aaf13730 .part L_0x5578aaf2bec0, 0, 1; +L_0x5578aaf13c60 .part v0x5578aaf10bb0_0, 2, 1; +L_0x5578aaf13dd0 .part v0x5578aaf10c90_0, 2, 1; +L_0x5578aaf13f00 .part L_0x5578aaf2bec0, 1, 1; +L_0x5578aaf145c0 .part v0x5578aaf10bb0_0, 3, 1; +L_0x5578aaf146f0 .part v0x5578aaf10c90_0, 3, 1; +L_0x5578aaf14880 .part L_0x5578aaf2bec0, 2, 1; +L_0x5578aaf149b0 .concat8 [ 1 1 1 1], L_0x5578aaf12db0, L_0x5578aaf13360, L_0x5578aaf13af0, L_0x5578aaf143a0; +L_0x5578aaf2bec0 .concat [ 1 1 1 1], L_0x5578aaf12e20, L_0x5578aaf13440, L_0x5578aaf13bd0, o0x7f2137f2a578; +S_0x5578aae9cc40 .scope module, "f0" "fulladder" 5 11, 6 1 0, S_0x5578aae9e6e0; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /INPUT 1 "Carry"; + .port_info 3 /OUTPUT 1 "Sum"; + .port_info 4 /OUTPUT 1 "CarryO"; +L_0x5578aaf12e20 .functor OR 1, L_0x5578aaf12b20, L_0x5578aaf12cf0, C4<0>, C4<0>; +v0x5578aaeea350_0 .net "A", 0 0, L_0x5578aaf12e90; 1 drivers +v0x5578aaeea410_0 .net "B", 0 0, L_0x5578aaf12f30; 1 drivers +v0x5578aaeea4e0_0 .net "Carry", 0 0, v0x5578aaf10d50_0; alias, 1 drivers +v0x5578aaeea5e0_0 .net "CarryO", 0 0, L_0x5578aaf12e20; 1 drivers +v0x5578aaeea680_0 .net "Sum", 0 0, L_0x5578aaf12db0; 1 drivers +v0x5578aaeea770_0 .net "and1", 0 0, L_0x5578aaf12b20; 1 drivers +v0x5578aaeea840_0 .net "and2", 0 0, L_0x5578aaf12cf0; 1 drivers +v0x5578aaeea910_0 .net "xor1", 0 0, L_0x5578aaf12c80; 1 drivers +S_0x5578aae960c0 .scope module, "h1" "halfadder" 6 8, 7 1 0, S_0x5578aae9cc40; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /OUTPUT 1 "Sum"; + .port_info 3 /OUTPUT 1 "Carry"; +L_0x5578aaf12b20 .functor AND 1, L_0x5578aaf12e90, L_0x5578aaf12f30, C4<1>, C4<1>; +L_0x5578aaf12c80 .functor XOR 1, L_0x5578aaf12e90, L_0x5578aaf12f30, C4<0>, C4<0>; +v0x5578aae9d270_0 .net "A", 0 0, L_0x5578aaf12e90; alias, 1 drivers +v0x5578aae9b7a0_0 .net "B", 0 0, L_0x5578aaf12f30; alias, 1 drivers +v0x5578aae931b0_0 .net "Carry", 0 0, L_0x5578aaf12b20; alias, 1 drivers +v0x5578aae916e0_0 .net "Sum", 0 0, L_0x5578aaf12c80; alias, 1 drivers +S_0x5578aaee9f60 .scope module, "h2" "halfadder" 6 9, 7 1 0, S_0x5578aae9cc40; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /OUTPUT 1 "Sum"; + .port_info 3 /OUTPUT 1 "Carry"; +L_0x5578aaf12cf0 .functor AND 1, L_0x5578aaf12c80, v0x5578aaf10d50_0, C4<1>, C4<1>; +L_0x5578aaf12db0 .functor XOR 1, L_0x5578aaf12c80, v0x5578aaf10d50_0, C4<0>, C4<0>; +v0x5578aae87830_0 .net "A", 0 0, L_0x5578aaf12c80; alias, 1 drivers +v0x5578aae85e50_0 .net "B", 0 0, v0x5578aaf10d50_0; alias, 1 drivers +v0x5578aaeea110_0 .net "Carry", 0 0, L_0x5578aaf12cf0; alias, 1 drivers +v0x5578aaeea1e0_0 .net "Sum", 0 0, L_0x5578aaf12db0; alias, 1 drivers +S_0x5578aaeeaa00 .scope module, "f1" "fulladder" 5 12, 6 1 0, S_0x5578aae9e6e0; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /INPUT 1 "Carry"; + .port_info 3 /OUTPUT 1 "Sum"; + .port_info 4 /OUTPUT 1 "CarryO"; +L_0x5578aaf13440 .functor OR 1, L_0x5578aaf13170, L_0x5578aaf132a0, C4<0>, C4<0>; +v0x5578aaeeb780_0 .net "A", 0 0, L_0x5578aaf134d0; 1 drivers +v0x5578aaeeb840_0 .net "B", 0 0, L_0x5578aaf13600; 1 drivers +v0x5578aaeeb910_0 .net "Carry", 0 0, L_0x5578aaf13730; 1 drivers +v0x5578aaeeba10_0 .net "CarryO", 0 0, L_0x5578aaf13440; 1 drivers +v0x5578aaeebab0_0 .net "Sum", 0 0, L_0x5578aaf13360; 1 drivers +v0x5578aaeebba0_0 .net "and1", 0 0, L_0x5578aaf13170; 1 drivers +v0x5578aaeebc70_0 .net "and2", 0 0, L_0x5578aaf132a0; 1 drivers +v0x5578aaeebd40_0 .net "xor1", 0 0, L_0x5578aaf13230; 1 drivers +S_0x5578aaeeabe0 .scope module, "h1" "halfadder" 6 8, 7 1 0, S_0x5578aaeeaa00; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /OUTPUT 1 "Sum"; + .port_info 3 /OUTPUT 1 "Carry"; +L_0x5578aaf13170 .functor AND 1, L_0x5578aaf134d0, L_0x5578aaf13600, C4<1>, C4<1>; +L_0x5578aaf13230 .functor XOR 1, L_0x5578aaf134d0, L_0x5578aaf13600, C4<0>, C4<0>; +v0x5578aaeeadf0_0 .net "A", 0 0, L_0x5578aaf134d0; alias, 1 drivers +v0x5578aaeeaed0_0 .net "B", 0 0, L_0x5578aaf13600; alias, 1 drivers +v0x5578aaeeaf90_0 .net "Carry", 0 0, L_0x5578aaf13170; alias, 1 drivers +v0x5578aaeeb060_0 .net "Sum", 0 0, L_0x5578aaf13230; alias, 1 drivers +S_0x5578aaeeb1d0 .scope module, "h2" "halfadder" 6 9, 7 1 0, S_0x5578aaeeaa00; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /OUTPUT 1 "Sum"; + .port_info 3 /OUTPUT 1 "Carry"; +L_0x5578aaf132a0 .functor AND 1, L_0x5578aaf13230, L_0x5578aaf13730, C4<1>, C4<1>; +L_0x5578aaf13360 .functor XOR 1, L_0x5578aaf13230, L_0x5578aaf13730, C4<0>, C4<0>; +v0x5578aaeeb3d0_0 .net "A", 0 0, L_0x5578aaf13230; alias, 1 drivers +v0x5578aaeeb4a0_0 .net "B", 0 0, L_0x5578aaf13730; alias, 1 drivers +v0x5578aaeeb540_0 .net "Carry", 0 0, L_0x5578aaf132a0; alias, 1 drivers +v0x5578aaeeb610_0 .net "Sum", 0 0, L_0x5578aaf13360; alias, 1 drivers +S_0x5578aaeebe30 .scope module, "f2" "fulladder" 5 13, 6 1 0, S_0x5578aae9e6e0; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /INPUT 1 "Carry"; + .port_info 3 /OUTPUT 1 "Sum"; + .port_info 4 /OUTPUT 1 "CarryO"; +L_0x5578aaf13bd0 .functor OR 1, L_0x5578aaf13860, L_0x5578aaf13960, C4<0>, C4<0>; +v0x5578aaeecbc0_0 .net "A", 0 0, L_0x5578aaf13c60; 1 drivers +v0x5578aaeecc80_0 .net "B", 0 0, L_0x5578aaf13dd0; 1 drivers +v0x5578aaeecd50_0 .net "Carry", 0 0, L_0x5578aaf13f00; 1 drivers +v0x5578aaeece50_0 .net "CarryO", 0 0, L_0x5578aaf13bd0; 1 drivers +v0x5578aaeecef0_0 .net "Sum", 0 0, L_0x5578aaf13af0; 1 drivers +v0x5578aaeecfe0_0 .net "and1", 0 0, L_0x5578aaf13860; 1 drivers +v0x5578aaeed0b0_0 .net "and2", 0 0, L_0x5578aaf13960; 1 drivers +v0x5578aaeed180_0 .net "xor1", 0 0, L_0x5578aaf138d0; 1 drivers +S_0x5578aaeec040 .scope module, "h1" "halfadder" 6 8, 7 1 0, S_0x5578aaeebe30; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /OUTPUT 1 "Sum"; + .port_info 3 /OUTPUT 1 "Carry"; +L_0x5578aaf13860 .functor AND 1, L_0x5578aaf13c60, L_0x5578aaf13dd0, C4<1>, C4<1>; +L_0x5578aaf138d0 .functor XOR 1, L_0x5578aaf13c60, L_0x5578aaf13dd0, C4<0>, C4<0>; +v0x5578aaeec250_0 .net "A", 0 0, L_0x5578aaf13c60; alias, 1 drivers +v0x5578aaeec310_0 .net "B", 0 0, L_0x5578aaf13dd0; alias, 1 drivers +v0x5578aaeec3d0_0 .net "Carry", 0 0, L_0x5578aaf13860; alias, 1 drivers +v0x5578aaeec4a0_0 .net "Sum", 0 0, L_0x5578aaf138d0; alias, 1 drivers +S_0x5578aaeec610 .scope module, "h2" "halfadder" 6 9, 7 1 0, S_0x5578aaeebe30; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /OUTPUT 1 "Sum"; + .port_info 3 /OUTPUT 1 "Carry"; +L_0x5578aaf13960 .functor AND 1, L_0x5578aaf138d0, L_0x5578aaf13f00, C4<1>, C4<1>; +L_0x5578aaf13af0 .functor XOR 1, L_0x5578aaf138d0, L_0x5578aaf13f00, C4<0>, C4<0>; +v0x5578aaeec810_0 .net "A", 0 0, L_0x5578aaf138d0; alias, 1 drivers +v0x5578aaeec8e0_0 .net "B", 0 0, L_0x5578aaf13f00; alias, 1 drivers +v0x5578aaeec980_0 .net "Carry", 0 0, L_0x5578aaf13960; alias, 1 drivers +v0x5578aaeeca50_0 .net "Sum", 0 0, L_0x5578aaf13af0; alias, 1 drivers +S_0x5578aaeed270 .scope module, "f3" "fulladder" 5 14, 6 1 0, S_0x5578aae9e6e0; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /INPUT 1 "Carry"; + .port_info 3 /OUTPUT 1 "Sum"; + .port_info 4 /OUTPUT 1 "CarryO"; +L_0x5578aaf14480 .functor OR 1, L_0x5578aaf14080, L_0x5578aaf14210, C4<0>, C4<0>; +v0x5578aaeedff0_0 .net "A", 0 0, L_0x5578aaf145c0; 1 drivers +v0x5578aaeee0b0_0 .net "B", 0 0, L_0x5578aaf146f0; 1 drivers +v0x5578aaeee180_0 .net "Carry", 0 0, L_0x5578aaf14880; 1 drivers +v0x5578aaeee280_0 .net "CarryO", 0 0, L_0x5578aaf14480; alias, 1 drivers +v0x5578aaeee320_0 .net "Sum", 0 0, L_0x5578aaf143a0; 1 drivers +v0x5578aaeee410_0 .net "and1", 0 0, L_0x5578aaf14080; 1 drivers +v0x5578aaeee4e0_0 .net "and2", 0 0, L_0x5578aaf14210; 1 drivers +v0x5578aaeee5b0_0 .net "xor1", 0 0, L_0x5578aaf14180; 1 drivers +S_0x5578aaeed450 .scope module, "h1" "halfadder" 6 8, 7 1 0, S_0x5578aaeed270; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /OUTPUT 1 "Sum"; + .port_info 3 /OUTPUT 1 "Carry"; +L_0x5578aaf14080 .functor AND 1, L_0x5578aaf145c0, L_0x5578aaf146f0, C4<1>, C4<1>; +L_0x5578aaf14180 .functor XOR 1, L_0x5578aaf145c0, L_0x5578aaf146f0, C4<0>, C4<0>; +v0x5578aaeed660_0 .net "A", 0 0, L_0x5578aaf145c0; alias, 1 drivers +v0x5578aaeed740_0 .net "B", 0 0, L_0x5578aaf146f0; alias, 1 drivers +v0x5578aaeed800_0 .net "Carry", 0 0, L_0x5578aaf14080; alias, 1 drivers +v0x5578aaeed8d0_0 .net "Sum", 0 0, L_0x5578aaf14180; alias, 1 drivers +S_0x5578aaeeda40 .scope module, "h2" "halfadder" 6 9, 7 1 0, S_0x5578aaeed270; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /OUTPUT 1 "Sum"; + .port_info 3 /OUTPUT 1 "Carry"; +L_0x5578aaf14210 .functor AND 1, L_0x5578aaf14180, L_0x5578aaf14880, C4<1>, C4<1>; +L_0x5578aaf143a0 .functor XOR 1, L_0x5578aaf14180, L_0x5578aaf14880, C4<0>, C4<0>; +v0x5578aaeedc40_0 .net "A", 0 0, L_0x5578aaf14180; alias, 1 drivers +v0x5578aaeedd10_0 .net "B", 0 0, L_0x5578aaf14880; alias, 1 drivers +v0x5578aaeeddb0_0 .net "Carry", 0 0, L_0x5578aaf14210; alias, 1 drivers +v0x5578aaeede80_0 .net "Sum", 0 0, L_0x5578aaf143a0; alias, 1 drivers +S_0x5578aaeee6a0 .scope module, "od1" "overflowDetect" 5 17, 8 1 0, S_0x5578aae9e6e0; + .timescale 0 0; + .port_info 0 /INPUT 2 "opCode"; + .port_info 1 /INPUT 4 "A"; + .port_info 2 /INPUT 4 "B"; + .port_info 3 /INPUT 4 "Y"; + .port_info 4 /INPUT 1 "CarryOUT"; + .port_info 5 /OUTPUT 1 "overflowDetect"; +L_0x5578aaf14ac0 .functor OR 1, L_0x5578aaf14b50, L_0x5578aaf14bf0, C4<0>, C4<0>; +L_0x5578aaf14c90 .functor XNOR 1, L_0x5578aaf14d00, L_0x5578aaf14da0, C4<0>, C4<0>; +L_0x5578aaf14e40 .functor XOR 1, L_0x5578aaf14eb0, L_0x5578aaf14fa0, C4<0>, C4<0>; +L_0x5578aaf150d0 .functor XOR 1, L_0x5578aaf15140, L_0x5578aaf152c0, C4<0>, C4<0>; +L_0x5578aaf153b0 .functor AND 1, L_0x5578aaf14c90, L_0x5578aaf15470, C4<1>, C4<1>; +L_0x5578aaf15560 .functor AND 1, L_0x5578aaf14e40, L_0x5578aaf15660, C4<1>, C4<1>; +L_0x5578aaf15840 .functor OR 1, L_0x5578aaf153b0, L_0x5578aaf15560, C4<0>, C4<0>; +L_0x5578aaf158b0 .functor AND 1, L_0x5578aaf15840, L_0x5578aaf150d0, C4<1>, C4<1>; +L_0x5578aaf15a10 .functor AND 1, L_0x5578aaf14ac0, L_0x5578aaf158b0, C4<1>, C4<1>; +v0x5578aaeee970_0 .net "A", 3 0, v0x5578aaf10bb0_0; alias, 1 drivers +v0x5578aaeeea50_0 .net "B", 3 0, v0x5578aaf10c90_0; alias, 1 drivers +v0x5578aaeeeb30_0 .net "CarryOUT", 0 0, L_0x5578aaf14480; alias, 1 drivers +v0x5578aaeeebd0_0 .net "Y", 3 0, L_0x5578aaf149b0; alias, 1 drivers +v0x5578aaeeec70_0 .net *"_ivl_1", 0 0, L_0x5578aaf14b50; 1 drivers +v0x5578aaeeeda0_0 .net *"_ivl_11", 0 0, L_0x5578aaf14fa0; 1 drivers +v0x5578aaeeee80_0 .net *"_ivl_13", 0 0, L_0x5578aaf15140; 1 drivers +v0x5578aaeeef60_0 .net *"_ivl_15", 0 0, L_0x5578aaf152c0; 1 drivers +v0x5578aaeef040_0 .net *"_ivl_17", 0 0, L_0x5578aaf15470; 1 drivers +v0x5578aaeef1b0_0 .net *"_ivl_19", 0 0, L_0x5578aaf15660; 1 drivers +v0x5578aaeef290_0 .net *"_ivl_3", 0 0, L_0x5578aaf14bf0; 1 drivers +v0x5578aaeef370_0 .net *"_ivl_5", 0 0, L_0x5578aaf14d00; 1 drivers +v0x5578aaeef450_0 .net *"_ivl_7", 0 0, L_0x5578aaf14da0; 1 drivers +v0x5578aaeef530_0 .net *"_ivl_9", 0 0, L_0x5578aaf14eb0; 1 drivers +v0x5578aaeef610_0 .net "addOverflow", 0 0, L_0x5578aaf153b0; 1 drivers +v0x5578aaeef6d0_0 .net "detect1", 0 0, L_0x5578aaf15840; 1 drivers +v0x5578aaeef790_0 .net "detect2", 0 0, L_0x5578aaf158b0; 1 drivers +v0x5578aaeef850_0 .net "opC", 0 0, L_0x5578aaf14ac0; 1 drivers +L_0x7f2137ee0018 .functor BUFT 1, C4<01>, C4<0>, C4<0>, C4<0>; +v0x5578aaeef910_0 .net "opCode", 1 0, L_0x7f2137ee0018; 1 drivers +v0x5578aaeef9f0_0 .net "overflowDetect", 0 0, L_0x5578aaf15a10; alias, 1 drivers +v0x5578aaeefab0_0 .net "sign1", 0 0, L_0x5578aaf14c90; 1 drivers +v0x5578aaeefb70_0 .net "sign2", 0 0, L_0x5578aaf150d0; 1 drivers +v0x5578aaeefc30_0 .net "sign3", 0 0, L_0x5578aaf14e40; 1 drivers +v0x5578aaeefcf0_0 .net "subOverflow", 0 0, L_0x5578aaf15560; 1 drivers +L_0x5578aaf14b50 .part L_0x7f2137ee0018, 0, 1; +L_0x5578aaf14bf0 .part L_0x7f2137ee0018, 1, 1; +L_0x5578aaf14d00 .part v0x5578aaf10bb0_0, 3, 1; +L_0x5578aaf14da0 .part v0x5578aaf10c90_0, 3, 1; +L_0x5578aaf14eb0 .part v0x5578aaf10bb0_0, 3, 1; +L_0x5578aaf14fa0 .part v0x5578aaf10c90_0, 3, 1; +L_0x5578aaf15140 .part L_0x5578aaf149b0, 3, 1; +L_0x5578aaf152c0 .part v0x5578aaf10bb0_0, 3, 1; +L_0x5578aaf15470 .part L_0x7f2137ee0018, 0, 1; +L_0x5578aaf15660 .part L_0x7f2137ee0018, 1, 1; +S_0x5578aaef0590 .scope module, "s1" "subtraction" 4 14, 9 1 0, S_0x5578aae71d20; + .timescale 0 0; + .port_info 0 /INPUT 4 "A"; + .port_info 1 /INPUT 4 "B"; + .port_info 2 /INPUT 1 "CarryIN"; + .port_info 3 /OUTPUT 4 "Y"; + .port_info 4 /OUTPUT 1 "CarryOUT"; + .port_info 5 /OUTPUT 1 "overflow"; +L_0x5578aaf15b20 .functor NOT 1, L_0x5578aaf15b90, C4<0>, C4<0>, C4<0>; +L_0x5578aaf15c30 .functor NOT 1, L_0x5578aaf15ca0, C4<0>, C4<0>, C4<0>; +L_0x5578aaf15d40 .functor NOT 1, L_0x5578aaf15db0, C4<0>, C4<0>, C4<0>; +L_0x5578aaf161f0 .functor NOT 1, L_0x5578aaf162b0, C4<0>, C4<0>, C4<0>; +L_0x7f2137ee01c8 .functor BUFT 1, C4<0>, C4<0>, C4<0>, C4<0>; +L_0x5578aaf1d410 .functor OR 1, L_0x5578aaf1d480, L_0x7f2137ee01c8, C4<0>, C4<0>; +L_0x7f2137ee0210 .functor BUFT 1, C4<0>, C4<0>, C4<0>, C4<0>; +L_0x5578aaf1d5c0 .functor OR 1, L_0x5578aaf1d670, L_0x7f2137ee0210, C4<0>, C4<0>; +L_0x7f2137ee0258 .functor BUFT 1, C4<0>, C4<0>, C4<0>, C4<0>; +L_0x5578aaf1d8c0 .functor OR 1, L_0x5578aaf1d930, L_0x7f2137ee0258, C4<0>, C4<0>; +L_0x7f2137ee02a0 .functor BUFT 1, C4<0>, C4<0>, C4<0>, C4<0>; +L_0x5578aaf1dc50 .functor OR 1, L_0x5578aaf1dd60, L_0x7f2137ee02a0, C4<0>, C4<0>; +v0x5578aaf00fc0_0 .net "A", 3 0, v0x5578aaf10bb0_0; alias, 1 drivers +v0x5578aaf010a0_0 .net "B", 3 0, v0x5578aaf10c90_0; alias, 1 drivers +v0x5578aaf01160_0 .net "CarryIN", 0 0, v0x5578aaf10d50_0; alias, 1 drivers +v0x5578aaf01200_0 .net "CarryOUT", 0 0, L_0x5578aaf1ac80; alias, 1 drivers +v0x5578aaf012a0_0 .net "Y", 3 0, L_0x5578aaf1dac0; alias, 1 drivers +v0x5578aaf01360_0 .net "Y1", 3 0, L_0x5578aaf1b120; 1 drivers +v0x5578aaf01420_0 .net *"_ivl_0", 0 0, L_0x5578aaf15b20; 1 drivers +v0x5578aaf01500_0 .net *"_ivl_11", 0 0, L_0x5578aaf15db0; 1 drivers +v0x5578aaf015e0_0 .net *"_ivl_12", 0 0, L_0x5578aaf161f0; 1 drivers +v0x5578aaf01750_0 .net *"_ivl_16", 0 0, L_0x5578aaf162b0; 1 drivers +v0x5578aaf01830_0 .net *"_ivl_23", 0 0, L_0x5578aaf1d410; 1 drivers +v0x5578aaf01910_0 .net *"_ivl_26", 0 0, L_0x5578aaf1d480; 1 drivers +v0x5578aaf019f0_0 .net/2u *"_ivl_27", 0 0, L_0x7f2137ee01c8; 1 drivers +v0x5578aaf01ad0_0 .net *"_ivl_29", 0 0, L_0x5578aaf1d5c0; 1 drivers +v0x5578aaf01bb0_0 .net *"_ivl_3", 0 0, L_0x5578aaf15b90; 1 drivers +v0x5578aaf01c90_0 .net *"_ivl_32", 0 0, L_0x5578aaf1d670; 1 drivers +v0x5578aaf01d70_0 .net/2u *"_ivl_33", 0 0, L_0x7f2137ee0210; 1 drivers +v0x5578aaf01f60_0 .net *"_ivl_35", 0 0, L_0x5578aaf1d8c0; 1 drivers +v0x5578aaf02040_0 .net *"_ivl_38", 0 0, L_0x5578aaf1d930; 1 drivers +v0x5578aaf02120_0 .net/2u *"_ivl_39", 0 0, L_0x7f2137ee0258; 1 drivers +v0x5578aaf02200_0 .net *"_ivl_4", 0 0, L_0x5578aaf15c30; 1 drivers +v0x5578aaf022e0_0 .net *"_ivl_41", 0 0, L_0x5578aaf1dc50; 1 drivers +v0x5578aaf023c0_0 .net *"_ivl_45", 0 0, L_0x5578aaf1dd60; 1 drivers +v0x5578aaf024a0_0 .net/2u *"_ivl_46", 0 0, L_0x7f2137ee02a0; 1 drivers +v0x5578aaf02580_0 .net *"_ivl_7", 0 0, L_0x5578aaf15ca0; 1 drivers +v0x5578aaf02660_0 .net *"_ivl_8", 0 0, L_0x5578aaf15d40; 1 drivers +v0x5578aaf02740_0 .net "notB", 3 0, L_0x5578aaf181b0; 1 drivers +v0x5578aaf02800_0 .net "overflow", 0 0, L_0x5578aaf1d300; alias, 1 drivers +v0x5578aaf028a0_0 .net "xB", 3 0, L_0x5578aaf16060; 1 drivers +L_0x5578aaf15b90 .part v0x5578aaf10c90_0, 0, 1; +L_0x5578aaf15ca0 .part v0x5578aaf10c90_0, 1, 1; +L_0x5578aaf15db0 .part v0x5578aaf10c90_0, 2, 1; +L_0x5578aaf16060 .concat8 [ 1 1 1 1], L_0x5578aaf15b20, L_0x5578aaf15c30, L_0x5578aaf15d40, L_0x5578aaf161f0; +L_0x5578aaf162b0 .part v0x5578aaf10c90_0, 3, 1; +L_0x5578aaf1d480 .part L_0x5578aaf1b120, 0, 1; +L_0x5578aaf1d670 .part L_0x5578aaf1b120, 1, 1; +L_0x5578aaf1d930 .part L_0x5578aaf1b120, 2, 1; +L_0x5578aaf1dac0 .concat8 [ 1 1 1 1], L_0x5578aaf1d410, L_0x5578aaf1d5c0, L_0x5578aaf1d8c0, L_0x5578aaf1dc50; +L_0x5578aaf1dd60 .part L_0x5578aaf1b120, 3, 1; +S_0x5578aaef0830 .scope module, "a1" "addition" 9 18, 5 1 0, S_0x5578aaef0590; + .timescale 0 0; + .port_info 0 /INPUT 4 "A"; + .port_info 1 /INPUT 4 "B"; + .port_info 2 /INPUT 1 "CarryIN"; + .port_info 3 /OUTPUT 4 "Y"; + .port_info 4 /OUTPUT 1 "CarryOUT"; + .port_info 5 /OUTPUT 1 "overflow"; +v0x5578aaef76c0_0 .net "A", 3 0, L_0x5578aaf16060; alias, 1 drivers +L_0x7f2137ee00a8 .functor BUFT 1, C4<0001>, C4<0>, C4<0>, C4<0>; +v0x5578aaef77a0_0 .net "B", 3 0, L_0x7f2137ee00a8; 1 drivers +v0x5578aaef7870_0 .net "Carry4", 3 0, L_0x5578aaf2c090; 1 drivers +L_0x7f2137ee00f0 .functor BUFT 1, C4<0>, C4<0>, C4<0>, C4<0>; +v0x5578aaef7940_0 .net "CarryIN", 0 0, L_0x7f2137ee00f0; 1 drivers +v0x5578aaef79e0_0 .net "CarryOUT", 0 0, L_0x5578aaf17d10; 1 drivers +v0x5578aaef7b20_0 .net "Y", 3 0, L_0x5578aaf181b0; alias, 1 drivers +o0x7f2137f2bc28 .functor BUFZ 1, C4; HiZ drive +; Elide local net with no drivers, v0x5578aaef7be0_0 name=_ivl_41 +v0x5578aaef7ca0_0 .net "overflow", 0 0, L_0x5578aaf19150; 1 drivers +L_0x5578aaf16830 .part L_0x5578aaf16060, 0, 1; +L_0x5578aaf169f0 .part L_0x7f2137ee00a8, 0, 1; +L_0x5578aaf16e80 .part L_0x5578aaf16060, 1, 1; +L_0x5578aaf16fb0 .part L_0x7f2137ee00a8, 1, 1; +L_0x5578aaf170e0 .part L_0x5578aaf2c090, 0, 1; +L_0x5578aaf17570 .part L_0x5578aaf16060, 2, 1; +L_0x5578aaf176e0 .part L_0x7f2137ee00a8, 2, 1; +L_0x5578aaf178a0 .part L_0x5578aaf2c090, 1, 1; +L_0x5578aaf17dc0 .part L_0x5578aaf16060, 3, 1; +L_0x5578aaf17ef0 .part L_0x7f2137ee00a8, 3, 1; +L_0x5578aaf18080 .part L_0x5578aaf2c090, 2, 1; +L_0x5578aaf181b0 .concat8 [ 1 1 1 1], L_0x5578aaf166c0, L_0x5578aaf16d50, L_0x5578aaf17440, L_0x5578aaf17c50; +L_0x5578aaf2c090 .concat [ 1 1 1 1], L_0x5578aaf167c0, L_0x5578aaf16e10, L_0x5578aaf17500, o0x7f2137f2bc28; +S_0x5578aaef0ab0 .scope module, "f0" "fulladder" 5 11, 6 1 0, S_0x5578aaef0830; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /INPUT 1 "Carry"; + .port_info 3 /OUTPUT 1 "Sum"; + .port_info 4 /OUTPUT 1 "CarryO"; +L_0x5578aaf167c0 .functor OR 1, L_0x5578aaf163a0, L_0x5578aaf16570, C4<0>, C4<0>; +v0x5578aaef1950_0 .net "A", 0 0, L_0x5578aaf16830; 1 drivers +v0x5578aaef1a10_0 .net "B", 0 0, L_0x5578aaf169f0; 1 drivers +v0x5578aaef1ae0_0 .net "Carry", 0 0, L_0x7f2137ee00f0; alias, 1 drivers +v0x5578aaef1be0_0 .net "CarryO", 0 0, L_0x5578aaf167c0; 1 drivers +v0x5578aaef1c80_0 .net "Sum", 0 0, L_0x5578aaf166c0; 1 drivers +v0x5578aaef1d70_0 .net "and1", 0 0, L_0x5578aaf163a0; 1 drivers +v0x5578aaef1e40_0 .net "and2", 0 0, L_0x5578aaf16570; 1 drivers +v0x5578aaef1f10_0 .net "xor1", 0 0, L_0x5578aaf16500; 1 drivers +S_0x5578aaef0cb0 .scope module, "h1" "halfadder" 6 8, 7 1 0, S_0x5578aaef0ab0; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /OUTPUT 1 "Sum"; + .port_info 3 /OUTPUT 1 "Carry"; +L_0x5578aaf163a0 .functor AND 1, L_0x5578aaf16830, L_0x5578aaf169f0, C4<1>, C4<1>; +L_0x5578aaf16500 .functor XOR 1, L_0x5578aaf16830, L_0x5578aaf169f0, C4<0>, C4<0>; +v0x5578aaef0f50_0 .net "A", 0 0, L_0x5578aaf16830; alias, 1 drivers +v0x5578aaef1030_0 .net "B", 0 0, L_0x5578aaf169f0; alias, 1 drivers +v0x5578aaef10f0_0 .net "Carry", 0 0, L_0x5578aaf163a0; alias, 1 drivers +v0x5578aaef11c0_0 .net "Sum", 0 0, L_0x5578aaf16500; alias, 1 drivers +S_0x5578aaef1330 .scope module, "h2" "halfadder" 6 9, 7 1 0, S_0x5578aaef0ab0; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /OUTPUT 1 "Sum"; + .port_info 3 /OUTPUT 1 "Carry"; +L_0x5578aaf16570 .functor AND 1, L_0x5578aaf16500, L_0x7f2137ee00f0, C4<1>, C4<1>; +L_0x5578aaf166c0 .functor XOR 1, L_0x5578aaf16500, L_0x7f2137ee00f0, C4<0>, C4<0>; +v0x5578aaef15a0_0 .net "A", 0 0, L_0x5578aaf16500; alias, 1 drivers +v0x5578aaef1670_0 .net "B", 0 0, L_0x7f2137ee00f0; alias, 1 drivers +v0x5578aaef1710_0 .net "Carry", 0 0, L_0x5578aaf16570; alias, 1 drivers +v0x5578aaef17e0_0 .net "Sum", 0 0, L_0x5578aaf166c0; alias, 1 drivers +S_0x5578aaef2000 .scope module, "f1" "fulladder" 5 12, 6 1 0, S_0x5578aaef0830; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /INPUT 1 "Carry"; + .port_info 3 /OUTPUT 1 "Sum"; + .port_info 4 /OUTPUT 1 "CarryO"; +L_0x5578aaf16e10 .functor OR 1, L_0x5578aaf16b20, L_0x5578aaf16c00, C4<0>, C4<0>; +v0x5578aaef2e60_0 .net "A", 0 0, L_0x5578aaf16e80; 1 drivers +v0x5578aaef2f20_0 .net "B", 0 0, L_0x5578aaf16fb0; 1 drivers +v0x5578aaef2ff0_0 .net "Carry", 0 0, L_0x5578aaf170e0; 1 drivers +v0x5578aaef30f0_0 .net "CarryO", 0 0, L_0x5578aaf16e10; 1 drivers +v0x5578aaef3190_0 .net "Sum", 0 0, L_0x5578aaf16d50; 1 drivers +v0x5578aaef3280_0 .net "and1", 0 0, L_0x5578aaf16b20; 1 drivers +v0x5578aaef3350_0 .net "and2", 0 0, L_0x5578aaf16c00; 1 drivers +v0x5578aaef3420_0 .net "xor1", 0 0, L_0x5578aaf16b90; 1 drivers +S_0x5578aaef21e0 .scope module, "h1" "halfadder" 6 8, 7 1 0, S_0x5578aaef2000; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /OUTPUT 1 "Sum"; + .port_info 3 /OUTPUT 1 "Carry"; +L_0x5578aaf16b20 .functor AND 1, L_0x5578aaf16e80, L_0x5578aaf16fb0, C4<1>, C4<1>; +L_0x5578aaf16b90 .functor XOR 1, L_0x5578aaf16e80, L_0x5578aaf16fb0, C4<0>, C4<0>; +v0x5578aaef2460_0 .net "A", 0 0, L_0x5578aaf16e80; alias, 1 drivers +v0x5578aaef2540_0 .net "B", 0 0, L_0x5578aaf16fb0; alias, 1 drivers +v0x5578aaef2600_0 .net "Carry", 0 0, L_0x5578aaf16b20; alias, 1 drivers +v0x5578aaef26d0_0 .net "Sum", 0 0, L_0x5578aaf16b90; alias, 1 drivers +S_0x5578aaef2840 .scope module, "h2" "halfadder" 6 9, 7 1 0, S_0x5578aaef2000; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /OUTPUT 1 "Sum"; + .port_info 3 /OUTPUT 1 "Carry"; +L_0x5578aaf16c00 .functor AND 1, L_0x5578aaf16b90, L_0x5578aaf170e0, C4<1>, C4<1>; +L_0x5578aaf16d50 .functor XOR 1, L_0x5578aaf16b90, L_0x5578aaf170e0, C4<0>, C4<0>; +v0x5578aaef2ab0_0 .net "A", 0 0, L_0x5578aaf16b90; alias, 1 drivers +v0x5578aaef2b80_0 .net "B", 0 0, L_0x5578aaf170e0; alias, 1 drivers +v0x5578aaef2c20_0 .net "Carry", 0 0, L_0x5578aaf16c00; alias, 1 drivers +v0x5578aaef2cf0_0 .net "Sum", 0 0, L_0x5578aaf16d50; alias, 1 drivers +S_0x5578aaef3510 .scope module, "f2" "fulladder" 5 13, 6 1 0, S_0x5578aaef0830; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /INPUT 1 "Carry"; + .port_info 3 /OUTPUT 1 "Sum"; + .port_info 4 /OUTPUT 1 "CarryO"; +L_0x5578aaf17500 .functor OR 1, L_0x5578aaf17210, L_0x5578aaf172f0, C4<0>, C4<0>; +v0x5578aaef4380_0 .net "A", 0 0, L_0x5578aaf17570; 1 drivers +v0x5578aaef4440_0 .net "B", 0 0, L_0x5578aaf176e0; 1 drivers +v0x5578aaef4510_0 .net "Carry", 0 0, L_0x5578aaf178a0; 1 drivers +v0x5578aaef4610_0 .net "CarryO", 0 0, L_0x5578aaf17500; 1 drivers +v0x5578aaef46b0_0 .net "Sum", 0 0, L_0x5578aaf17440; 1 drivers +v0x5578aaef47a0_0 .net "and1", 0 0, L_0x5578aaf17210; 1 drivers +v0x5578aaef4870_0 .net "and2", 0 0, L_0x5578aaf172f0; 1 drivers +v0x5578aaef4940_0 .net "xor1", 0 0, L_0x5578aaf17280; 1 drivers +S_0x5578aaef3720 .scope module, "h1" "halfadder" 6 8, 7 1 0, S_0x5578aaef3510; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /OUTPUT 1 "Sum"; + .port_info 3 /OUTPUT 1 "Carry"; +L_0x5578aaf17210 .functor AND 1, L_0x5578aaf17570, L_0x5578aaf176e0, C4<1>, C4<1>; +L_0x5578aaf17280 .functor XOR 1, L_0x5578aaf17570, L_0x5578aaf176e0, C4<0>, C4<0>; +v0x5578aaef39a0_0 .net "A", 0 0, L_0x5578aaf17570; alias, 1 drivers +v0x5578aaef3a60_0 .net "B", 0 0, L_0x5578aaf176e0; alias, 1 drivers +v0x5578aaef3b20_0 .net "Carry", 0 0, L_0x5578aaf17210; alias, 1 drivers +v0x5578aaef3bf0_0 .net "Sum", 0 0, L_0x5578aaf17280; alias, 1 drivers +S_0x5578aaef3d60 .scope module, "h2" "halfadder" 6 9, 7 1 0, S_0x5578aaef3510; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /OUTPUT 1 "Sum"; + .port_info 3 /OUTPUT 1 "Carry"; +L_0x5578aaf172f0 .functor AND 1, L_0x5578aaf17280, L_0x5578aaf178a0, C4<1>, C4<1>; +L_0x5578aaf17440 .functor XOR 1, L_0x5578aaf17280, L_0x5578aaf178a0, C4<0>, C4<0>; +v0x5578aaef3fd0_0 .net "A", 0 0, L_0x5578aaf17280; alias, 1 drivers +v0x5578aaef40a0_0 .net "B", 0 0, L_0x5578aaf178a0; alias, 1 drivers +v0x5578aaef4140_0 .net "Carry", 0 0, L_0x5578aaf172f0; alias, 1 drivers +v0x5578aaef4210_0 .net "Sum", 0 0, L_0x5578aaf17440; alias, 1 drivers +S_0x5578aaef4a30 .scope module, "f3" "fulladder" 5 14, 6 1 0, S_0x5578aaef0830; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /INPUT 1 "Carry"; + .port_info 3 /OUTPUT 1 "Sum"; + .port_info 4 /OUTPUT 1 "CarryO"; +L_0x5578aaf17d10 .functor OR 1, L_0x5578aaf17a20, L_0x5578aaf17b00, C4<0>, C4<0>; +v0x5578aaef5890_0 .net "A", 0 0, L_0x5578aaf17dc0; 1 drivers +v0x5578aaef5950_0 .net "B", 0 0, L_0x5578aaf17ef0; 1 drivers +v0x5578aaef5a20_0 .net "Carry", 0 0, L_0x5578aaf18080; 1 drivers +v0x5578aaef5b20_0 .net "CarryO", 0 0, L_0x5578aaf17d10; alias, 1 drivers +v0x5578aaef5bc0_0 .net "Sum", 0 0, L_0x5578aaf17c50; 1 drivers +v0x5578aaef5cb0_0 .net "and1", 0 0, L_0x5578aaf17a20; 1 drivers +v0x5578aaef5d80_0 .net "and2", 0 0, L_0x5578aaf17b00; 1 drivers +v0x5578aaef5e50_0 .net "xor1", 0 0, L_0x5578aaf17a90; 1 drivers +S_0x5578aaef4c10 .scope module, "h1" "halfadder" 6 8, 7 1 0, S_0x5578aaef4a30; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /OUTPUT 1 "Sum"; + .port_info 3 /OUTPUT 1 "Carry"; +L_0x5578aaf17a20 .functor AND 1, L_0x5578aaf17dc0, L_0x5578aaf17ef0, C4<1>, C4<1>; +L_0x5578aaf17a90 .functor XOR 1, L_0x5578aaf17dc0, L_0x5578aaf17ef0, C4<0>, C4<0>; +v0x5578aaef4e90_0 .net "A", 0 0, L_0x5578aaf17dc0; alias, 1 drivers +v0x5578aaef4f70_0 .net "B", 0 0, L_0x5578aaf17ef0; alias, 1 drivers +v0x5578aaef5030_0 .net "Carry", 0 0, L_0x5578aaf17a20; alias, 1 drivers +v0x5578aaef5100_0 .net "Sum", 0 0, L_0x5578aaf17a90; alias, 1 drivers +S_0x5578aaef5270 .scope module, "h2" "halfadder" 6 9, 7 1 0, S_0x5578aaef4a30; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /OUTPUT 1 "Sum"; + .port_info 3 /OUTPUT 1 "Carry"; +L_0x5578aaf17b00 .functor AND 1, L_0x5578aaf17a90, L_0x5578aaf18080, C4<1>, C4<1>; +L_0x5578aaf17c50 .functor XOR 1, L_0x5578aaf17a90, L_0x5578aaf18080, C4<0>, C4<0>; +v0x5578aaef54e0_0 .net "A", 0 0, L_0x5578aaf17a90; alias, 1 drivers +v0x5578aaef55b0_0 .net "B", 0 0, L_0x5578aaf18080; alias, 1 drivers +v0x5578aaef5650_0 .net "Carry", 0 0, L_0x5578aaf17b00; alias, 1 drivers +v0x5578aaef5720_0 .net "Sum", 0 0, L_0x5578aaf17c50; alias, 1 drivers +S_0x5578aaef5f40 .scope module, "od1" "overflowDetect" 5 17, 8 1 0, S_0x5578aaef0830; + .timescale 0 0; + .port_info 0 /INPUT 2 "opCode"; + .port_info 1 /INPUT 4 "A"; + .port_info 2 /INPUT 4 "B"; + .port_info 3 /INPUT 4 "Y"; + .port_info 4 /INPUT 1 "CarryOUT"; + .port_info 5 /OUTPUT 1 "overflowDetect"; +L_0x5578aaf182c0 .functor OR 1, L_0x5578aaf18350, L_0x5578aaf183f0, C4<0>, C4<0>; +L_0x5578aaf18490 .functor XNOR 1, L_0x5578aaf18500, L_0x5578aaf185a0, C4<0>, C4<0>; +L_0x5578aaf18690 .functor XOR 1, L_0x5578aaf18700, L_0x5578aaf187f0, C4<0>, C4<0>; +L_0x5578aaf18920 .functor XOR 1, L_0x5578aaf18990, L_0x5578aaf18a80, C4<0>, C4<0>; +L_0x5578aaf18bc0 .functor AND 1, L_0x5578aaf18490, L_0x5578aaf18c80, C4<1>, C4<1>; +L_0x5578aaf18d70 .functor AND 1, L_0x5578aaf18690, L_0x5578aaf18e30, C4<1>, C4<1>; +L_0x5578aaf18f80 .functor OR 1, L_0x5578aaf18bc0, L_0x5578aaf18d70, C4<0>, C4<0>; +L_0x5578aaf18ff0 .functor AND 1, L_0x5578aaf18f80, L_0x5578aaf18920, C4<1>, C4<1>; +L_0x5578aaf19150 .functor AND 1, L_0x5578aaf182c0, L_0x5578aaf18ff0, C4<1>, C4<1>; +v0x5578aaef6210_0 .net "A", 3 0, L_0x5578aaf16060; alias, 1 drivers +v0x5578aaef62f0_0 .net "B", 3 0, L_0x7f2137ee00a8; alias, 1 drivers +v0x5578aaef63d0_0 .net "CarryOUT", 0 0, L_0x5578aaf17d10; alias, 1 drivers +v0x5578aaef6470_0 .net "Y", 3 0, L_0x5578aaf181b0; alias, 1 drivers +v0x5578aaef6510_0 .net *"_ivl_1", 0 0, L_0x5578aaf18350; 1 drivers +v0x5578aaef6640_0 .net *"_ivl_11", 0 0, L_0x5578aaf187f0; 1 drivers +v0x5578aaef6720_0 .net *"_ivl_13", 0 0, L_0x5578aaf18990; 1 drivers +v0x5578aaef6800_0 .net *"_ivl_15", 0 0, L_0x5578aaf18a80; 1 drivers +v0x5578aaef68e0_0 .net *"_ivl_17", 0 0, L_0x5578aaf18c80; 1 drivers +v0x5578aaef69c0_0 .net *"_ivl_19", 0 0, L_0x5578aaf18e30; 1 drivers +v0x5578aaef6aa0_0 .net *"_ivl_3", 0 0, L_0x5578aaf183f0; 1 drivers +v0x5578aaef6b80_0 .net *"_ivl_5", 0 0, L_0x5578aaf18500; 1 drivers +v0x5578aaef6c60_0 .net *"_ivl_7", 0 0, L_0x5578aaf185a0; 1 drivers +v0x5578aaef6d40_0 .net *"_ivl_9", 0 0, L_0x5578aaf18700; 1 drivers +v0x5578aaef6e20_0 .net "addOverflow", 0 0, L_0x5578aaf18bc0; 1 drivers +v0x5578aaef6ee0_0 .net "detect1", 0 0, L_0x5578aaf18f80; 1 drivers +v0x5578aaef6fa0_0 .net "detect2", 0 0, L_0x5578aaf18ff0; 1 drivers +v0x5578aaef7060_0 .net "opC", 0 0, L_0x5578aaf182c0; 1 drivers +L_0x7f2137ee0060 .functor BUFT 1, C4<01>, C4<0>, C4<0>, C4<0>; +v0x5578aaef7120_0 .net "opCode", 1 0, L_0x7f2137ee0060; 1 drivers +v0x5578aaef7200_0 .net "overflowDetect", 0 0, L_0x5578aaf19150; alias, 1 drivers +v0x5578aaef72c0_0 .net "sign1", 0 0, L_0x5578aaf18490; 1 drivers +v0x5578aaef7380_0 .net "sign2", 0 0, L_0x5578aaf18920; 1 drivers +v0x5578aaef7440_0 .net "sign3", 0 0, L_0x5578aaf18690; 1 drivers +v0x5578aaef7500_0 .net "subOverflow", 0 0, L_0x5578aaf18d70; 1 drivers +L_0x5578aaf18350 .part L_0x7f2137ee0060, 0, 1; +L_0x5578aaf183f0 .part L_0x7f2137ee0060, 1, 1; +L_0x5578aaf18500 .part L_0x5578aaf16060, 3, 1; +L_0x5578aaf185a0 .part L_0x7f2137ee00a8, 3, 1; +L_0x5578aaf18700 .part L_0x5578aaf16060, 3, 1; +L_0x5578aaf187f0 .part L_0x7f2137ee00a8, 3, 1; +L_0x5578aaf18990 .part L_0x5578aaf181b0, 3, 1; +L_0x5578aaf18a80 .part L_0x5578aaf16060, 3, 1; +L_0x5578aaf18c80 .part L_0x7f2137ee0060, 0, 1; +L_0x5578aaf18e30 .part L_0x7f2137ee0060, 1, 1; +S_0x5578aaef7de0 .scope module, "a2" "addition" 9 19, 5 1 0, S_0x5578aaef0590; + .timescale 0 0; + .port_info 0 /INPUT 4 "A"; + .port_info 1 /INPUT 4 "B"; + .port_info 2 /INPUT 1 "CarryIN"; + .port_info 3 /OUTPUT 4 "Y"; + .port_info 4 /OUTPUT 1 "CarryOUT"; + .port_info 5 /OUTPUT 1 "overflow"; +v0x5578aaeff030_0 .net "A", 3 0, v0x5578aaf10bb0_0; alias, 1 drivers +v0x5578aaeff110_0 .net "B", 3 0, L_0x5578aaf181b0; alias, 1 drivers +v0x5578aaeff1d0_0 .net "Carry4", 3 0, L_0x5578aaf2c260; 1 drivers +v0x5578aaeff290_0 .net "CarryIN", 0 0, v0x5578aaf10d50_0; alias, 1 drivers +v0x5578aaeff330_0 .net "CarryOUT", 0 0, L_0x5578aaf1ac80; alias, 1 drivers +v0x5578aaeff420_0 .net "Y", 3 0, L_0x5578aaf1b120; alias, 1 drivers +o0x7f2137f2d248 .functor BUFZ 1, C4; HiZ drive +; Elide local net with no drivers, v0x5578aaeff4e0_0 name=_ivl_41 +v0x5578aaeff5a0_0 .net "overflow", 0 0, L_0x5578aaf1c150; 1 drivers +L_0x5578aaf19620 .part v0x5578aaf10bb0_0, 0, 1; +L_0x5578aaf19750 .part L_0x5578aaf181b0, 0, 1; +L_0x5578aaf19c90 .part v0x5578aaf10bb0_0, 1, 1; +L_0x5578aaf19dc0 .part L_0x5578aaf181b0, 1, 1; +L_0x5578aaf1a000 .part L_0x5578aaf2c260, 0, 1; +L_0x5578aaf1a4a0 .part v0x5578aaf10bb0_0, 2, 1; +L_0x5578aaf1a5d0 .part L_0x5578aaf181b0, 2, 1; +L_0x5578aaf1a700 .part L_0x5578aaf2c260, 1, 1; +L_0x5578aaf1ad30 .part v0x5578aaf10bb0_0, 3, 1; +L_0x5578aaf1ae60 .part L_0x5578aaf181b0, 3, 1; +L_0x5578aaf1aff0 .part L_0x5578aaf2c260, 2, 1; +L_0x5578aaf1b120 .concat8 [ 1 1 1 1], L_0x5578aaf19540, L_0x5578aaf19b20, L_0x5578aaf1a330, L_0x5578aaf1aba0; +L_0x5578aaf2c260 .concat [ 1 1 1 1], L_0x5578aaf195b0, L_0x5578aaf19c00, L_0x5578aaf1a410, o0x7f2137f2d248; +S_0x5578aaef8080 .scope module, "f0" "fulladder" 5 11, 6 1 0, S_0x5578aaef7de0; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /INPUT 1 "Carry"; + .port_info 3 /OUTPUT 1 "Sum"; + .port_info 4 /OUTPUT 1 "CarryO"; +L_0x5578aaf195b0 .functor OR 1, L_0x5578aaf192b0, L_0x5578aaf19480, C4<0>, C4<0>; +v0x5578aaef8f60_0 .net "A", 0 0, L_0x5578aaf19620; 1 drivers +v0x5578aaef9020_0 .net "B", 0 0, L_0x5578aaf19750; 1 drivers +v0x5578aaef90f0_0 .net "Carry", 0 0, v0x5578aaf10d50_0; alias, 1 drivers +v0x5578aaef91c0_0 .net "CarryO", 0 0, L_0x5578aaf195b0; 1 drivers +v0x5578aaef9260_0 .net "Sum", 0 0, L_0x5578aaf19540; 1 drivers +v0x5578aaef9300_0 .net "and1", 0 0, L_0x5578aaf192b0; 1 drivers +v0x5578aaef93d0_0 .net "and2", 0 0, L_0x5578aaf19480; 1 drivers +v0x5578aaef94a0_0 .net "xor1", 0 0, L_0x5578aaf19410; 1 drivers +S_0x5578aaef82e0 .scope module, "h1" "halfadder" 6 8, 7 1 0, S_0x5578aaef8080; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /OUTPUT 1 "Sum"; + .port_info 3 /OUTPUT 1 "Carry"; +L_0x5578aaf192b0 .functor AND 1, L_0x5578aaf19620, L_0x5578aaf19750, C4<1>, C4<1>; +L_0x5578aaf19410 .functor XOR 1, L_0x5578aaf19620, L_0x5578aaf19750, C4<0>, C4<0>; +v0x5578aaef8580_0 .net "A", 0 0, L_0x5578aaf19620; alias, 1 drivers +v0x5578aaef8660_0 .net "B", 0 0, L_0x5578aaf19750; alias, 1 drivers +v0x5578aaef8720_0 .net "Carry", 0 0, L_0x5578aaf192b0; alias, 1 drivers +v0x5578aaef87f0_0 .net "Sum", 0 0, L_0x5578aaf19410; alias, 1 drivers +S_0x5578aaef8960 .scope module, "h2" "halfadder" 6 9, 7 1 0, S_0x5578aaef8080; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /OUTPUT 1 "Sum"; + .port_info 3 /OUTPUT 1 "Carry"; +L_0x5578aaf19480 .functor AND 1, L_0x5578aaf19410, v0x5578aaf10d50_0, C4<1>, C4<1>; +L_0x5578aaf19540 .functor XOR 1, L_0x5578aaf19410, v0x5578aaf10d50_0, C4<0>, C4<0>; +v0x5578aaef8bd0_0 .net "A", 0 0, L_0x5578aaf19410; alias, 1 drivers +v0x5578aaef8ca0_0 .net "B", 0 0, v0x5578aaf10d50_0; alias, 1 drivers +v0x5578aaef8d40_0 .net "Carry", 0 0, L_0x5578aaf19480; alias, 1 drivers +v0x5578aaef8e10_0 .net "Sum", 0 0, L_0x5578aaf19540; alias, 1 drivers +S_0x5578aaef9590 .scope module, "f1" "fulladder" 5 12, 6 1 0, S_0x5578aaef7de0; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /INPUT 1 "Carry"; + .port_info 3 /OUTPUT 1 "Sum"; + .port_info 4 /OUTPUT 1 "CarryO"; +L_0x5578aaf19c00 .functor OR 1, L_0x5578aaf19880, L_0x5578aaf199b0, C4<0>, C4<0>; +v0x5578aaefa490_0 .net "A", 0 0, L_0x5578aaf19c90; 1 drivers +v0x5578aaefa550_0 .net "B", 0 0, L_0x5578aaf19dc0; 1 drivers +v0x5578aaefa620_0 .net "Carry", 0 0, L_0x5578aaf1a000; 1 drivers +v0x5578aaefa720_0 .net "CarryO", 0 0, L_0x5578aaf19c00; 1 drivers +v0x5578aaefa7c0_0 .net "Sum", 0 0, L_0x5578aaf19b20; 1 drivers +v0x5578aaefa8b0_0 .net "and1", 0 0, L_0x5578aaf19880; 1 drivers +v0x5578aaefa980_0 .net "and2", 0 0, L_0x5578aaf199b0; 1 drivers +v0x5578aaefaa50_0 .net "xor1", 0 0, L_0x5578aaf19940; 1 drivers +S_0x5578aaef9810 .scope module, "h1" "halfadder" 6 8, 7 1 0, S_0x5578aaef9590; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /OUTPUT 1 "Sum"; + .port_info 3 /OUTPUT 1 "Carry"; +L_0x5578aaf19880 .functor AND 1, L_0x5578aaf19c90, L_0x5578aaf19dc0, C4<1>, C4<1>; +L_0x5578aaf19940 .functor XOR 1, L_0x5578aaf19c90, L_0x5578aaf19dc0, C4<0>, C4<0>; +v0x5578aaef9a90_0 .net "A", 0 0, L_0x5578aaf19c90; alias, 1 drivers +v0x5578aaef9b70_0 .net "B", 0 0, L_0x5578aaf19dc0; alias, 1 drivers +v0x5578aaef9c30_0 .net "Carry", 0 0, L_0x5578aaf19880; alias, 1 drivers +v0x5578aaef9d00_0 .net "Sum", 0 0, L_0x5578aaf19940; alias, 1 drivers +S_0x5578aaef9e70 .scope module, "h2" "halfadder" 6 9, 7 1 0, S_0x5578aaef9590; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /OUTPUT 1 "Sum"; + .port_info 3 /OUTPUT 1 "Carry"; +L_0x5578aaf199b0 .functor AND 1, L_0x5578aaf19940, L_0x5578aaf1a000, C4<1>, C4<1>; +L_0x5578aaf19b20 .functor XOR 1, L_0x5578aaf19940, L_0x5578aaf1a000, C4<0>, C4<0>; +v0x5578aaefa0e0_0 .net "A", 0 0, L_0x5578aaf19940; alias, 1 drivers +v0x5578aaefa1b0_0 .net "B", 0 0, L_0x5578aaf1a000; alias, 1 drivers +v0x5578aaefa250_0 .net "Carry", 0 0, L_0x5578aaf199b0; alias, 1 drivers +v0x5578aaefa320_0 .net "Sum", 0 0, L_0x5578aaf19b20; alias, 1 drivers +S_0x5578aaefab40 .scope module, "f2" "fulladder" 5 13, 6 1 0, S_0x5578aaef7de0; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /INPUT 1 "Carry"; + .port_info 3 /OUTPUT 1 "Sum"; + .port_info 4 /OUTPUT 1 "CarryO"; +L_0x5578aaf1a410 .functor OR 1, L_0x5578aaf1a0a0, L_0x5578aaf1a1a0, C4<0>, C4<0>; +v0x5578aaefba30_0 .net "A", 0 0, L_0x5578aaf1a4a0; 1 drivers +v0x5578aaefbaf0_0 .net "B", 0 0, L_0x5578aaf1a5d0; 1 drivers +v0x5578aaefbbc0_0 .net "Carry", 0 0, L_0x5578aaf1a700; 1 drivers +v0x5578aaefbcc0_0 .net "CarryO", 0 0, L_0x5578aaf1a410; 1 drivers +v0x5578aaefbd60_0 .net "Sum", 0 0, L_0x5578aaf1a330; 1 drivers +v0x5578aaefbe50_0 .net "and1", 0 0, L_0x5578aaf1a0a0; 1 drivers +v0x5578aaefbf20_0 .net "and2", 0 0, L_0x5578aaf1a1a0; 1 drivers +v0x5578aaefbff0_0 .net "xor1", 0 0, L_0x5578aaf1a110; 1 drivers +S_0x5578aaefadd0 .scope module, "h1" "halfadder" 6 8, 7 1 0, S_0x5578aaefab40; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /OUTPUT 1 "Sum"; + .port_info 3 /OUTPUT 1 "Carry"; +L_0x5578aaf1a0a0 .functor AND 1, L_0x5578aaf1a4a0, L_0x5578aaf1a5d0, C4<1>, C4<1>; +L_0x5578aaf1a110 .functor XOR 1, L_0x5578aaf1a4a0, L_0x5578aaf1a5d0, C4<0>, C4<0>; +v0x5578aaefb050_0 .net "A", 0 0, L_0x5578aaf1a4a0; alias, 1 drivers +v0x5578aaefb110_0 .net "B", 0 0, L_0x5578aaf1a5d0; alias, 1 drivers +v0x5578aaefb1d0_0 .net "Carry", 0 0, L_0x5578aaf1a0a0; alias, 1 drivers +v0x5578aaefb2a0_0 .net "Sum", 0 0, L_0x5578aaf1a110; alias, 1 drivers +S_0x5578aaefb410 .scope module, "h2" "halfadder" 6 9, 7 1 0, S_0x5578aaefab40; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /OUTPUT 1 "Sum"; + .port_info 3 /OUTPUT 1 "Carry"; +L_0x5578aaf1a1a0 .functor AND 1, L_0x5578aaf1a110, L_0x5578aaf1a700, C4<1>, C4<1>; +L_0x5578aaf1a330 .functor XOR 1, L_0x5578aaf1a110, L_0x5578aaf1a700, C4<0>, C4<0>; +v0x5578aaefb680_0 .net "A", 0 0, L_0x5578aaf1a110; alias, 1 drivers +v0x5578aaefb750_0 .net "B", 0 0, L_0x5578aaf1a700; alias, 1 drivers +v0x5578aaefb7f0_0 .net "Carry", 0 0, L_0x5578aaf1a1a0; alias, 1 drivers +v0x5578aaefb8c0_0 .net "Sum", 0 0, L_0x5578aaf1a330; alias, 1 drivers +S_0x5578aaefc0e0 .scope module, "f3" "fulladder" 5 14, 6 1 0, S_0x5578aaef7de0; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /INPUT 1 "Carry"; + .port_info 3 /OUTPUT 1 "Sum"; + .port_info 4 /OUTPUT 1 "CarryO"; +L_0x5578aaf1ac80 .functor OR 1, L_0x5578aaf1a880, L_0x5578aaf1aa10, C4<0>, C4<0>; +v0x5578aaefcfc0_0 .net "A", 0 0, L_0x5578aaf1ad30; 1 drivers +v0x5578aaefd080_0 .net "B", 0 0, L_0x5578aaf1ae60; 1 drivers +v0x5578aaefd150_0 .net "Carry", 0 0, L_0x5578aaf1aff0; 1 drivers +v0x5578aaefd250_0 .net "CarryO", 0 0, L_0x5578aaf1ac80; alias, 1 drivers +v0x5578aaefd2f0_0 .net "Sum", 0 0, L_0x5578aaf1aba0; 1 drivers +v0x5578aaefd3e0_0 .net "and1", 0 0, L_0x5578aaf1a880; 1 drivers +v0x5578aaefd4b0_0 .net "and2", 0 0, L_0x5578aaf1aa10; 1 drivers +v0x5578aaefd580_0 .net "xor1", 0 0, L_0x5578aaf1a980; 1 drivers +S_0x5578aaefc340 .scope module, "h1" "halfadder" 6 8, 7 1 0, S_0x5578aaefc0e0; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /OUTPUT 1 "Sum"; + .port_info 3 /OUTPUT 1 "Carry"; +L_0x5578aaf1a880 .functor AND 1, L_0x5578aaf1ad30, L_0x5578aaf1ae60, C4<1>, C4<1>; +L_0x5578aaf1a980 .functor XOR 1, L_0x5578aaf1ad30, L_0x5578aaf1ae60, C4<0>, C4<0>; +v0x5578aaefc5c0_0 .net "A", 0 0, L_0x5578aaf1ad30; alias, 1 drivers +v0x5578aaefc6a0_0 .net "B", 0 0, L_0x5578aaf1ae60; alias, 1 drivers +v0x5578aaefc760_0 .net "Carry", 0 0, L_0x5578aaf1a880; alias, 1 drivers +v0x5578aaefc830_0 .net "Sum", 0 0, L_0x5578aaf1a980; alias, 1 drivers +S_0x5578aaefc9a0 .scope module, "h2" "halfadder" 6 9, 7 1 0, S_0x5578aaefc0e0; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /OUTPUT 1 "Sum"; + .port_info 3 /OUTPUT 1 "Carry"; +L_0x5578aaf1aa10 .functor AND 1, L_0x5578aaf1a980, L_0x5578aaf1aff0, C4<1>, C4<1>; +L_0x5578aaf1aba0 .functor XOR 1, L_0x5578aaf1a980, L_0x5578aaf1aff0, C4<0>, C4<0>; +v0x5578aaefcc10_0 .net "A", 0 0, L_0x5578aaf1a980; alias, 1 drivers +v0x5578aaefcce0_0 .net "B", 0 0, L_0x5578aaf1aff0; alias, 1 drivers +v0x5578aaefcd80_0 .net "Carry", 0 0, L_0x5578aaf1aa10; alias, 1 drivers +v0x5578aaefce50_0 .net "Sum", 0 0, L_0x5578aaf1aba0; alias, 1 drivers +S_0x5578aaefd670 .scope module, "od1" "overflowDetect" 5 17, 8 1 0, S_0x5578aaef7de0; + .timescale 0 0; + .port_info 0 /INPUT 2 "opCode"; + .port_info 1 /INPUT 4 "A"; + .port_info 2 /INPUT 4 "B"; + .port_info 3 /INPUT 4 "Y"; + .port_info 4 /INPUT 1 "CarryOUT"; + .port_info 5 /OUTPUT 1 "overflowDetect"; +L_0x5578aaf1b2c0 .functor OR 1, L_0x5578aaf1b350, L_0x5578aaf1b3f0, C4<0>, C4<0>; +L_0x5578aaf1b490 .functor XNOR 1, L_0x5578aaf1b500, L_0x5578aaf1b5a0, C4<0>, C4<0>; +L_0x5578aaf1b640 .functor XOR 1, L_0x5578aaf1b6b0, L_0x5578aaf1b7a0, C4<0>, C4<0>; +L_0x5578aaf1b890 .functor XOR 1, L_0x5578aaf1b900, L_0x5578aaf1b9f0, C4<0>, C4<0>; +L_0x5578aaf1bb30 .functor AND 1, L_0x5578aaf1b490, L_0x5578aaf1bbf0, C4<1>, C4<1>; +L_0x5578aaf1bce0 .functor AND 1, L_0x5578aaf1b640, L_0x5578aaf1bda0, C4<1>, C4<1>; +L_0x5578aaf1bf80 .functor OR 1, L_0x5578aaf1bb30, L_0x5578aaf1bce0, C4<0>, C4<0>; +L_0x5578aaf1bff0 .functor AND 1, L_0x5578aaf1bf80, L_0x5578aaf1b890, C4<1>, C4<1>; +L_0x5578aaf1c150 .functor AND 1, L_0x5578aaf1b2c0, L_0x5578aaf1bff0, C4<1>, C4<1>; +v0x5578aaefd980_0 .net "A", 3 0, v0x5578aaf10bb0_0; alias, 1 drivers +v0x5578aaefda90_0 .net "B", 3 0, L_0x5578aaf181b0; alias, 1 drivers +v0x5578aaefdba0_0 .net "CarryOUT", 0 0, L_0x5578aaf1ac80; alias, 1 drivers +v0x5578aaefdc40_0 .net "Y", 3 0, L_0x5578aaf1b120; alias, 1 drivers +v0x5578aaefdce0_0 .net *"_ivl_1", 0 0, L_0x5578aaf1b350; 1 drivers +v0x5578aaefde10_0 .net *"_ivl_11", 0 0, L_0x5578aaf1b7a0; 1 drivers +v0x5578aaefdef0_0 .net *"_ivl_13", 0 0, L_0x5578aaf1b900; 1 drivers +v0x5578aaefdfd0_0 .net *"_ivl_15", 0 0, L_0x5578aaf1b9f0; 1 drivers +v0x5578aaefe0b0_0 .net *"_ivl_17", 0 0, L_0x5578aaf1bbf0; 1 drivers +v0x5578aaefe220_0 .net *"_ivl_19", 0 0, L_0x5578aaf1bda0; 1 drivers +v0x5578aaefe300_0 .net *"_ivl_3", 0 0, L_0x5578aaf1b3f0; 1 drivers +v0x5578aaefe3e0_0 .net *"_ivl_5", 0 0, L_0x5578aaf1b500; 1 drivers +v0x5578aaefe4c0_0 .net *"_ivl_7", 0 0, L_0x5578aaf1b5a0; 1 drivers +v0x5578aaefe5a0_0 .net *"_ivl_9", 0 0, L_0x5578aaf1b6b0; 1 drivers +v0x5578aaefe680_0 .net "addOverflow", 0 0, L_0x5578aaf1bb30; 1 drivers +v0x5578aaefe740_0 .net "detect1", 0 0, L_0x5578aaf1bf80; 1 drivers +v0x5578aaefe800_0 .net "detect2", 0 0, L_0x5578aaf1bff0; 1 drivers +v0x5578aaefe9d0_0 .net "opC", 0 0, L_0x5578aaf1b2c0; 1 drivers +L_0x7f2137ee0138 .functor BUFT 1, C4<01>, C4<0>, C4<0>, C4<0>; +v0x5578aaefea90_0 .net "opCode", 1 0, L_0x7f2137ee0138; 1 drivers +v0x5578aaefeb70_0 .net "overflowDetect", 0 0, L_0x5578aaf1c150; alias, 1 drivers +v0x5578aaefec30_0 .net "sign1", 0 0, L_0x5578aaf1b490; 1 drivers +v0x5578aaefecf0_0 .net "sign2", 0 0, L_0x5578aaf1b890; 1 drivers +v0x5578aaefedb0_0 .net "sign3", 0 0, L_0x5578aaf1b640; 1 drivers +v0x5578aaefee70_0 .net "subOverflow", 0 0, L_0x5578aaf1bce0; 1 drivers +L_0x5578aaf1b350 .part L_0x7f2137ee0138, 0, 1; +L_0x5578aaf1b3f0 .part L_0x7f2137ee0138, 1, 1; +L_0x5578aaf1b500 .part v0x5578aaf10bb0_0, 3, 1; +L_0x5578aaf1b5a0 .part L_0x5578aaf181b0, 3, 1; +L_0x5578aaf1b6b0 .part v0x5578aaf10bb0_0, 3, 1; +L_0x5578aaf1b7a0 .part L_0x5578aaf181b0, 3, 1; +L_0x5578aaf1b900 .part L_0x5578aaf1b120, 3, 1; +L_0x5578aaf1b9f0 .part v0x5578aaf10bb0_0, 3, 1; +L_0x5578aaf1bbf0 .part L_0x7f2137ee0138, 0, 1; +L_0x5578aaf1bda0 .part L_0x7f2137ee0138, 1, 1; +S_0x5578aaeff6e0 .scope module, "od1" "overflowDetect" 9 20, 8 1 0, S_0x5578aaef0590; + .timescale 0 0; + .port_info 0 /INPUT 2 "opCode"; + .port_info 1 /INPUT 4 "A"; + .port_info 2 /INPUT 4 "B"; + .port_info 3 /INPUT 4 "Y"; + .port_info 4 /INPUT 1 "CarryOUT"; + .port_info 5 /OUTPUT 1 "overflowDetect"; +L_0x5578aaf1c300 .functor OR 1, L_0x5578aaf1c370, L_0x5578aaf1c460, C4<0>, C4<0>; +L_0x5578aaf1c5a0 .functor XNOR 1, L_0x5578aaf1c610, L_0x5578aaf1c700, C4<0>, C4<0>; +L_0x5578aaf1c7f0 .functor XOR 1, L_0x5578aaf1c860, L_0x5578aaf1c950, C4<0>, C4<0>; +L_0x5578aaf1ca40 .functor XOR 1, L_0x5578aaf1cab0, L_0x5578aaf1cba0, C4<0>, C4<0>; +L_0x5578aaf1cce0 .functor AND 1, L_0x5578aaf1c5a0, L_0x5578aaf1cda0, C4<1>, C4<1>; +L_0x5578aaf1ce90 .functor AND 1, L_0x5578aaf1c7f0, L_0x5578aaf1cf50, C4<1>, C4<1>; +L_0x5578aaf1d130 .functor OR 1, L_0x5578aaf1cce0, L_0x5578aaf1ce90, C4<0>, C4<0>; +L_0x5578aaf1d1a0 .functor AND 1, L_0x5578aaf1d130, L_0x5578aaf1ca40, C4<1>, C4<1>; +L_0x5578aaf1d300 .functor AND 1, L_0x5578aaf1c300, L_0x5578aaf1d1a0, C4<1>, C4<1>; +v0x5578aaeff960_0 .net "A", 3 0, v0x5578aaf10bb0_0; alias, 1 drivers +v0x5578aaeffa20_0 .net "B", 3 0, v0x5578aaf10c90_0; alias, 1 drivers +v0x5578aaeffae0_0 .net "CarryOUT", 0 0, L_0x5578aaf1ac80; alias, 1 drivers +v0x5578aaeffb80_0 .net "Y", 3 0, L_0x5578aaf1b120; alias, 1 drivers +v0x5578aaeffc70_0 .net *"_ivl_1", 0 0, L_0x5578aaf1c370; 1 drivers +v0x5578aaeffda0_0 .net *"_ivl_11", 0 0, L_0x5578aaf1c950; 1 drivers +v0x5578aaeffe80_0 .net *"_ivl_13", 0 0, L_0x5578aaf1cab0; 1 drivers +v0x5578aaefff60_0 .net *"_ivl_15", 0 0, L_0x5578aaf1cba0; 1 drivers +v0x5578aaf00040_0 .net *"_ivl_17", 0 0, L_0x5578aaf1cda0; 1 drivers +v0x5578aaf001b0_0 .net *"_ivl_19", 0 0, L_0x5578aaf1cf50; 1 drivers +v0x5578aaf00290_0 .net *"_ivl_3", 0 0, L_0x5578aaf1c460; 1 drivers +v0x5578aaf00370_0 .net *"_ivl_5", 0 0, L_0x5578aaf1c610; 1 drivers +v0x5578aaf00450_0 .net *"_ivl_7", 0 0, L_0x5578aaf1c700; 1 drivers +v0x5578aaf00530_0 .net *"_ivl_9", 0 0, L_0x5578aaf1c860; 1 drivers +v0x5578aaf00610_0 .net "addOverflow", 0 0, L_0x5578aaf1cce0; 1 drivers +v0x5578aaf006d0_0 .net "detect1", 0 0, L_0x5578aaf1d130; 1 drivers +v0x5578aaf00790_0 .net "detect2", 0 0, L_0x5578aaf1d1a0; 1 drivers +v0x5578aaf00960_0 .net "opC", 0 0, L_0x5578aaf1c300; 1 drivers +L_0x7f2137ee0180 .functor BUFT 1, C4<10>, C4<0>, C4<0>, C4<0>; +v0x5578aaf00a20_0 .net "opCode", 1 0, L_0x7f2137ee0180; 1 drivers +v0x5578aaf00b00_0 .net "overflowDetect", 0 0, L_0x5578aaf1d300; alias, 1 drivers +v0x5578aaf00bc0_0 .net "sign1", 0 0, L_0x5578aaf1c5a0; 1 drivers +v0x5578aaf00c80_0 .net "sign2", 0 0, L_0x5578aaf1ca40; 1 drivers +v0x5578aaf00d40_0 .net "sign3", 0 0, L_0x5578aaf1c7f0; 1 drivers +v0x5578aaf00e00_0 .net "subOverflow", 0 0, L_0x5578aaf1ce90; 1 drivers +L_0x5578aaf1c370 .part L_0x7f2137ee0180, 0, 1; +L_0x5578aaf1c460 .part L_0x7f2137ee0180, 1, 1; +L_0x5578aaf1c610 .part v0x5578aaf10bb0_0, 3, 1; +L_0x5578aaf1c700 .part v0x5578aaf10c90_0, 3, 1; +L_0x5578aaf1c860 .part v0x5578aaf10bb0_0, 3, 1; +L_0x5578aaf1c950 .part v0x5578aaf10c90_0, 3, 1; +L_0x5578aaf1cab0 .part L_0x5578aaf1b120, 3, 1; +L_0x5578aaf1cba0 .part v0x5578aaf10bb0_0, 3, 1; +L_0x5578aaf1cda0 .part L_0x7f2137ee0180, 0, 1; +L_0x5578aaf1cf50 .part L_0x7f2137ee0180, 1, 1; +S_0x5578aaf04ca0 .scope module, "lU" "logicUnit" 3 20, 10 1 0, S_0x5578aae7c060; + .timescale 0 0; + .port_info 0 /INPUT 3 "opCode"; + .port_info 1 /INPUT 4 "A"; + .port_info 2 /INPUT 4 "B"; + .port_info 3 /OUTPUT 4 "resultA"; + .port_info 4 /OUTPUT 4 "resultO"; + .port_info 5 /OUTPUT 4 "resultX"; +L_0x5578aaf1fc30 .functor AND 1, L_0x5578aaf1fca0, L_0x5578aaf1fd40, C4<1>, C4<1>; +L_0x5578aaf1fde0 .functor AND 1, L_0x5578aaf1fe50, L_0x5578aaf1fef0, C4<1>, C4<1>; +L_0x5578aaf1ffe0 .functor AND 1, L_0x5578aaf20050, L_0x5578aaf20140, C4<1>, C4<1>; +L_0x5578aaf203c0 .functor AND 1, L_0x5578aaf20480, L_0x5578aaf205c0, C4<1>, C4<1>; +L_0x5578aaf206b0 .functor OR 1, L_0x5578aaf20720, L_0x5578aaf20870, C4<0>, C4<0>; +L_0x5578aaf20910 .functor OR 1, L_0x5578aaf20980, L_0x5578aaf20ef0, C4<0>, C4<0>; +L_0x5578aaf20f90 .functor OR 1, L_0x5578aaf21000, L_0x5578aaf21120, C4<0>, C4<0>; +L_0x5578aaf20e80 .functor OR 1, L_0x5578aaf21480, L_0x5578aaf21570, C4<0>, C4<0>; +L_0x5578aaf21700 .functor XOR 1, L_0x5578aaf21770, L_0x5578aaf21860, C4<0>, C4<0>; +L_0x5578aaf21a00 .functor XOR 1, L_0x5578aaf21660, L_0x5578aaf21ad0, C4<0>, C4<0>; +L_0x5578aaf21c80 .functor XOR 1, L_0x5578aaf21cf0, L_0x5578aaf21de0, C4<0>, C4<0>; +L_0x5578aaf22130 .functor XOR 1, L_0x5578aaf22260, L_0x5578aaf22430, C4<0>, C4<0>; +L_0x5578aaf22520 .functor AND 1, L_0x5578aaf22590, L_0x5578aaf22770, C4<1>, C4<1>; +L_0x5578aaf228b0 .functor AND 1, L_0x5578aaf229a0, L_0x5578aaf22be0, C4<1>, C4<1>; +L_0x5578aaf221f0 .functor AND 1, L_0x5578aaf22cd0, L_0x5578aaf22ed0, C4<1>, C4<1>; +L_0x5578aaf23270 .functor AND 1, L_0x5578aaf233c0, L_0x5578aaf23540, C4<1>, C4<1>; +L_0x5578aaf23150 .functor AND 1, L_0x5578aaf231c0, L_0x5578aaf23760, C4<1>, C4<1>; +L_0x5578aaf239e0 .functor AND 1, L_0x5578aaf23af0, L_0x5578aaf23be0, C4<1>, C4<1>; +L_0x5578aaf23e20 .functor AND 1, L_0x5578aaf23e90, L_0x5578aaf23f80, C4<1>, C4<1>; +L_0x5578aaf24360 .functor AND 1, L_0x5578aaf23a50, L_0x5578aaf24690, C4<1>, C4<1>; +L_0x5578aaf24780 .functor AND 1, L_0x5578aaf247f0, L_0x5578aaf24a60, C4<1>, C4<1>; +L_0x5578aaf24ba0 .functor AND 1, L_0x5578aaf24cd0, L_0x5578aaf24f50, C4<1>, C4<1>; +L_0x5578aaf25040 .functor AND 1, L_0x5578aaf250b0, L_0x5578aaf25340, C4<1>, C4<1>; +L_0x5578aaf25770 .functor AND 1, L_0x5578aaf25900, L_0x5578aaf259f0, C4<1>, C4<1>; +v0x5578aaf04ef0_0 .net "A", 3 0, v0x5578aaf10bb0_0; alias, 1 drivers +v0x5578aaf04fb0_0 .net "B", 3 0, v0x5578aaf10c90_0; alias, 1 drivers +v0x5578aaf05070_0 .net *"_ivl_0", 0 0, L_0x5578aaf1fc30; 1 drivers +v0x5578aaf05130_0 .net *"_ivl_100", 0 0, L_0x5578aaf23150; 1 drivers +v0x5578aaf05210_0 .net *"_ivl_103", 0 0, L_0x5578aaf231c0; 1 drivers +v0x5578aaf05340_0 .net *"_ivl_105", 0 0, L_0x5578aaf23760; 1 drivers +v0x5578aaf05420_0 .net *"_ivl_106", 0 0, L_0x5578aaf239e0; 1 drivers +v0x5578aaf05500_0 .net *"_ivl_109", 0 0, L_0x5578aaf23af0; 1 drivers +v0x5578aaf055e0_0 .net *"_ivl_11", 0 0, L_0x5578aaf1fef0; 1 drivers +v0x5578aaf056c0_0 .net *"_ivl_111", 0 0, L_0x5578aaf23be0; 1 drivers +v0x5578aaf057a0_0 .net *"_ivl_112", 0 0, L_0x5578aaf23e20; 1 drivers +v0x5578aaf05880_0 .net *"_ivl_115", 0 0, L_0x5578aaf23e90; 1 drivers +v0x5578aaf05960_0 .net *"_ivl_117", 0 0, L_0x5578aaf23f80; 1 drivers +v0x5578aaf05a40_0 .net *"_ivl_118", 0 0, L_0x5578aaf24360; 1 drivers +v0x5578aaf05b20_0 .net *"_ivl_12", 0 0, L_0x5578aaf1ffe0; 1 drivers +v0x5578aaf05c00_0 .net *"_ivl_122", 0 0, L_0x5578aaf23a50; 1 drivers +v0x5578aaf05ce0_0 .net *"_ivl_124", 0 0, L_0x5578aaf24690; 1 drivers +v0x5578aaf05dc0_0 .net *"_ivl_125", 0 0, L_0x5578aaf24780; 1 drivers +v0x5578aaf05ea0_0 .net *"_ivl_128", 0 0, L_0x5578aaf247f0; 1 drivers +v0x5578aaf05f80_0 .net *"_ivl_130", 0 0, L_0x5578aaf24a60; 1 drivers +v0x5578aaf06060_0 .net *"_ivl_131", 0 0, L_0x5578aaf24ba0; 1 drivers +v0x5578aaf06140_0 .net *"_ivl_134", 0 0, L_0x5578aaf24cd0; 1 drivers +v0x5578aaf06220_0 .net *"_ivl_136", 0 0, L_0x5578aaf24f50; 1 drivers +v0x5578aaf06300_0 .net *"_ivl_137", 0 0, L_0x5578aaf25040; 1 drivers +v0x5578aaf063e0_0 .net *"_ivl_140", 0 0, L_0x5578aaf250b0; 1 drivers +v0x5578aaf064c0_0 .net *"_ivl_142", 0 0, L_0x5578aaf25340; 1 drivers +v0x5578aaf065a0_0 .net *"_ivl_143", 0 0, L_0x5578aaf25770; 1 drivers +v0x5578aaf06680_0 .net *"_ivl_147", 0 0, L_0x5578aaf25900; 1 drivers +v0x5578aaf06760_0 .net *"_ivl_149", 0 0, L_0x5578aaf259f0; 1 drivers +v0x5578aaf06840_0 .net *"_ivl_15", 0 0, L_0x5578aaf20050; 1 drivers +v0x5578aaf06920_0 .net *"_ivl_17", 0 0, L_0x5578aaf20140; 1 drivers +v0x5578aaf06a00_0 .net *"_ivl_18", 0 0, L_0x5578aaf203c0; 1 drivers +v0x5578aaf06ae0_0 .net *"_ivl_22", 0 0, L_0x5578aaf20480; 1 drivers +v0x5578aaf06dd0_0 .net *"_ivl_24", 0 0, L_0x5578aaf205c0; 1 drivers +v0x5578aaf06eb0_0 .net *"_ivl_25", 0 0, L_0x5578aaf206b0; 1 drivers +v0x5578aaf06f90_0 .net *"_ivl_28", 0 0, L_0x5578aaf20720; 1 drivers +v0x5578aaf07070_0 .net *"_ivl_3", 0 0, L_0x5578aaf1fca0; 1 drivers +v0x5578aaf07150_0 .net *"_ivl_30", 0 0, L_0x5578aaf20870; 1 drivers +v0x5578aaf07230_0 .net *"_ivl_31", 0 0, L_0x5578aaf20910; 1 drivers +v0x5578aaf07310_0 .net *"_ivl_34", 0 0, L_0x5578aaf20980; 1 drivers +v0x5578aaf073f0_0 .net *"_ivl_36", 0 0, L_0x5578aaf20ef0; 1 drivers +v0x5578aaf074d0_0 .net *"_ivl_37", 0 0, L_0x5578aaf20f90; 1 drivers +v0x5578aaf075b0_0 .net *"_ivl_40", 0 0, L_0x5578aaf21000; 1 drivers +v0x5578aaf07690_0 .net *"_ivl_42", 0 0, L_0x5578aaf21120; 1 drivers +v0x5578aaf07770_0 .net *"_ivl_43", 0 0, L_0x5578aaf20e80; 1 drivers +v0x5578aaf07850_0 .net *"_ivl_47", 0 0, L_0x5578aaf21480; 1 drivers +v0x5578aaf07930_0 .net *"_ivl_49", 0 0, L_0x5578aaf21570; 1 drivers +v0x5578aaf07a10_0 .net *"_ivl_5", 0 0, L_0x5578aaf1fd40; 1 drivers +v0x5578aaf07af0_0 .net *"_ivl_50", 0 0, L_0x5578aaf21700; 1 drivers +v0x5578aaf07bd0_0 .net *"_ivl_53", 0 0, L_0x5578aaf21770; 1 drivers +v0x5578aaf07cb0_0 .net *"_ivl_55", 0 0, L_0x5578aaf21860; 1 drivers +v0x5578aaf07d90_0 .net *"_ivl_56", 0 0, L_0x5578aaf21a00; 1 drivers +v0x5578aaf07e70_0 .net *"_ivl_59", 0 0, L_0x5578aaf21660; 1 drivers +v0x5578aaf07f50_0 .net *"_ivl_6", 0 0, L_0x5578aaf1fde0; 1 drivers +v0x5578aaf08030_0 .net *"_ivl_61", 0 0, L_0x5578aaf21ad0; 1 drivers +v0x5578aaf08110_0 .net *"_ivl_62", 0 0, L_0x5578aaf21c80; 1 drivers +v0x5578aaf081f0_0 .net *"_ivl_65", 0 0, L_0x5578aaf21cf0; 1 drivers +v0x5578aaf082d0_0 .net *"_ivl_67", 0 0, L_0x5578aaf21de0; 1 drivers +v0x5578aaf083b0_0 .net *"_ivl_68", 0 0, L_0x5578aaf22130; 1 drivers +v0x5578aaf08490_0 .net *"_ivl_72", 0 0, L_0x5578aaf22260; 1 drivers +v0x5578aaf08570_0 .net *"_ivl_74", 0 0, L_0x5578aaf22430; 1 drivers +v0x5578aaf08650_0 .net *"_ivl_75", 0 0, L_0x5578aaf22520; 1 drivers +v0x5578aaf08730_0 .net *"_ivl_78", 0 0, L_0x5578aaf22590; 1 drivers +v0x5578aaf08810_0 .net *"_ivl_80", 0 0, L_0x5578aaf22770; 1 drivers +v0x5578aaf088f0_0 .net *"_ivl_81", 0 0, L_0x5578aaf228b0; 1 drivers +v0x5578aaf08de0_0 .net *"_ivl_84", 0 0, L_0x5578aaf229a0; 1 drivers +v0x5578aaf08ec0_0 .net *"_ivl_86", 0 0, L_0x5578aaf22be0; 1 drivers +v0x5578aaf08fa0_0 .net *"_ivl_87", 0 0, L_0x5578aaf221f0; 1 drivers +v0x5578aaf09080_0 .net *"_ivl_9", 0 0, L_0x5578aaf1fe50; 1 drivers +v0x5578aaf09160_0 .net *"_ivl_90", 0 0, L_0x5578aaf22cd0; 1 drivers +v0x5578aaf09240_0 .net *"_ivl_92", 0 0, L_0x5578aaf22ed0; 1 drivers +v0x5578aaf09320_0 .net *"_ivl_93", 0 0, L_0x5578aaf23270; 1 drivers +v0x5578aaf09400_0 .net *"_ivl_97", 0 0, L_0x5578aaf233c0; 1 drivers +v0x5578aaf094e0_0 .net *"_ivl_99", 0 0, L_0x5578aaf23540; 1 drivers +v0x5578aaf095c0_0 .net "and1", 3 0, L_0x5578aaf20230; 1 drivers +v0x5578aaf096a0_0 .net "opCode", 2 0, L_0x5578aaf25ca0; 1 drivers +v0x5578aaf09780_0 .net "or1", 3 0, L_0x5578aaf211c0; 1 drivers +v0x5578aaf09860_0 .net "resultA", 3 0, L_0x5578aaf22fc0; alias, 1 drivers +v0x5578aaf09940_0 .net "resultO", 3 0, L_0x5578aaf241d0; alias, 1 drivers +v0x5578aaf09a20_0 .net "resultX", 3 0, L_0x5578aaf25430; alias, 1 drivers +v0x5578aaf09b00_0 .net "xor1", 3 0, L_0x5578aaf21fa0; 1 drivers +L_0x5578aaf1fca0 .part v0x5578aaf10bb0_0, 0, 1; +L_0x5578aaf1fd40 .part v0x5578aaf10c90_0, 0, 1; +L_0x5578aaf1fe50 .part v0x5578aaf10bb0_0, 1, 1; +L_0x5578aaf1fef0 .part v0x5578aaf10c90_0, 1, 1; +L_0x5578aaf20050 .part v0x5578aaf10bb0_0, 2, 1; +L_0x5578aaf20140 .part v0x5578aaf10c90_0, 2, 1; +L_0x5578aaf20230 .concat8 [ 1 1 1 1], L_0x5578aaf1fc30, L_0x5578aaf1fde0, L_0x5578aaf1ffe0, L_0x5578aaf203c0; +L_0x5578aaf20480 .part v0x5578aaf10bb0_0, 3, 1; +L_0x5578aaf205c0 .part v0x5578aaf10c90_0, 3, 1; +L_0x5578aaf20720 .part v0x5578aaf10bb0_0, 0, 1; +L_0x5578aaf20870 .part v0x5578aaf10c90_0, 0, 1; +L_0x5578aaf20980 .part v0x5578aaf10bb0_0, 1, 1; +L_0x5578aaf20ef0 .part v0x5578aaf10c90_0, 1, 1; +L_0x5578aaf21000 .part v0x5578aaf10bb0_0, 2, 1; +L_0x5578aaf21120 .part v0x5578aaf10c90_0, 2, 1; +L_0x5578aaf211c0 .concat8 [ 1 1 1 1], L_0x5578aaf206b0, L_0x5578aaf20910, L_0x5578aaf20f90, L_0x5578aaf20e80; +L_0x5578aaf21480 .part v0x5578aaf10bb0_0, 3, 1; +L_0x5578aaf21570 .part v0x5578aaf10c90_0, 3, 1; +L_0x5578aaf21770 .part v0x5578aaf10bb0_0, 0, 1; +L_0x5578aaf21860 .part v0x5578aaf10c90_0, 0, 1; +L_0x5578aaf21660 .part v0x5578aaf10bb0_0, 1, 1; +L_0x5578aaf21ad0 .part v0x5578aaf10c90_0, 1, 1; +L_0x5578aaf21cf0 .part v0x5578aaf10bb0_0, 2, 1; +L_0x5578aaf21de0 .part v0x5578aaf10c90_0, 2, 1; +L_0x5578aaf21fa0 .concat8 [ 1 1 1 1], L_0x5578aaf21700, L_0x5578aaf21a00, L_0x5578aaf21c80, L_0x5578aaf22130; +L_0x5578aaf22260 .part v0x5578aaf10bb0_0, 3, 1; +L_0x5578aaf22430 .part v0x5578aaf10c90_0, 3, 1; +L_0x5578aaf22590 .part L_0x5578aaf25ca0, 0, 1; +L_0x5578aaf22770 .part L_0x5578aaf20230, 0, 1; +L_0x5578aaf229a0 .part L_0x5578aaf25ca0, 0, 1; +L_0x5578aaf22be0 .part L_0x5578aaf20230, 1, 1; +L_0x5578aaf22cd0 .part L_0x5578aaf25ca0, 0, 1; +L_0x5578aaf22ed0 .part L_0x5578aaf20230, 2, 1; +L_0x5578aaf22fc0 .concat8 [ 1 1 1 1], L_0x5578aaf22520, L_0x5578aaf228b0, L_0x5578aaf221f0, L_0x5578aaf23270; +L_0x5578aaf233c0 .part L_0x5578aaf25ca0, 0, 1; +L_0x5578aaf23540 .part L_0x5578aaf20230, 3, 1; +L_0x5578aaf231c0 .part L_0x5578aaf25ca0, 1, 1; +L_0x5578aaf23760 .part L_0x5578aaf211c0, 0, 1; +L_0x5578aaf23af0 .part L_0x5578aaf25ca0, 1, 1; +L_0x5578aaf23be0 .part L_0x5578aaf211c0, 1, 1; +L_0x5578aaf23e90 .part L_0x5578aaf25ca0, 1, 1; +L_0x5578aaf23f80 .part L_0x5578aaf211c0, 2, 1; +L_0x5578aaf241d0 .concat8 [ 1 1 1 1], L_0x5578aaf23150, L_0x5578aaf239e0, L_0x5578aaf23e20, L_0x5578aaf24360; +L_0x5578aaf23a50 .part L_0x5578aaf25ca0, 1, 1; +L_0x5578aaf24690 .part L_0x5578aaf211c0, 3, 1; +L_0x5578aaf247f0 .part L_0x5578aaf25ca0, 2, 1; +L_0x5578aaf24a60 .part L_0x5578aaf21fa0, 0, 1; +L_0x5578aaf24cd0 .part L_0x5578aaf25ca0, 2, 1; +L_0x5578aaf24f50 .part L_0x5578aaf21fa0, 1, 1; +L_0x5578aaf250b0 .part L_0x5578aaf25ca0, 2, 1; +L_0x5578aaf25340 .part L_0x5578aaf21fa0, 2, 1; +L_0x5578aaf25430 .concat8 [ 1 1 1 1], L_0x5578aaf24780, L_0x5578aaf24ba0, L_0x5578aaf25040, L_0x5578aaf25770; +L_0x5578aaf25900 .part L_0x5578aaf25ca0, 2, 1; +L_0x5578aaf259f0 .part L_0x5578aaf21fa0, 3, 1; +S_0x5578aaf09ce0 .scope module, "opCd" "opCode" 3 17, 11 1 0, S_0x5578aae7c060; + .timescale 0 0; + .port_info 0 /INPUT 3 "A"; + .port_info 1 /OUTPUT 8 "opCode"; +L_0x5578aaf11190 .functor NOT 1, L_0x5578aaf11220, C4<0>, C4<0>, C4<0>; +L_0x5578aaf11310 .functor NOT 1, L_0x5578aaf113a0, C4<0>, C4<0>, C4<0>; +L_0x5578aaf11490 .functor NOT 1, L_0x5578aaf11530, C4<0>, C4<0>, C4<0>; +L_0x5578aaf115d0 .functor AND 1, L_0x5578aaf116d0, L_0x5578aaf117f0, C4<1>, C4<1>; +L_0x5578aaf118e0 .functor AND 1, L_0x5578aaf11190, L_0x5578aaf119a0, C4<1>, C4<1>; +L_0x5578aaf11ad0 .functor AND 1, L_0x5578aaf11bd0, L_0x5578aaf11310, C4<1>, C4<1>; +L_0x5578aaf11cc0 .functor AND 1, L_0x5578aaf11190, L_0x5578aaf11310, C4<1>, C4<1>; +L_0x5578aaf11d30 .functor AND 1, L_0x5578aaf11cc0, L_0x5578aaf11490, C4<1>, C4<1>; +L_0x5578aaf11e90 .functor AND 1, L_0x5578aaf11cc0, L_0x5578aaf11f00, C4<1>, C4<1>; +L_0x5578aaf12040 .functor AND 1, L_0x5578aaf118e0, L_0x5578aaf11490, C4<1>, C4<1>; +L_0x5578aaf12160 .functor AND 1, L_0x5578aaf118e0, L_0x5578aaf121d0, C4<1>, C4<1>; +L_0x5578aaf12270 .functor AND 1, L_0x5578aaf11ad0, L_0x5578aaf11490, C4<1>, C4<1>; +L_0x5578aaf123a0 .functor AND 1, L_0x5578aaf11ad0, L_0x5578aaf12410, C4<1>, C4<1>; +L_0x5578aaf12510 .functor AND 1, L_0x5578aaf115d0, L_0x5578aaf11490, C4<1>, C4<1>; +L_0x5578aaf12330 .functor AND 1, L_0x5578aaf115d0, L_0x5578aaf129c0, C4<1>, C4<1>; +v0x5578aaf09e70_0 .net "A", 2 0, v0x5578aaf10fb0_0; alias, 1 drivers +v0x5578aaf09f70_0 .net *"_ivl_1", 0 0, L_0x5578aaf11220; 1 drivers +v0x5578aaf0a050_0 .net *"_ivl_11", 0 0, L_0x5578aaf119a0; 1 drivers +v0x5578aaf0a110_0 .net *"_ivl_13", 0 0, L_0x5578aaf11bd0; 1 drivers +v0x5578aaf0a1f0_0 .net *"_ivl_14", 0 0, L_0x5578aaf11d30; 1 drivers +v0x5578aaf0a320_0 .net *"_ivl_16", 0 0, L_0x5578aaf11e90; 1 drivers +v0x5578aaf0a400_0 .net *"_ivl_19", 0 0, L_0x5578aaf11f00; 1 drivers +v0x5578aaf0a4e0_0 .net *"_ivl_20", 0 0, L_0x5578aaf12040; 1 drivers +v0x5578aaf0a5c0_0 .net *"_ivl_22", 0 0, L_0x5578aaf12160; 1 drivers +v0x5578aaf0a6a0_0 .net *"_ivl_25", 0 0, L_0x5578aaf121d0; 1 drivers +v0x5578aaf0a780_0 .net *"_ivl_26", 0 0, L_0x5578aaf12270; 1 drivers +v0x5578aaf0a860_0 .net *"_ivl_28", 0 0, L_0x5578aaf123a0; 1 drivers +v0x5578aaf0a940_0 .net *"_ivl_3", 0 0, L_0x5578aaf113a0; 1 drivers +v0x5578aaf0aa20_0 .net *"_ivl_31", 0 0, L_0x5578aaf12410; 1 drivers +v0x5578aaf0ab00_0 .net *"_ivl_32", 0 0, L_0x5578aaf12510; 1 drivers +v0x5578aaf0abe0_0 .net *"_ivl_34", 0 0, L_0x5578aaf12330; 1 drivers +v0x5578aaf0acc0_0 .net *"_ivl_38", 0 0, L_0x5578aaf129c0; 1 drivers +v0x5578aaf0ada0_0 .net *"_ivl_5", 0 0, L_0x5578aaf11530; 1 drivers +v0x5578aaf0ae80_0 .net *"_ivl_7", 0 0, L_0x5578aaf116d0; 1 drivers +v0x5578aaf0af60_0 .net *"_ivl_9", 0 0, L_0x5578aaf117f0; 1 drivers +v0x5578aaf0b040_0 .net "and1", 0 0, L_0x5578aaf115d0; 1 drivers +v0x5578aaf0b100_0 .net "and2", 0 0, L_0x5578aaf118e0; 1 drivers +v0x5578aaf0b1c0_0 .net "and3", 0 0, L_0x5578aaf11ad0; 1 drivers +v0x5578aaf0b280_0 .net "and4", 0 0, L_0x5578aaf11cc0; 1 drivers +v0x5578aaf0b340_0 .net "notA", 0 0, L_0x5578aaf11190; 1 drivers +v0x5578aaf0b400_0 .net "notB", 0 0, L_0x5578aaf11310; 1 drivers +v0x5578aaf0b4c0_0 .net "notC", 0 0, L_0x5578aaf11490; 1 drivers +v0x5578aaf0b580_0 .net "opCode", 7 0, L_0x5578aaf12600; alias, 1 drivers +L_0x5578aaf11220 .part v0x5578aaf10fb0_0, 2, 1; +L_0x5578aaf113a0 .part v0x5578aaf10fb0_0, 1, 1; +L_0x5578aaf11530 .part v0x5578aaf10fb0_0, 0, 1; +L_0x5578aaf116d0 .part v0x5578aaf10fb0_0, 2, 1; +L_0x5578aaf117f0 .part v0x5578aaf10fb0_0, 1, 1; +L_0x5578aaf119a0 .part v0x5578aaf10fb0_0, 1, 1; +L_0x5578aaf11bd0 .part v0x5578aaf10fb0_0, 2, 1; +L_0x5578aaf11f00 .part v0x5578aaf10fb0_0, 0, 1; +L_0x5578aaf121d0 .part v0x5578aaf10fb0_0, 0, 1; +L_0x5578aaf12410 .part v0x5578aaf10fb0_0, 0, 1; +LS_0x5578aaf12600_0_0 .concat8 [ 1 1 1 1], L_0x5578aaf11d30, L_0x5578aaf11e90, L_0x5578aaf12040, L_0x5578aaf12160; +LS_0x5578aaf12600_0_4 .concat8 [ 1 1 1 1], L_0x5578aaf12270, L_0x5578aaf123a0, L_0x5578aaf12510, L_0x5578aaf12330; +L_0x5578aaf12600 .concat8 [ 4 4 0 0], LS_0x5578aaf12600_0_0, LS_0x5578aaf12600_0_4; +L_0x5578aaf129c0 .part v0x5578aaf10fb0_0, 0, 1; + .scope S_0x5578aae7dd60; +T_0 ; + %vpi_call 2 20 "$dumpfile", "ALU.vcd" {0 0 0}; + %vpi_call 2 21 "$dumpvars" {0 0 0}; + %pushi/vec4 0, 0, 4; + %store/vec4 v0x5578aaf10bb0_0, 0, 4; + %pushi/vec4 0, 0, 4; + %store/vec4 v0x5578aaf10c90_0, 0, 4; + %pushi/vec4 0, 0, 1; + %store/vec4 v0x5578aaf10d50_0, 0, 1; + %pushi/vec4 0, 0, 3; + %store/vec4 v0x5578aaf10fb0_0, 0, 3; + %delay 5, 0; + %pushi/vec4 0, 0, 4; + %store/vec4 v0x5578aaf10bb0_0, 0, 4; + %pushi/vec4 15, 0, 4; + %store/vec4 v0x5578aaf10c90_0, 0, 4; + %pushi/vec4 0, 0, 1; + %store/vec4 v0x5578aaf10d50_0, 0, 1; + %pushi/vec4 0, 0, 3; + %store/vec4 v0x5578aaf10fb0_0, 0, 3; + %delay 5, 0; + %pushi/vec4 15, 0, 4; + %store/vec4 v0x5578aaf10bb0_0, 0, 4; + %pushi/vec4 0, 0, 4; + %store/vec4 v0x5578aaf10c90_0, 0, 4; + %pushi/vec4 0, 0, 1; + %store/vec4 v0x5578aaf10d50_0, 0, 1; + %pushi/vec4 0, 0, 3; + %store/vec4 v0x5578aaf10fb0_0, 0, 3; + %delay 5, 0; + %pushi/vec4 15, 0, 4; + %store/vec4 v0x5578aaf10bb0_0, 0, 4; + %pushi/vec4 15, 0, 4; + %store/vec4 v0x5578aaf10c90_0, 0, 4; + %pushi/vec4 1, 0, 1; + %store/vec4 v0x5578aaf10d50_0, 0, 1; + %pushi/vec4 0, 0, 3; + %store/vec4 v0x5578aaf10fb0_0, 0, 3; + %delay 5, 0; + %pushi/vec4 7, 0, 4; + %store/vec4 v0x5578aaf10bb0_0, 0, 4; + %pushi/vec4 7, 0, 4; + %store/vec4 v0x5578aaf10c90_0, 0, 4; + %pushi/vec4 1, 0, 1; + %store/vec4 v0x5578aaf10d50_0, 0, 1; + %pushi/vec4 0, 0, 3; + %store/vec4 v0x5578aaf10fb0_0, 0, 3; + %delay 5, 0; + %pushi/vec4 0, 0, 4; + %store/vec4 v0x5578aaf10bb0_0, 0, 4; + %pushi/vec4 0, 0, 4; + %store/vec4 v0x5578aaf10c90_0, 0, 4; + %pushi/vec4 0, 0, 1; + %store/vec4 v0x5578aaf10d50_0, 0, 1; + %pushi/vec4 1, 0, 3; + %store/vec4 v0x5578aaf10fb0_0, 0, 3; + %delay 5, 0; + %pushi/vec4 0, 0, 4; + %store/vec4 v0x5578aaf10bb0_0, 0, 4; + %pushi/vec4 15, 0, 4; + %store/vec4 v0x5578aaf10c90_0, 0, 4; + %pushi/vec4 0, 0, 1; + %store/vec4 v0x5578aaf10d50_0, 0, 1; + %pushi/vec4 1, 0, 3; + %store/vec4 v0x5578aaf10fb0_0, 0, 3; + %delay 5, 0; + %pushi/vec4 15, 0, 4; + %store/vec4 v0x5578aaf10bb0_0, 0, 4; + %pushi/vec4 0, 0, 4; + %store/vec4 v0x5578aaf10c90_0, 0, 4; + %pushi/vec4 0, 0, 1; + %store/vec4 v0x5578aaf10d50_0, 0, 1; + %pushi/vec4 1, 0, 3; + %store/vec4 v0x5578aaf10fb0_0, 0, 3; + %delay 5, 0; + %pushi/vec4 15, 0, 4; + %store/vec4 v0x5578aaf10bb0_0, 0, 4; + %pushi/vec4 15, 0, 4; + %store/vec4 v0x5578aaf10c90_0, 0, 4; + %pushi/vec4 1, 0, 1; + %store/vec4 v0x5578aaf10d50_0, 0, 1; + %pushi/vec4 1, 0, 3; + %store/vec4 v0x5578aaf10fb0_0, 0, 3; + %delay 5, 0; + %pushi/vec4 7, 0, 4; + %store/vec4 v0x5578aaf10bb0_0, 0, 4; + %pushi/vec4 15, 0, 4; + %store/vec4 v0x5578aaf10c90_0, 0, 4; + %pushi/vec4 1, 0, 1; + %store/vec4 v0x5578aaf10d50_0, 0, 1; + %pushi/vec4 1, 0, 3; + %store/vec4 v0x5578aaf10fb0_0, 0, 3; + %delay 5, 0; + %vpi_call 2 33 "$finish" {0 0 0}; + %end; + .thread T_0; +# The file index is used to find the file name in the following table. +:file_names 12; + "N/A"; + ""; + "ALUTB.v"; + "ALU.v"; + "arithmeticUnit.v"; + "addition.v"; + "fulladder.v"; + "halfadder.v"; + "overflowDetect.v"; + "subtraction.v"; + "logicUnit.v"; + "opCode.v"; diff --git a/project0.2/ALU.v b/project0.2/ALU.v new file mode 100644 index 0000000..3939ee7 --- /dev/null +++ b/project0.2/ALU.v @@ -0,0 +1,57 @@ +module ALU ( + input [3:0] A, B, + input CarryIN, + input [2:0] opCodeA, + output [3:0] Y, + output CarryOUT, overflow +); + +// Supports: ADD[0], SUB[1], AND[4], OR[5], XOR[6] + +wire [7:0] opCode8; +wire [3:0] add_Y, sub_Y; +wire [3:0] resultA, resultO, resultX, lUOutput1; +wire [3:0] aUtemp1, aUtemp2, lUOutput2; +wire [3:0] wireY; + +opCode opCd (.A(opCodeA), .opCode(opCode8)); + +arithmeticUnit aU(.opCode(opCode8[1:0]), .A(A), .B(B), .CarryIN(CarryIN), .add_Y(add_Y), .sub_Y(sub_Y), .CarryOUT(CarryOUT), .overflow(overflow)); +logicUnit lU (.opCode(opCode8[6:4]), .A(A), .B(B), .resultA(resultA), .resultO(resultO), .resultX(resultX)); + +or o01 (lUOutput1[0], resultA[0], resultO[0]); +or o02 (lUOutput1[1], resultA[1], resultO[1]); +or o03 (lUOutput1[2], resultA[2], resultO[2]); +or o04 (lUOutput1[3], resultA[3], resultO[3]); + +or o11 (lUOutput2[0], lUOutput1[0], resultX[0]); +or o12 (lUOutput2[1], lUOutput1[1], resultX[1]); +or o13 (lUOutput2[2], lUOutput1[2], resultX[2]); +or o14 (lUOutput2[3], lUOutput1[3], resultX[3]); + + +and a01 (aUtemp1[0], opCode8[0], add_Y[0]); +and a02 (aUtemp1[1], opCode8[0], add_Y[1]); +and a03 (aUtemp1[2], opCode8[0], add_Y[2]); +and a04 (aUtemp1[3], opCode8[0], add_Y[3]); + + +and a11 (aUtemp2[0], opCode8[1], sub_Y[0]); +and a12 (aUtemp2[1], opCode8[1], sub_Y[1]); +and a13 (aUtemp2[2], opCode8[1], sub_Y[2]); +and a14 (aUtemp2[3], opCode8[1], sub_Y[3]); + + +or o21 (wireY[0], aUtemp1[0], aUtemp2[0]); +or o22 (wireY[1], aUtemp1[1], aUtemp2[1]); +or o23 (wireY[2], aUtemp1[2], aUtemp2[2]); +or o24 (wireY[3], aUtemp1[3], aUtemp2[3]); + + +or o1 (Y[0], lUOutput2[0], wireY[0]); +or o2 (Y[1], lUOutput2[1], wireY[1]); +or o3 (Y[2], lUOutput2[2], wireY[2]); +or o4 (Y[3], lUOutput2[3], wireY[3]); + + +endmodule diff --git a/project0.2/ALU.vcd b/project0.2/ALU.vcd new file mode 100644 index 0000000..842ee28 --- /dev/null +++ b/project0.2/ALU.vcd @@ -0,0 +1,1656 @@ +$date + Sun Dec 15 04:15:16 2024 +$end +$version + Icarus Verilog +$end +$timescale + 1s +$end +$scope module ALUTB $end +$var wire 1 ! overflow $end +$var wire 4 " Y [3:0] $end +$var wire 1 # CarryOUT $end +$var reg 4 $ A [3:0] $end +$var reg 4 % B [3:0] $end +$var reg 1 & CarryIN $end +$var reg 3 ' opCodeA [2:0] $end +$scope module uut $end +$var wire 4 ( A [3:0] $end +$var wire 4 ) B [3:0] $end +$var wire 1 & CarryIN $end +$var wire 3 * opCodeA [2:0] $end +$var wire 4 + wireY [3:0] $end +$var wire 4 , sub_Y [3:0] $end +$var wire 4 - resultX [3:0] $end +$var wire 4 . resultO [3:0] $end +$var wire 4 / resultA [3:0] $end +$var wire 1 ! overflow $end +$var wire 8 0 opCode8 [7:0] $end +$var wire 4 1 lUOutput2 [3:0] $end +$var wire 4 2 lUOutput1 [3:0] $end +$var wire 4 3 add_Y [3:0] $end +$var wire 4 4 aUtemp2 [3:0] $end +$var wire 4 5 aUtemp1 [3:0] $end +$var wire 4 6 Y [3:0] $end +$var wire 1 # CarryOUT $end +$scope module aU $end +$var wire 4 7 A [3:0] $end +$var wire 4 8 B [3:0] $end +$var wire 1 & CarryIN $end +$var wire 1 # CarryOUT $end +$var wire 2 9 opCode [1:0] $end +$var wire 1 ! overflow $end +$var wire 4 : sub_Y [3:0] $end +$var wire 4 ; subY [3:0] $end +$var wire 1 < overflowSUB $end +$var wire 1 = overflowADD $end +$var wire 4 > add_Y [3:0] $end +$var wire 4 ? addY [3:0] $end +$var wire 1 @ CarryOUTSUB $end +$var wire 1 A CarryOUTADD $end +$scope module a1 $end +$var wire 4 B A [3:0] $end +$var wire 4 C B [3:0] $end +$var wire 1 & CarryIN $end +$var wire 1 = overflow $end +$var wire 4 D Y [3:0] $end +$var wire 1 A CarryOUT $end +$var wire 4 E Carry4 [3:0] $end +$scope module f0 $end +$var wire 1 F A $end +$var wire 1 G B $end +$var wire 1 & Carry $end +$var wire 1 H CarryO $end +$var wire 1 I xor1 $end +$var wire 1 J and2 $end +$var wire 1 K and1 $end +$var wire 1 L Sum $end +$scope module h1 $end +$var wire 1 F A $end +$var wire 1 G B $end +$var wire 1 K Carry $end +$var wire 1 I Sum $end +$upscope $end +$scope module h2 $end +$var wire 1 I A $end +$var wire 1 & B $end +$var wire 1 J Carry $end +$var wire 1 L Sum $end +$upscope $end +$upscope $end +$scope module f1 $end +$var wire 1 M A $end +$var wire 1 N B $end +$var wire 1 O Carry $end +$var wire 1 P CarryO $end +$var wire 1 Q xor1 $end +$var wire 1 R and2 $end +$var wire 1 S and1 $end +$var wire 1 T Sum $end +$scope module h1 $end +$var wire 1 M A $end +$var wire 1 N B $end +$var wire 1 S Carry $end +$var wire 1 Q Sum $end +$upscope $end +$scope module h2 $end +$var wire 1 Q A $end +$var wire 1 O B $end +$var wire 1 R Carry $end +$var wire 1 T Sum $end +$upscope $end +$upscope $end +$scope module f2 $end +$var wire 1 U A $end +$var wire 1 V B $end +$var wire 1 W Carry $end +$var wire 1 X CarryO $end +$var wire 1 Y xor1 $end +$var wire 1 Z and2 $end +$var wire 1 [ and1 $end +$var wire 1 \ Sum $end +$scope module h1 $end +$var wire 1 U A $end +$var wire 1 V B $end +$var wire 1 [ Carry $end +$var wire 1 Y Sum $end +$upscope $end +$scope module h2 $end +$var wire 1 Y A $end +$var wire 1 W B $end +$var wire 1 Z Carry $end +$var wire 1 \ Sum $end +$upscope $end +$upscope $end +$scope module f3 $end +$var wire 1 ] A $end +$var wire 1 ^ B $end +$var wire 1 _ Carry $end +$var wire 1 A CarryO $end +$var wire 1 ` xor1 $end +$var wire 1 a and2 $end +$var wire 1 b and1 $end +$var wire 1 c Sum $end +$scope module h1 $end +$var wire 1 ] A $end +$var wire 1 ^ B $end +$var wire 1 b Carry $end +$var wire 1 ` Sum $end +$upscope $end +$scope module h2 $end +$var wire 1 ` A $end +$var wire 1 _ B $end +$var wire 1 a Carry $end +$var wire 1 c Sum $end +$upscope $end +$upscope $end +$scope module od1 $end +$var wire 4 d A [3:0] $end +$var wire 4 e B [3:0] $end +$var wire 1 A CarryOUT $end +$var wire 4 f Y [3:0] $end +$var wire 1 g addOverflow $end +$var wire 1 h detect1 $end +$var wire 1 i detect2 $end +$var wire 1 j opC $end +$var wire 2 k opCode [1:0] $end +$var wire 1 = overflowDetect $end +$var wire 1 l sign1 $end +$var wire 1 m sign2 $end +$var wire 1 n sign3 $end +$var wire 1 o subOverflow $end +$upscope $end +$upscope $end +$scope module s1 $end +$var wire 4 p A [3:0] $end +$var wire 4 q B [3:0] $end +$var wire 1 & CarryIN $end +$var wire 4 r xB [3:0] $end +$var wire 1 < overflow $end +$var wire 4 s notB [3:0] $end +$var wire 4 t Y1 [3:0] $end +$var wire 4 u Y [3:0] $end +$var wire 1 @ CarryOUT $end +$scope module a1 $end +$var wire 4 v A [3:0] $end +$var wire 4 w B [3:0] $end +$var wire 1 x CarryIN $end +$var wire 1 y overflow $end +$var wire 4 z Y [3:0] $end +$var wire 1 { CarryOUT $end +$var wire 4 | Carry4 [3:0] $end +$scope module f0 $end +$var wire 1 } A $end +$var wire 1 ~ B $end +$var wire 1 x Carry $end +$var wire 1 !" CarryO $end +$var wire 1 "" xor1 $end +$var wire 1 #" and2 $end +$var wire 1 $" and1 $end +$var wire 1 %" Sum $end +$scope module h1 $end +$var wire 1 } A $end +$var wire 1 ~ B $end +$var wire 1 $" Carry $end +$var wire 1 "" Sum $end +$upscope $end +$scope module h2 $end +$var wire 1 "" A $end +$var wire 1 x B $end +$var wire 1 #" Carry $end +$var wire 1 %" Sum $end +$upscope $end +$upscope $end +$scope module f1 $end +$var wire 1 &" A $end +$var wire 1 '" B $end +$var wire 1 (" Carry $end +$var wire 1 )" CarryO $end +$var wire 1 *" xor1 $end +$var wire 1 +" and2 $end +$var wire 1 ," and1 $end +$var wire 1 -" Sum $end +$scope module h1 $end +$var wire 1 &" A $end +$var wire 1 '" B $end +$var wire 1 ," Carry $end +$var wire 1 *" Sum $end +$upscope $end +$scope module h2 $end +$var wire 1 *" A $end +$var wire 1 (" B $end +$var wire 1 +" Carry $end +$var wire 1 -" Sum $end +$upscope $end +$upscope $end +$scope module f2 $end +$var wire 1 ." A $end +$var wire 1 /" B $end +$var wire 1 0" Carry $end +$var wire 1 1" CarryO $end +$var wire 1 2" xor1 $end +$var wire 1 3" and2 $end +$var wire 1 4" and1 $end +$var wire 1 5" Sum $end +$scope module h1 $end +$var wire 1 ." A $end +$var wire 1 /" B $end +$var wire 1 4" Carry $end +$var wire 1 2" Sum $end +$upscope $end +$scope module h2 $end +$var wire 1 2" A $end +$var wire 1 0" B $end +$var wire 1 3" Carry $end +$var wire 1 5" Sum $end +$upscope $end +$upscope $end +$scope module f3 $end +$var wire 1 6" A $end +$var wire 1 7" B $end +$var wire 1 8" Carry $end +$var wire 1 { CarryO $end +$var wire 1 9" xor1 $end +$var wire 1 :" and2 $end +$var wire 1 ;" and1 $end +$var wire 1 <" Sum $end +$scope module h1 $end +$var wire 1 6" A $end +$var wire 1 7" B $end +$var wire 1 ;" Carry $end +$var wire 1 9" Sum $end +$upscope $end +$scope module h2 $end +$var wire 1 9" A $end +$var wire 1 8" B $end +$var wire 1 :" Carry $end +$var wire 1 <" Sum $end +$upscope $end +$upscope $end +$scope module od1 $end +$var wire 4 =" A [3:0] $end +$var wire 4 >" B [3:0] $end +$var wire 1 { CarryOUT $end +$var wire 4 ?" Y [3:0] $end +$var wire 1 @" addOverflow $end +$var wire 1 A" detect1 $end +$var wire 1 B" detect2 $end +$var wire 1 C" opC $end +$var wire 2 D" opCode [1:0] $end +$var wire 1 y overflowDetect $end +$var wire 1 E" sign1 $end +$var wire 1 F" sign2 $end +$var wire 1 G" sign3 $end +$var wire 1 H" subOverflow $end +$upscope $end +$upscope $end +$scope module a2 $end +$var wire 4 I" A [3:0] $end +$var wire 4 J" B [3:0] $end +$var wire 1 & CarryIN $end +$var wire 1 K" overflow $end +$var wire 4 L" Y [3:0] $end +$var wire 1 @ CarryOUT $end +$var wire 4 M" Carry4 [3:0] $end +$scope module f0 $end +$var wire 1 N" A $end +$var wire 1 O" B $end +$var wire 1 & Carry $end +$var wire 1 P" CarryO $end +$var wire 1 Q" xor1 $end +$var wire 1 R" and2 $end +$var wire 1 S" and1 $end +$var wire 1 T" Sum $end +$scope module h1 $end +$var wire 1 N" A $end +$var wire 1 O" B $end +$var wire 1 S" Carry $end +$var wire 1 Q" Sum $end +$upscope $end +$scope module h2 $end +$var wire 1 Q" A $end +$var wire 1 & B $end +$var wire 1 R" Carry $end +$var wire 1 T" Sum $end +$upscope $end +$upscope $end +$scope module f1 $end +$var wire 1 U" A $end +$var wire 1 V" B $end +$var wire 1 W" Carry $end +$var wire 1 X" CarryO $end +$var wire 1 Y" xor1 $end +$var wire 1 Z" and2 $end +$var wire 1 [" and1 $end +$var wire 1 \" Sum $end +$scope module h1 $end +$var wire 1 U" A $end +$var wire 1 V" B $end +$var wire 1 [" Carry $end +$var wire 1 Y" Sum $end +$upscope $end +$scope module h2 $end +$var wire 1 Y" A $end +$var wire 1 W" B $end +$var wire 1 Z" Carry $end +$var wire 1 \" Sum $end +$upscope $end +$upscope $end +$scope module f2 $end +$var wire 1 ]" A $end +$var wire 1 ^" B $end +$var wire 1 _" Carry $end +$var wire 1 `" CarryO $end +$var wire 1 a" xor1 $end +$var wire 1 b" and2 $end +$var wire 1 c" and1 $end +$var wire 1 d" Sum $end +$scope module h1 $end +$var wire 1 ]" A $end +$var wire 1 ^" B $end +$var wire 1 c" Carry $end +$var wire 1 a" Sum $end +$upscope $end +$scope module h2 $end +$var wire 1 a" A $end +$var wire 1 _" B $end +$var wire 1 b" Carry $end +$var wire 1 d" Sum $end +$upscope $end +$upscope $end +$scope module f3 $end +$var wire 1 e" A $end +$var wire 1 f" B $end +$var wire 1 g" Carry $end +$var wire 1 @ CarryO $end +$var wire 1 h" xor1 $end +$var wire 1 i" and2 $end +$var wire 1 j" and1 $end +$var wire 1 k" Sum $end +$scope module h1 $end +$var wire 1 e" A $end +$var wire 1 f" B $end +$var wire 1 j" Carry $end +$var wire 1 h" Sum $end +$upscope $end +$scope module h2 $end +$var wire 1 h" A $end +$var wire 1 g" B $end +$var wire 1 i" Carry $end +$var wire 1 k" Sum $end +$upscope $end +$upscope $end +$scope module od1 $end +$var wire 4 l" A [3:0] $end +$var wire 4 m" B [3:0] $end +$var wire 1 @ CarryOUT $end +$var wire 4 n" Y [3:0] $end +$var wire 1 o" addOverflow $end +$var wire 1 p" detect1 $end +$var wire 1 q" detect2 $end +$var wire 1 r" opC $end +$var wire 2 s" opCode [1:0] $end +$var wire 1 K" overflowDetect $end +$var wire 1 t" sign1 $end +$var wire 1 u" sign2 $end +$var wire 1 v" sign3 $end +$var wire 1 w" subOverflow $end +$upscope $end +$upscope $end +$scope module od1 $end +$var wire 4 x" A [3:0] $end +$var wire 4 y" B [3:0] $end +$var wire 1 @ CarryOUT $end +$var wire 4 z" Y [3:0] $end +$var wire 1 {" addOverflow $end +$var wire 1 |" detect1 $end +$var wire 1 }" detect2 $end +$var wire 1 ~" opC $end +$var wire 2 !# opCode [1:0] $end +$var wire 1 < overflowDetect $end +$var wire 1 "# sign1 $end +$var wire 1 ## sign2 $end +$var wire 1 $# sign3 $end +$var wire 1 %# subOverflow $end +$upscope $end +$upscope $end +$upscope $end +$scope module lU $end +$var wire 4 &# A [3:0] $end +$var wire 4 '# B [3:0] $end +$var wire 3 (# opCode [2:0] $end +$var wire 4 )# xor1 [3:0] $end +$var wire 4 *# resultX [3:0] $end +$var wire 4 +# resultO [3:0] $end +$var wire 4 ,# resultA [3:0] $end +$var wire 4 -# or1 [3:0] $end +$var wire 4 .# and1 [3:0] $end +$upscope $end +$scope module opCd $end +$var wire 3 /# A [2:0] $end +$var wire 1 0# and1 $end +$var wire 1 1# and2 $end +$var wire 1 2# and3 $end +$var wire 1 3# and4 $end +$var wire 1 4# notA $end +$var wire 1 5# notB $end +$var wire 1 6# notC $end +$var wire 8 7# opCode [7:0] $end +$upscope $end +$upscope $end +$upscope $end +$enddefinitions $end +#0 +$dumpvars +b1 7# +16# +15# +14# +13# +02# +01# +00# +b0 /# +b0 .# +b0 -# +b0 ,# +b0 +# +b0 *# +b0 )# +b0 (# +b0 '# +b0 &# +0%# +0$# +0## +1"# +b10 !# +1~" +0}" +0|" +0{" +b0 z" +b0 y" +b0 x" +0w" +0v" +0u" +1t" +b1 s" +1r" +0q" +1p" +1o" +b0 n" +b0 m" +b0 l" +0k" +0j" +0i" +0h" +0g" +0f" +0e" +0d" +0c" +0b" +0a" +0`" +0_" +0^" +0]" +0\" +0[" +0Z" +0Y" +0X" +0W" +0V" +0U" +0T" +0S" +0R" +0Q" +0P" +0O" +0N" +bz000 M" +b0 L" +0K" +b0 J" +b0 I" +0H" +1G" +1F" +0E" +b1 D" +1C" +0B" +0A" +0@" +b0 ?" +b1 >" +b1111 =" +0<" +0;" +1:" +19" +18" +07" +16" +05" +04" +13" +12" +11" +10" +0/" +1." +0-" +0," +1+" +1*" +1)" +1(" +0'" +1&" +0%" +1$" +0#" +0"" +1!" +1~ +1} +bz111 | +1{ +b0 z +0y +0x +b1 w +b1111 v +b0 u +b0 t +b0 s +b1111 r +b0 q +b0 p +0o +0n +0m +1l +b1 k +1j +0i +1h +1g +b0 f +b0 e +b0 d +0c +0b +0a +0` +0_ +0^ +0] +0\ +0[ +0Z +0Y +0X +0W +0V +0U +0T +0S +0R +0Q +0P +0O +0N +0M +0L +0K +0J +0I +0H +0G +0F +bz000 E +b0 D +b0 C +b0 B +0A +0@ +b0 ? +b0 > +0= +0< +b0 ; +b0 : +b1 9 +b0 8 +b0 7 +b0 6 +b0 5 +b0 4 +b0 3 +b0 2 +b0 1 +b1 0 +b0 / +b0 . +b0 - +b0 , +b0 + +b0 * +b0 ) +b0 ( +b0 ' +0& +b0 % +b0 $ +0# +b0 " +0! +$end +#5 +0K" +0q" +0! +0< +b1111 " +b1111 6 +0}" +0u" +0## +b1 ; +b1 u +b1111 + +0y +1p" +1T" +0\" +0d" +0B" +b1 t +b1 L" +b1 n" +b1 z" +0k" +1o" +b1111 5 +1Q" +00" +0Y" +08" +0a" +0h" +1t" +0v" +0(" +1O" +0)" +0V" +01" +0^" +0{ +0f" +1A" +1m +b1111 3 +b1111 > +bz000 | +0!" +1%" +0+" +0-" +03" +05" +0:" +b1 s +b1 z +b1 ?" +b1 J" +b1 m" +0<" +1@" +0h +0$" +1"" +0*" +02" +09" +1E" +0G" +0F" +1|" +1L +1T +1\ +b1111 ? +b1111 D +b1111 f +1c +0g +0} +0&" +0." +06" +1%# +1I +1Q +1Y +1` +0l +1n +b0 r +b0 v +b0 =" +0"# +1$# +b1111 -# +b1111 )# +1G +1N +1V +1^ +b1111 % +b1111 ) +b1111 8 +b1111 C +b1111 e +b1111 q +b1111 y" +b1111 '# +#10 +1{ +1:" +18" +11" +13" +10" +0g" +0# +1)" +0`" +0@ +1+" +0[" +0c" +0j" +0_" +1(" +0O" +0V" +0^" +0f" +0A" +0y +0X" +bz111 | +1!" +0%" +0-" +05" +b0 s +b0 z +b0 ?" +b0 J" +b0 m" +0<" +0@" +0B" +0Z" +b1111 ; +b1111 u +0! +1$" +0"" +1*" +12" +19" +0E" +1G" +1F" +0W" +0p" +0K" +0< +1} +1&" +1." +16" +bz000 M" +0P" +1T" +1\" +1d" +b1111 t +b1111 L" +b1111 n" +b1111 z" +1k" +0o" +0q" +0}" +b1111 r +b1111 v +b1111 =" +0m +0S" +1Q" +1Y" +1a" +1h" +0t" +1v" +0u" +0## +0G +0N +0V +0^ +1F +1M +1U +1] +1N" +1U" +1]" +1e" +b0 % +b0 ) +b0 8 +b0 C +b0 e +b0 q +b0 y" +b0 '# +b1111 $ +b1111 ( +b1111 7 +b1111 B +b1111 d +b1111 p +b1111 I" +b1111 l" +b1111 x" +b1111 &# +#15 +0K" +1b" +0d" +1i" +0q" +1u" +1## +b1111 " +b1111 6 +1g" +0y +0p" +0! +1`" +0B" +1@ +0k" +0o" +b1111 + +0= +1S" +0Q" +00" +0[" +1Y" +08" +0c" +1a" +0j" +1h" +0t" +1v" +1_" +0i +0(" +1O" +0)" +0V" +01" +0^" +0{ +0f" +1A" +b1111 5 +1X" +0m +bz000 | +0!" +1%" +0+" +0-" +03" +05" +0:" +b1 s +b1 z +b1 ?" +b1 J" +b1 m" +0<" +1@" +1Z" +0\" +1W +1_ +1# +1h +0$" +1"" +0*" +02" +09" +1E" +0G" +0F" +0|" +1O +b1111 3 +b1111 > +1W" +b1 ; +b1 u +1P +1T +1X +1\ +1A +1c +1g +0} +0&" +0." +06" +0%# +bz111 E +1H +bz111 M" +1P" +1K +0I +1S +0Q +1[ +0Y +1b +0` +1l +0n +b0 r +b0 v +b0 =" +1"# +0$# +b1111 .# +b0 )# +0J +b1111 ? +b1111 D +b1111 f +1L +0R" +b1 t +b1 L" +b1 n" +b1 z" +1T" +1G +1N +1V +1^ +1& +b1111 % +b1111 ) +b1111 8 +b1111 C +b1111 e +b1111 q +b1111 y" +b1111 '# +#20 +0K" +1f" +0A" +0y +0q" +b1001 s +b1001 z +b1001 ?" +b1001 J" +b1001 m" +1<" +0@" +0B" +1! +b1 ; +b1 u +19" +0E" +1G" +0F" +1# +1= +1@ +0p" +16" +0A +1i +1i" +b1 t +b1 L" +b1 n" +b1 z" +0k" +0o" +b1000 r +b1000 v +b1000 =" +0b +1m +1h" +0t" +1v" +0u" +0## +b111 .# +b111 -# +0^ +0] +0e" +b111 % +b111 ) +b111 8 +b111 C +b111 e +b111 q +b111 y" +b111 '# +b111 $ +b111 ( +b111 7 +b111 B +b111 d +b111 p +b111 I" +b111 l" +b111 x" +b111 &# +#25 +0K" +0q" +1p" +1o" +1F" +0h" +1t" +0v" +1{ +0f" +1:" +0<" +18" +11" +13" +0! +b0 " +b0 6 +10" +0= +b0 4 +1)" +0i +0# +0u" +0## +b0 + +1+" +0m +0@ +b0 , +b0 : +1(" +0O" +0V" +0^" +0i" +0k" +b0 5 +bz111 | +1!" +0%" +0-" +b0 s +b0 z +b0 ?" +b0 J" +b0 m" +05" +0T +0\ +0c +0_" +0g" +1$" +0"" +1*" +12" +0O +0W +0_ +0W" +0X" +0`" +b10 9 +b0 3 +b0 > +b0 ; +b0 u +1} +1&" +1." +0H +0P +bz000 E +0X +bz000 M" +0P" +0Z" +0\" +0b" +0d" +06# +b10 0 +b10 7# +b1111 r +b1111 v +b1111 =" +0K +0S +0[ +0S" +0Q" +0Y" +0a" +b0 .# +b0 -# +b0 ? +b0 D +b0 f +0L +b0 t +b0 L" +b0 n" +b0 z" +0T" +0G +0N +0V +0F +0M +0U +0N" +0U" +0]" +b1 ' +b1 * +b1 /# +0& +b0 % +b0 ) +b0 8 +b0 C +b0 e +b0 q +b0 y" +b0 '# +b0 $ +b0 ( +b0 7 +b0 B +b0 d +b0 p +b0 I" +b0 l" +b0 x" +b0 &# +#30 +b1 " +b1 6 +b1 + +0K" +b1 4 +0q" +0! +0< +b1 , +b1 : +0}" +0u" +0## +b1 ; +b1 u +0y +1p" +1T" +0\" +0d" +0B" +b1 t +b1 L" +b1 n" +b1 z" +0k" +1o" +1Q" +00" +0Y" +08" +0a" +0h" +1t" +0v" +0(" +1O" +0)" +0V" +01" +0^" +0{ +0f" +1A" +1m +bz000 | +0!" +1%" +0+" +0-" +03" +05" +0:" +b1 s +b1 z +b1 ?" +b1 J" +b1 m" +0<" +1@" +0h +0$" +1"" +0*" +02" +09" +1E" +0G" +0F" +1|" +1L +1T +1\ +b1111 ? +b1111 D +b1111 f +1c +0g +0} +0&" +0." +06" +1%# +1I +1Q +1Y +1` +0l +1n +b0 r +b0 v +b0 =" +0"# +1$# +b1111 -# +b1111 )# +1G +1N +1V +1^ +b1111 % +b1111 ) +b1111 8 +b1111 C +b1111 e +b1111 q +b1111 y" +b1111 '# +#35 +1{ +1:" +b1111 " +b1111 6 +18" +11" +b1111 + +13" +10" +0g" +0# +b1111 4 +1)" +0`" +0@ +1+" +0[" +0c" +0j" +0_" +b1111 , +b1111 : +1(" +0O" +0V" +0^" +0f" +0A" +0y +0X" +bz111 | +1!" +0%" +0-" +05" +b0 s +b0 z +b0 ?" +b0 J" +b0 m" +0<" +0@" +0B" +0Z" +b1111 ; +b1111 u +0! +1$" +0"" +1*" +12" +19" +0E" +1G" +1F" +0W" +0p" +0K" +0< +1} +1&" +1." +16" +bz000 M" +0P" +1T" +1\" +1d" +b1111 t +b1111 L" +b1111 n" +b1111 z" +1k" +0o" +0q" +0}" +b1111 r +b1111 v +b1111 =" +0m +0S" +1Q" +1Y" +1a" +1h" +0t" +1v" +0u" +0## +0G +0N +0V +0^ +1F +1M +1U +1] +1N" +1U" +1]" +1e" +b0 % +b0 ) +b0 8 +b0 C +b0 e +b0 q +b0 y" +b0 '# +b1111 $ +b1111 ( +b1111 7 +b1111 B +b1111 d +b1111 p +b1111 I" +b1111 l" +b1111 x" +b1111 &# +#40 +0K" +b1 " +b1 6 +1b" +0d" +1i" +0q" +1u" +1## +b1 + +1g" +0y +0p" +0! +1`" +0B" +1@ +0k" +0o" +b1 4 +0= +1S" +0Q" +00" +0[" +1Y" +08" +0c" +1a" +0j" +1h" +0t" +1v" +1_" +0i +0(" +1O" +0)" +0V" +01" +0^" +0{ +0f" +1A" +1X" +b1 , +b1 : +0m +bz000 | +0!" +1%" +0+" +0-" +03" +05" +0:" +b1 s +b1 z +b1 ?" +b1 J" +b1 m" +0<" +1@" +1Z" +0\" +1W +1_ +1# +1h +0$" +1"" +0*" +02" +09" +1E" +0G" +0F" +0|" +1O +1W" +b1 ; +b1 u +1P +1T +1X +1\ +1A +1c +1g +0} +0&" +0." +06" +0%# +bz111 E +1H +bz111 M" +1P" +1K +0I +1S +0Q +1[ +0Y +1b +0` +1l +0n +b0 r +b0 v +b0 =" +1"# +0$# +b1111 .# +b0 )# +0J +b1111 ? +b1111 D +b1111 f +1L +0R" +b1 t +b1 L" +b1 n" +b1 z" +1T" +1G +1N +1V +1^ +1& +b1111 % +b1111 ) +b1111 8 +b1111 C +b1111 e +b1111 q +b1111 y" +b1111 '# +#45 +b1001 " +b1001 6 +b1001 + +b1001 4 +1K" +1< +b1001 , +b1001 : +1q" +1}" +1! +b1001 ; +b1001 u +0h +0= +0@ +1p" +1|" +1a +b111 ? +b111 D +b111 f +0c +0g +0i +0i" +b1001 t +b1001 L" +b1001 n" +b1001 z" +1k" +1o" +1%# +0b +1` +0l +1n +0m +0h" +1t" +0v" +1u" +0"# +1$# +1## +b111 .# +b1000 )# +0] +0e" +b111 $ +b111 ( +b111 7 +b111 B +b111 d +b111 p +b111 I" +b111 l" +b111 x" +b111 &# +#50 diff --git a/project0.2/ALUTB.v b/project0.2/ALUTB.v new file mode 100644 index 0000000..da0fe6f --- /dev/null +++ b/project0.2/ALUTB.v @@ -0,0 +1,36 @@ +module ALUTB (); + +reg [3:0] A, B; +reg CarryIN; +reg [2:0] opCodeA; +wire [3:0] Y; +wire CarryOUT, overflow; + +ALU uut( + .A(A), + .B(B), + .CarryIN(CarryIN), + .opCodeA(opCodeA), + .Y(Y), + .CarryOUT(CarryOUT), + .overflow(overflow) +); + +initial begin + $dumpfile("ALU.vcd"); // GTKWAVE SIMULTAIN DATA WAVEFORM + $dumpvars; // ICARUS VERILOG ADD ALL VARIABLES + A = 4'b0000; B = 4'b0000; CarryIN = 1'b0; opCodeA = 3'b000; #5; + A = 4'b0000; B = 4'b1111; CarryIN = 1'b0; opCodeA = 3'b000; #5; + A = 4'b1111; B = 4'b0000; CarryIN = 1'b0; opCodeA = 3'b000; #5; + A = 4'b1111; B = 4'b1111; CarryIN = 1'b1; opCodeA = 3'b000; #5; + A = 4'b0111; B = 4'b0111; CarryIN = 1'b1; opCodeA = 3'b000; #5; + + A = 4'b0000; B = 4'b0000; CarryIN = 1'b0; opCodeA = 3'b001; #5; + A = 4'b0000; B = 4'b1111; CarryIN = 1'b0; opCodeA = 3'b001; #5; + A = 4'b1111; B = 4'b0000; CarryIN = 1'b0; opCodeA = 3'b001; #5; + A = 4'b1111; B = 4'b1111; CarryIN = 1'b1; opCodeA = 3'b001; #5; + A = 4'b0111; B = 4'b1111; CarryIN = 1'b1; opCodeA = 3'b001; #5; + $finish; //NOT CONTAIN CLK, BUT STILL STOPS CODE +end + +endmodule diff --git a/project0.2/addition.v b/project0.2/addition.v new file mode 100644 index 0000000..95f638b --- /dev/null +++ b/project0.2/addition.v @@ -0,0 +1,20 @@ +module addition ( + input [3:0] A, B, + input CarryIN, + output [3:0] Y, + output CarryOUT, + output overflow +); + +wire [2:0] Carry4; + +fulladder f0(.A(A[0]), .B(B[0]), .Carry(CarryIN), .Sum(Y[0]), .CarryO(Carry4[0])); +fulladder f1(.A(A[1]), .B(B[1]), .Carry(Carry4[0]), .Sum(Y[1]), .CarryO(Carry4[1])); +fulladder f2(.A(A[2]), .B(B[2]), .Carry(Carry4[1]), .Sum(Y[2]), .CarryO(Carry4[2])); +fulladder f3(.A(A[3]), .B(B[3]), .Carry(Carry4[2]), .Sum(Y[3]), .CarryO(CarryOUT)); + + +overflowDetect od1 (.opCode(2'b01), .A(A), .B(B), .Y(Y), .CarryOUT(CarryOUT), .overflowDetect(overflow)); + + +endmodule diff --git a/project0.2/arithmeticUnit.v b/project0.2/arithmeticUnit.v new file mode 100644 index 0000000..3ad6ccc --- /dev/null +++ b/project0.2/arithmeticUnit.v @@ -0,0 +1,29 @@ +module arithmeticUnit ( + input [1:0] opCode, + input [3:0] A, B, + input CarryIN, + output [3:0] add_Y, sub_Y, + output CarryOUT, + output overflow +); + +wire [3:0] addY, subY; +wire overflowSUB, overflowADD, CarryOUTADD, CarryOUTSUB; + +addition a1(.A(A), .B(B), .CarryIN(CarryIN), .Y(addY), .CarryOUT(CarryOUTADD), .overflow(overflowADD)); +subtraction s1(.A(A), .B(B), .CarryIN(CarryIN), .Y(subY), .CarryOUT(CarryOUTSUB), .overflow(overflowSUB)); + +and add1 (add_Y[0], opCode[0], addY[0]); +and add2 (add_Y[1], opCode[0], addY[1]); +and add3 (add_Y[2], opCode[0], addY[2]); +and add4 (add_Y[3], opCode[0], addY[3]); + +and sub1 (sub_Y[0], opCode[1], subY[0]); +and sub2 (sub_Y[1], opCode[1], subY[1]); +and sub3 (sub_Y[2], opCode[1], subY[2]); +and sub4 (sub_Y[3], opCode[1], subY[3]); + +or or1 (CarryOUT, CarryOUTADD, CarryOUTSUB); +or or2 (overflow, overflowADD, overflowSUB); + +endmodule diff --git a/project0.2/fulladder.v b/project0.2/fulladder.v new file mode 100644 index 0000000..d89caff --- /dev/null +++ b/project0.2/fulladder.v @@ -0,0 +1,12 @@ +module fulladder ( + input A, B, Carry, + output Sum, CarryO +); + +wire xor1, and1, and2; + +halfadder h1(.A(A), .B(B), .Sum(xor1), .Carry(and1)); +halfadder h2 (.A(xor1), .B(Carry), .Sum(Sum), .Carry(and2)); +or o1 (CarryO, and1, and2); + +endmodule diff --git a/project0.2/fullsubtraction.v b/project0.2/fullsubtraction.v new file mode 100644 index 0000000..092c565 --- /dev/null +++ b/project0.2/fullsubtraction.v @@ -0,0 +1,12 @@ +module fullsubtraction ( + input A, B, BorrowIN, + output Difference, BorrowOut +); + +wire tempD, tempB1, tempB2; + +halfsubtraction hf1(.A(A), .B(B), .Difference(tempD), .Borrow(tempB1)); +halfsubtraction hf2(.A(tempD), .B(BorrowIN), .Difference(Difference), .Borrow(tempB2)); +or o1 (BorrowOut, tempB1, tempB2); + +endmodule diff --git a/project0.2/halfadder.v b/project0.2/halfadder.v new file mode 100644 index 0000000..273c02f --- /dev/null +++ b/project0.2/halfadder.v @@ -0,0 +1,9 @@ +module halfadder ( + input A, B, + output Sum, Carry +); + +and a1 (Carry, A, B); +xor xo1 (Sum, A, B); + +endmodule diff --git a/project0.2/halfsubtraction.v b/project0.2/halfsubtraction.v new file mode 100644 index 0000000..cde8d5d --- /dev/null +++ b/project0.2/halfsubtraction.v @@ -0,0 +1,12 @@ +module halfsubtraction ( + input A, B, + output Difference, Borrow +); + +wire notA; + +xor xo1 (Difference, A, B); +not a1 (notA, A); +and an1 (Borrow, notA, B); + +endmodule diff --git a/project0.2/logicUnit b/project0.2/logicUnit new file mode 100644 index 0000000..9bd692f --- /dev/null +++ b/project0.2/logicUnit @@ -0,0 +1,288 @@ +#! /usr/bin/vvp +:ivl_version "11.0 (stable)"; +:ivl_delay_selection "TYPICAL"; +:vpi_time_precision + 0; +:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/system.vpi"; +:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/vhdl_sys.vpi"; +:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/vhdl_textio.vpi"; +:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/v2005_math.vpi"; +:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/va_math.vpi"; +S_0x56004b80baa0 .scope module, "logicUnitTB" "logicUnitTB" 2 1; + .timescale 0 0; +v0x56004b83a150_0 .var "A", 3 0; +v0x56004b83a230_0 .var "B", 3 0; +v0x56004b83a300_0 .var "opCode", 2 0; +v0x56004b83a400_0 .net "resultA", 3 0, L_0x56004b83d920; 1 drivers +v0x56004b83a4d0_0 .net "resultO", 3 0, L_0x56004b83ec00; 1 drivers +v0x56004b83a570_0 .net "resultX", 3 0, L_0x56004b83fe60; 1 drivers +S_0x56004b80bc30 .scope module, "uut" "logicUnit" 2 7, 3 1 0, S_0x56004b80baa0; + .timescale 0 0; + .port_info 0 /INPUT 3 "opCode"; + .port_info 1 /INPUT 4 "A"; + .port_info 2 /INPUT 4 "B"; + .port_info 3 /OUTPUT 4 "resultA"; + .port_info 4 /OUTPUT 4 "resultO"; + .port_info 5 /OUTPUT 4 "resultX"; +L_0x56004b83a640 .functor AND 1, L_0x56004b83a740, L_0x56004b83a880, C4<1>, C4<1>; +L_0x56004b83a9c0 .functor AND 1, L_0x56004b83aa30, L_0x56004b83ab20, C4<1>, C4<1>; +L_0x56004b83ac40 .functor AND 1, L_0x56004b83acb0, L_0x56004b83ada0, C4<1>, C4<1>; +L_0x56004b83afc0 .functor AND 1, L_0x56004b83b0b0, L_0x56004b83b1f0, C4<1>, C4<1>; +L_0x56004b83b2e0 .functor OR 1, L_0x56004b83b350, L_0x56004b83b4a0, C4<0>, C4<0>; +L_0x56004b83b540 .functor OR 1, L_0x56004b83b5f0, L_0x56004b83b750, C4<0>, C4<0>; +L_0x56004b83b840 .functor OR 1, L_0x56004b83b8b0, L_0x56004b83ba20, C4<0>, C4<0>; +L_0x56004b83b6e0 .functor OR 1, L_0x56004b83bdd0, L_0x56004b83bec0, C4<0>, C4<0>; +L_0x56004b83c050 .functor XOR 1, L_0x56004b83c0c0, L_0x56004b83c1b0, C4<0>, C4<0>; +L_0x56004b83c350 .functor XOR 1, L_0x56004b83bfb0, L_0x56004b83c450, C4<0>, C4<0>; +L_0x56004b83c600 .functor XOR 1, L_0x56004b83c6a0, L_0x56004b83c790, C4<0>, C4<0>; +L_0x56004b83cae0 .functor XOR 1, L_0x56004b83cc10, L_0x56004b83cde0, C4<0>, C4<0>; +L_0x56004b83ced0 .functor AND 1, L_0x56004b83cf40, L_0x56004b83d170, C4<1>, C4<1>; +L_0x56004b83d2b0 .functor AND 1, L_0x56004b83d3a0, L_0x56004b83d590, C4<1>, C4<1>; +L_0x56004b83cba0 .functor AND 1, L_0x56004b83d680, L_0x56004b83d880, C4<1>, C4<1>; +L_0x56004b83dbd0 .functor AND 1, L_0x56004b83dd20, L_0x56004b83de10, C4<1>, C4<1>; +L_0x56004b83e030 .functor AND 1, L_0x56004b83e0a0, L_0x56004b83e190, C4<1>, C4<1>; +L_0x56004b83e410 .functor AND 1, L_0x56004b83e520, L_0x56004b83e610, C4<1>, C4<1>; +L_0x56004b83e850 .functor AND 1, L_0x56004b83e8c0, L_0x56004b83e9b0, C4<1>, C4<1>; +L_0x56004b83ed90 .functor AND 1, L_0x56004b83e480, L_0x56004b83f0c0, C4<1>, C4<1>; +L_0x56004b83f1b0 .functor AND 1, L_0x56004b83f220, L_0x56004b83f490, C4<1>, C4<1>; +L_0x56004b83f5d0 .functor AND 1, L_0x56004b83f700, L_0x56004b83f980, C4<1>, C4<1>; +L_0x56004b83fa70 .functor AND 1, L_0x56004b83fae0, L_0x56004b83fd70, C4<1>, C4<1>; +L_0x56004b8401a0 .functor AND 1, L_0x56004b840330, L_0x56004b840420, C4<1>, C4<1>; +v0x56004b7c9cf0_0 .net "A", 3 0, v0x56004b83a150_0; 1 drivers +v0x56004b835650_0 .net "B", 3 0, v0x56004b83a230_0; 1 drivers +v0x56004b835730_0 .net *"_ivl_0", 0 0, L_0x56004b83a640; 1 drivers +v0x56004b8357f0_0 .net *"_ivl_100", 0 0, L_0x56004b83e030; 1 drivers +v0x56004b8358d0_0 .net *"_ivl_103", 0 0, L_0x56004b83e0a0; 1 drivers +v0x56004b835a00_0 .net *"_ivl_105", 0 0, L_0x56004b83e190; 1 drivers +v0x56004b835ae0_0 .net *"_ivl_106", 0 0, L_0x56004b83e410; 1 drivers +v0x56004b835bc0_0 .net *"_ivl_109", 0 0, L_0x56004b83e520; 1 drivers +v0x56004b835ca0_0 .net *"_ivl_11", 0 0, L_0x56004b83ab20; 1 drivers +v0x56004b835d80_0 .net *"_ivl_111", 0 0, L_0x56004b83e610; 1 drivers +v0x56004b835e60_0 .net *"_ivl_112", 0 0, L_0x56004b83e850; 1 drivers +v0x56004b835f40_0 .net *"_ivl_115", 0 0, L_0x56004b83e8c0; 1 drivers +v0x56004b836020_0 .net *"_ivl_117", 0 0, L_0x56004b83e9b0; 1 drivers +v0x56004b836100_0 .net *"_ivl_118", 0 0, L_0x56004b83ed90; 1 drivers +v0x56004b8361e0_0 .net *"_ivl_12", 0 0, L_0x56004b83ac40; 1 drivers +v0x56004b8362c0_0 .net *"_ivl_122", 0 0, L_0x56004b83e480; 1 drivers +v0x56004b8363a0_0 .net *"_ivl_124", 0 0, L_0x56004b83f0c0; 1 drivers +v0x56004b836480_0 .net *"_ivl_125", 0 0, L_0x56004b83f1b0; 1 drivers +v0x56004b836560_0 .net *"_ivl_128", 0 0, L_0x56004b83f220; 1 drivers +v0x56004b836640_0 .net *"_ivl_130", 0 0, L_0x56004b83f490; 1 drivers +v0x56004b836720_0 .net *"_ivl_131", 0 0, L_0x56004b83f5d0; 1 drivers +v0x56004b836800_0 .net *"_ivl_134", 0 0, L_0x56004b83f700; 1 drivers +v0x56004b8368e0_0 .net *"_ivl_136", 0 0, L_0x56004b83f980; 1 drivers +v0x56004b8369c0_0 .net *"_ivl_137", 0 0, L_0x56004b83fa70; 1 drivers +v0x56004b836aa0_0 .net *"_ivl_140", 0 0, L_0x56004b83fae0; 1 drivers +v0x56004b836b80_0 .net *"_ivl_142", 0 0, L_0x56004b83fd70; 1 drivers +v0x56004b836c60_0 .net *"_ivl_143", 0 0, L_0x56004b8401a0; 1 drivers +v0x56004b836d40_0 .net *"_ivl_147", 0 0, L_0x56004b840330; 1 drivers +v0x56004b836e20_0 .net *"_ivl_149", 0 0, L_0x56004b840420; 1 drivers +v0x56004b836f00_0 .net *"_ivl_15", 0 0, L_0x56004b83acb0; 1 drivers +v0x56004b836fe0_0 .net *"_ivl_17", 0 0, L_0x56004b83ada0; 1 drivers +v0x56004b8370c0_0 .net *"_ivl_18", 0 0, L_0x56004b83afc0; 1 drivers +v0x56004b8371a0_0 .net *"_ivl_22", 0 0, L_0x56004b83b0b0; 1 drivers +v0x56004b837280_0 .net *"_ivl_24", 0 0, L_0x56004b83b1f0; 1 drivers +v0x56004b837360_0 .net *"_ivl_25", 0 0, L_0x56004b83b2e0; 1 drivers +v0x56004b837440_0 .net *"_ivl_28", 0 0, L_0x56004b83b350; 1 drivers +v0x56004b837520_0 .net *"_ivl_3", 0 0, L_0x56004b83a740; 1 drivers +v0x56004b837600_0 .net *"_ivl_30", 0 0, L_0x56004b83b4a0; 1 drivers +v0x56004b8376e0_0 .net *"_ivl_31", 0 0, L_0x56004b83b540; 1 drivers +v0x56004b8377c0_0 .net *"_ivl_34", 0 0, L_0x56004b83b5f0; 1 drivers +v0x56004b8378a0_0 .net *"_ivl_36", 0 0, L_0x56004b83b750; 1 drivers +v0x56004b837980_0 .net *"_ivl_37", 0 0, L_0x56004b83b840; 1 drivers +v0x56004b837a60_0 .net *"_ivl_40", 0 0, L_0x56004b83b8b0; 1 drivers +v0x56004b837b40_0 .net *"_ivl_42", 0 0, L_0x56004b83ba20; 1 drivers +v0x56004b837c20_0 .net *"_ivl_43", 0 0, L_0x56004b83b6e0; 1 drivers +v0x56004b837d00_0 .net *"_ivl_47", 0 0, L_0x56004b83bdd0; 1 drivers +v0x56004b837de0_0 .net *"_ivl_49", 0 0, L_0x56004b83bec0; 1 drivers +v0x56004b837ec0_0 .net *"_ivl_5", 0 0, L_0x56004b83a880; 1 drivers +v0x56004b837fa0_0 .net *"_ivl_50", 0 0, L_0x56004b83c050; 1 drivers +v0x56004b838080_0 .net *"_ivl_53", 0 0, L_0x56004b83c0c0; 1 drivers +v0x56004b838160_0 .net *"_ivl_55", 0 0, L_0x56004b83c1b0; 1 drivers +v0x56004b838240_0 .net *"_ivl_56", 0 0, L_0x56004b83c350; 1 drivers +v0x56004b838320_0 .net *"_ivl_59", 0 0, L_0x56004b83bfb0; 1 drivers +v0x56004b838400_0 .net *"_ivl_6", 0 0, L_0x56004b83a9c0; 1 drivers +v0x56004b8384e0_0 .net *"_ivl_61", 0 0, L_0x56004b83c450; 1 drivers +v0x56004b8385c0_0 .net *"_ivl_62", 0 0, L_0x56004b83c600; 1 drivers +v0x56004b8386a0_0 .net *"_ivl_65", 0 0, L_0x56004b83c6a0; 1 drivers +v0x56004b838780_0 .net *"_ivl_67", 0 0, L_0x56004b83c790; 1 drivers +v0x56004b838860_0 .net *"_ivl_68", 0 0, L_0x56004b83cae0; 1 drivers +v0x56004b838940_0 .net *"_ivl_72", 0 0, L_0x56004b83cc10; 1 drivers +v0x56004b838a20_0 .net *"_ivl_74", 0 0, L_0x56004b83cde0; 1 drivers +v0x56004b838b00_0 .net *"_ivl_75", 0 0, L_0x56004b83ced0; 1 drivers +v0x56004b838be0_0 .net *"_ivl_78", 0 0, L_0x56004b83cf40; 1 drivers +v0x56004b838cc0_0 .net *"_ivl_80", 0 0, L_0x56004b83d170; 1 drivers +v0x56004b838da0_0 .net *"_ivl_81", 0 0, L_0x56004b83d2b0; 1 drivers +v0x56004b839290_0 .net *"_ivl_84", 0 0, L_0x56004b83d3a0; 1 drivers +v0x56004b839370_0 .net *"_ivl_86", 0 0, L_0x56004b83d590; 1 drivers +v0x56004b839450_0 .net *"_ivl_87", 0 0, L_0x56004b83cba0; 1 drivers +v0x56004b839530_0 .net *"_ivl_9", 0 0, L_0x56004b83aa30; 1 drivers +v0x56004b839610_0 .net *"_ivl_90", 0 0, L_0x56004b83d680; 1 drivers +v0x56004b8396f0_0 .net *"_ivl_92", 0 0, L_0x56004b83d880; 1 drivers +v0x56004b8397d0_0 .net *"_ivl_93", 0 0, L_0x56004b83dbd0; 1 drivers +v0x56004b8398b0_0 .net *"_ivl_97", 0 0, L_0x56004b83dd20; 1 drivers +v0x56004b839990_0 .net *"_ivl_99", 0 0, L_0x56004b83de10; 1 drivers +v0x56004b839a70_0 .net "and1", 3 0, L_0x56004b83ae80; 1 drivers +v0x56004b839b50_0 .net "opCode", 2 0, v0x56004b83a300_0; 1 drivers +v0x56004b839c30_0 .net "or1", 3 0, L_0x56004b83bb10; 1 drivers +v0x56004b839d10_0 .net "resultA", 3 0, L_0x56004b83d920; alias, 1 drivers +v0x56004b839df0_0 .net "resultO", 3 0, L_0x56004b83ec00; alias, 1 drivers +v0x56004b839ed0_0 .net "resultX", 3 0, L_0x56004b83fe60; alias, 1 drivers +v0x56004b839fb0_0 .net "xor1", 3 0, L_0x56004b83c950; 1 drivers +L_0x56004b83a740 .part v0x56004b83a150_0, 0, 1; +L_0x56004b83a880 .part v0x56004b83a230_0, 0, 1; +L_0x56004b83aa30 .part v0x56004b83a150_0, 1, 1; +L_0x56004b83ab20 .part v0x56004b83a230_0, 1, 1; +L_0x56004b83acb0 .part v0x56004b83a150_0, 2, 1; +L_0x56004b83ada0 .part v0x56004b83a230_0, 2, 1; +L_0x56004b83ae80 .concat8 [ 1 1 1 1], L_0x56004b83a640, L_0x56004b83a9c0, L_0x56004b83ac40, L_0x56004b83afc0; +L_0x56004b83b0b0 .part v0x56004b83a150_0, 3, 1; +L_0x56004b83b1f0 .part v0x56004b83a230_0, 3, 1; +L_0x56004b83b350 .part v0x56004b83a150_0, 0, 1; +L_0x56004b83b4a0 .part v0x56004b83a230_0, 0, 1; +L_0x56004b83b5f0 .part v0x56004b83a150_0, 1, 1; +L_0x56004b83b750 .part v0x56004b83a230_0, 1, 1; +L_0x56004b83b8b0 .part v0x56004b83a150_0, 2, 1; +L_0x56004b83ba20 .part v0x56004b83a230_0, 2, 1; +L_0x56004b83bb10 .concat8 [ 1 1 1 1], L_0x56004b83b2e0, L_0x56004b83b540, L_0x56004b83b840, L_0x56004b83b6e0; +L_0x56004b83bdd0 .part v0x56004b83a150_0, 3, 1; +L_0x56004b83bec0 .part v0x56004b83a230_0, 3, 1; +L_0x56004b83c0c0 .part v0x56004b83a150_0, 0, 1; +L_0x56004b83c1b0 .part v0x56004b83a230_0, 0, 1; +L_0x56004b83bfb0 .part v0x56004b83a150_0, 1, 1; +L_0x56004b83c450 .part v0x56004b83a230_0, 1, 1; +L_0x56004b83c6a0 .part v0x56004b83a150_0, 2, 1; +L_0x56004b83c790 .part v0x56004b83a230_0, 2, 1; +L_0x56004b83c950 .concat8 [ 1 1 1 1], L_0x56004b83c050, L_0x56004b83c350, L_0x56004b83c600, L_0x56004b83cae0; +L_0x56004b83cc10 .part v0x56004b83a150_0, 3, 1; +L_0x56004b83cde0 .part v0x56004b83a230_0, 3, 1; +L_0x56004b83cf40 .part v0x56004b83a300_0, 0, 1; +L_0x56004b83d170 .part L_0x56004b83ae80, 0, 1; +L_0x56004b83d3a0 .part v0x56004b83a300_0, 0, 1; +L_0x56004b83d590 .part L_0x56004b83ae80, 1, 1; +L_0x56004b83d680 .part v0x56004b83a300_0, 0, 1; +L_0x56004b83d880 .part L_0x56004b83ae80, 2, 1; +L_0x56004b83d920 .concat8 [ 1 1 1 1], L_0x56004b83ced0, L_0x56004b83d2b0, L_0x56004b83cba0, L_0x56004b83dbd0; +L_0x56004b83dd20 .part v0x56004b83a300_0, 0, 1; +L_0x56004b83de10 .part L_0x56004b83ae80, 3, 1; +L_0x56004b83e0a0 .part v0x56004b83a300_0, 1, 1; +L_0x56004b83e190 .part L_0x56004b83bb10, 0, 1; +L_0x56004b83e520 .part v0x56004b83a300_0, 1, 1; +L_0x56004b83e610 .part L_0x56004b83bb10, 1, 1; +L_0x56004b83e8c0 .part v0x56004b83a300_0, 1, 1; +L_0x56004b83e9b0 .part L_0x56004b83bb10, 2, 1; +L_0x56004b83ec00 .concat8 [ 1 1 1 1], L_0x56004b83e030, L_0x56004b83e410, L_0x56004b83e850, L_0x56004b83ed90; +L_0x56004b83e480 .part v0x56004b83a300_0, 1, 1; +L_0x56004b83f0c0 .part L_0x56004b83bb10, 3, 1; +L_0x56004b83f220 .part v0x56004b83a300_0, 2, 1; +L_0x56004b83f490 .part L_0x56004b83c950, 0, 1; +L_0x56004b83f700 .part v0x56004b83a300_0, 2, 1; +L_0x56004b83f980 .part L_0x56004b83c950, 1, 1; +L_0x56004b83fae0 .part v0x56004b83a300_0, 2, 1; +L_0x56004b83fd70 .part L_0x56004b83c950, 2, 1; +L_0x56004b83fe60 .concat8 [ 1 1 1 1], L_0x56004b83f1b0, L_0x56004b83f5d0, L_0x56004b83fa70, L_0x56004b8401a0; +L_0x56004b840330 .part v0x56004b83a300_0, 2, 1; +L_0x56004b840420 .part L_0x56004b83c950, 3, 1; + .scope S_0x56004b80baa0; +T_0 ; + %vpi_call 2 17 "$dumpfile", "logicUnit.vcd" {0 0 0}; + %vpi_call 2 18 "$dumpvars" {0 0 0}; + %pushi/vec4 1, 0, 3; + %store/vec4 v0x56004b83a300_0, 0, 3; + %pushi/vec4 1, 0, 4; + %store/vec4 v0x56004b83a150_0, 0, 4; + %pushi/vec4 1, 0, 4; + %store/vec4 v0x56004b83a230_0, 0, 4; + %delay 2, 0; + %pushi/vec4 1, 0, 3; + %store/vec4 v0x56004b83a300_0, 0, 3; + %pushi/vec4 3, 0, 4; + %store/vec4 v0x56004b83a150_0, 0, 4; + %pushi/vec4 1, 0, 4; + %store/vec4 v0x56004b83a230_0, 0, 4; + %delay 2, 0; + %pushi/vec4 1, 0, 3; + %store/vec4 v0x56004b83a300_0, 0, 3; + %pushi/vec4 9, 0, 4; + %store/vec4 v0x56004b83a150_0, 0, 4; + %pushi/vec4 9, 0, 4; + %store/vec4 v0x56004b83a230_0, 0, 4; + %delay 2, 0; + %pushi/vec4 1, 0, 3; + %store/vec4 v0x56004b83a300_0, 0, 3; + %pushi/vec4 15, 0, 4; + %store/vec4 v0x56004b83a150_0, 0, 4; + %pushi/vec4 15, 0, 4; + %store/vec4 v0x56004b83a230_0, 0, 4; + %delay 2, 0; + %pushi/vec4 1, 0, 3; + %store/vec4 v0x56004b83a300_0, 0, 3; + %pushi/vec4 0, 0, 4; + %store/vec4 v0x56004b83a150_0, 0, 4; + %pushi/vec4 0, 0, 4; + %store/vec4 v0x56004b83a230_0, 0, 4; + %delay 2, 0; + %pushi/vec4 2, 0, 3; + %store/vec4 v0x56004b83a300_0, 0, 3; + %pushi/vec4 1, 0, 4; + %store/vec4 v0x56004b83a150_0, 0, 4; + %pushi/vec4 5, 0, 4; + %store/vec4 v0x56004b83a230_0, 0, 4; + %delay 2, 0; + %pushi/vec4 2, 0, 3; + %store/vec4 v0x56004b83a300_0, 0, 3; + %pushi/vec4 9, 0, 4; + %store/vec4 v0x56004b83a150_0, 0, 4; + %pushi/vec4 5, 0, 4; + %store/vec4 v0x56004b83a230_0, 0, 4; + %delay 2, 0; + %pushi/vec4 2, 0, 3; + %store/vec4 v0x56004b83a300_0, 0, 3; + %pushi/vec4 1, 0, 4; + %store/vec4 v0x56004b83a150_0, 0, 4; + %pushi/vec4 15, 0, 4; + %store/vec4 v0x56004b83a230_0, 0, 4; + %delay 2, 0; + %pushi/vec4 2, 0, 3; + %store/vec4 v0x56004b83a300_0, 0, 3; + %pushi/vec4 0, 0, 4; + %store/vec4 v0x56004b83a150_0, 0, 4; + %pushi/vec4 5, 0, 4; + %store/vec4 v0x56004b83a230_0, 0, 4; + %delay 2, 0; + %pushi/vec4 4, 0, 3; + %store/vec4 v0x56004b83a300_0, 0, 3; + %pushi/vec4 0, 0, 4; + %store/vec4 v0x56004b83a150_0, 0, 4; + %pushi/vec4 5, 0, 4; + %store/vec4 v0x56004b83a230_0, 0, 4; + %delay 2, 0; + %pushi/vec4 4, 0, 3; + %store/vec4 v0x56004b83a300_0, 0, 3; + %pushi/vec4 0, 0, 4; + %store/vec4 v0x56004b83a150_0, 0, 4; + %pushi/vec4 0, 0, 4; + %store/vec4 v0x56004b83a230_0, 0, 4; + %delay 2, 0; + %pushi/vec4 4, 0, 3; + %store/vec4 v0x56004b83a300_0, 0, 3; + %pushi/vec4 0, 0, 4; + %store/vec4 v0x56004b83a150_0, 0, 4; + %pushi/vec4 5, 0, 4; + %store/vec4 v0x56004b83a230_0, 0, 4; + %delay 2, 0; + %pushi/vec4 4, 0, 3; + %store/vec4 v0x56004b83a300_0, 0, 3; + %pushi/vec4 15, 0, 4; + %store/vec4 v0x56004b83a150_0, 0, 4; + %pushi/vec4 15, 0, 4; + %store/vec4 v0x56004b83a230_0, 0, 4; + %delay 2, 0; + %vpi_call 2 34 "$finish" {0 0 0}; + %end; + .thread T_0; +# The file index is used to find the file name in the following table. +:file_names 4; + "N/A"; + ""; + "logicUnitTB.v"; + "logicUnit.v"; diff --git a/project0.2/logicUnit.v b/project0.2/logicUnit.v new file mode 100644 index 0000000..81819af --- /dev/null +++ b/project0.2/logicUnit.v @@ -0,0 +1,39 @@ +module logicUnit ( + input [2:0] opCode, + input [3:0] A, B, + output [3:0] resultA, resultO, resultX +); + +wire [3:0] and1, or1, xor1; + +and a01 (and1[0], A[0], B[0]); +and a02 (and1[1], A[1], B[1]); +and a03 (and1[2], A[2], B[2]); +and a04 (and1[3], A[3], B[3]); + +or o01 (or1[0], A[0], B[0]); +or o02 (or1[1], A[1], B[1]); +or o03 (or1[2], A[2], B[2]); +or o04 (or1[3], A[3], B[3]); + +xor xor01 (xor1[0], A[0], B[0]); +xor xor02 (xor1[1], A[1], B[1]); +xor xor03 (xor1[2], A[2], B[2]); +xor xor04 (xor1[3], A[3], B[3]); + +and a_o1 (resultA[0], opCode[0], and1[0]); +and a_o2 (resultA[1], opCode[0], and1[1]); +and a_o3 (resultA[2], opCode[0], and1[2]); +and a_o4 (resultA[3], opCode[0], and1[3]); + +and o_o1 (resultO[0], opCode[1], or1[0]); +and o_o2 (resultO[1], opCode[1], or1[1]); +and o_o3 (resultO[2], opCode[1], or1[2]); +and o_o4 (resultO[3], opCode[1], or1[3]); + +and x_o1 (resultX[0], opCode[2], xor1[0]); +and x_o2 (resultX[1], opCode[2], xor1[1]); +and x_o3 (resultX[2], opCode[2], xor1[2]); +and x_o4 (resultX[3], opCode[2], xor1[3]); + +endmodule diff --git a/project0.2/logicUnit.vcd b/project0.2/logicUnit.vcd new file mode 100644 index 0000000..ca2ec8f --- /dev/null +++ b/project0.2/logicUnit.vcd @@ -0,0 +1,150 @@ +$date + Sat Dec 14 03:32:40 2024 +$end +$version + Icarus Verilog +$end +$timescale + 1s +$end +$scope module logicUnitTB $end +$var wire 4 ! resultX [3:0] $end +$var wire 4 " resultO [3:0] $end +$var wire 4 # resultA [3:0] $end +$var reg 4 $ A [3:0] $end +$var reg 4 % B [3:0] $end +$var reg 3 & opCode [2:0] $end +$scope module uut $end +$var wire 4 ' A [3:0] $end +$var wire 4 ( B [3:0] $end +$var wire 3 ) opCode [2:0] $end +$var wire 4 * xor1 [3:0] $end +$var wire 4 + resultX [3:0] $end +$var wire 4 , resultO [3:0] $end +$var wire 4 - resultA [3:0] $end +$var wire 4 . or1 [3:0] $end +$var wire 4 / and1 [3:0] $end +$upscope $end +$upscope $end +$enddefinitions $end +#0 +$dumpvars +b1 / +b1 . +b1 - +b0 , +b0 + +b0 * +b1 ) +b1 ( +b1 ' +b1 & +b1 % +b1 $ +b1 # +b0 " +b0 ! +$end +#2 +b11 . +b10 * +b11 $ +b11 ' +#4 +b1001 # +b1001 - +b1001 / +b1001 . +b0 * +b1001 % +b1001 ( +b1001 $ +b1001 ' +#6 +b1111 # +b1111 - +b1111 / +b1111 . +b1111 % +b1111 ( +b1111 $ +b1111 ' +#8 +b0 # +b0 - +b0 / +b0 . +b0 % +b0 ( +b0 $ +b0 ' +#10 +b101 " +b101 , +b100 * +b1 / +b101 . +b101 % +b101 ( +b1 $ +b1 ' +b10 & +b10 ) +#12 +b1101 " +b1101 , +b1101 . +b1100 * +b1001 $ +b1001 ' +#14 +b1111 " +b1111 , +b1111 . +b1110 * +b1111 % +b1111 ( +b1 $ +b1 ' +#16 +b101 " +b101 , +b101 . +b0 / +b101 * +b101 % +b101 ( +b0 $ +b0 ' +#18 +b0 " +b0 , +b101 ! +b101 + +b100 & +b100 ) +#20 +b0 ! +b0 + +b0 . +b0 * +b0 % +b0 ( +#22 +b101 ! +b101 + +b101 . +b101 * +b101 % +b101 ( +#24 +b0 ! +b0 + +b1111 / +b1111 . +b0 * +b1111 % +b1111 ( +b1111 $ +b1111 ' +#26 diff --git a/project0.2/logicUnitTB.v b/project0.2/logicUnitTB.v new file mode 100644 index 0000000..6e905b4 --- /dev/null +++ b/project0.2/logicUnitTB.v @@ -0,0 +1,37 @@ +module logicUnitTB (); + +reg [2:0] opCode; +reg [3:0] A, B; +wire [3:0] resultA, resultO, resultX; + +logicUnit uut ( + .opCode(opCode), + .A(A), + .B(B), + .resultA(resultA), + .resultO(resultO), + .resultX(resultX) +); + +initial begin + $dumpfile("logicUnit.vcd"); + $dumpvars; + opCode = 3'b001; A = 4'b0001; B = 4'b0001; #2; + opCode = 3'b001; A = 4'b0011; B = 4'b0001; #2; + opCode = 3'b001; A = 4'b1001; B = 4'b1001; #2; + opCode = 3'b001; A = 4'b1111; B = 4'b1111; #2; + opCode = 3'b001; A = 4'b0000; B = 4'b0000; #2; + + opCode = 3'b010; A = 4'b0001; B = 4'b0101; #2; + opCode = 3'b010; A = 4'b1001; B = 4'b0101; #2; + opCode = 3'b010; A = 4'b0001; B = 4'b1111; #2; + opCode = 3'b010; A = 4'b0000; B = 4'b0101; #2; + + opCode = 3'b100; A = 4'b0000; B = 4'b0101; #2; + opCode = 3'b100; A = 4'b0000; B = 4'b0000; #2; + opCode = 3'b100; A = 4'b0000; B = 4'b0101; #2; + opCode = 3'b100; A = 4'b1111; B = 4'b1111; #2; + $finish; +end + +endmodule diff --git a/project0.2/multiplier b/project0.2/multiplier new file mode 100644 index 0000000..7112d64 --- /dev/null +++ b/project0.2/multiplier @@ -0,0 +1,957 @@ +#! /usr/bin/vvp +:ivl_version "11.0 (stable)"; +:ivl_delay_selection "TYPICAL"; +:vpi_time_precision + 0; +:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/system.vpi"; +:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/vhdl_sys.vpi"; +:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/vhdl_textio.vpi"; +:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/v2005_math.vpi"; +:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/va_math.vpi"; +S_0x55f30e07afd0 .scope module, "multiplierTB" "multiplierTB" 2 1; + .timescale 0 0; +v0x55f30e0dc920_0 .var "A", 3 0; +v0x55f30e0dc9e0_0 .var "B", 3 0; +v0x55f30e0dca80_0 .net "Y", 7 0, L_0x55f30e0eaf60; 1 drivers +S_0x55f30e070c90 .scope module, "uut" "multiplier" 2 5, 3 1 0, S_0x55f30e07afd0; + .timescale 0 0; + .port_info 0 /INPUT 4 "A"; + .port_info 1 /INPUT 4 "B"; + .port_info 2 /OUTPUT 8 "Y"; +L_0x55f30e0dcb20 .functor AND 1, L_0x55f30e0dcb90, L_0x55f30e0dccd0, C4<1>, C4<1>; +L_0x55f30e0dce10 .functor AND 1, L_0x55f30e0dce80, L_0x55f30e0dcf70, C4<1>, C4<1>; +L_0x55f30e0dd060 .functor AND 1, L_0x55f30e0dd0d0, L_0x55f30e0dd1c0, C4<1>, C4<1>; +L_0x55f30e0dd330 .functor AND 1, L_0x55f30e0dd3d0, L_0x55f30e0dd470, C4<1>, C4<1>; +L_0x7f5d71fc0018 .functor BUFT 1, C4<1>, C4<0>, C4<0>, C4<0>; +L_0x55f30e0dd740 .functor NOT 1, L_0x7f5d71fc0018, C4<0>, C4<0>, C4<0>; +L_0x55f30e0dd850 .functor AND 1, L_0x55f30e0dd900, L_0x55f30e0dda50, C4<1>, C4<1>; +L_0x55f30e0ddaf0 .functor AND 1, L_0x55f30e0ddb60, L_0x55f30e0ddcc0, C4<1>, C4<1>; +L_0x55f30e0dddb0 .functor AND 1, L_0x55f30e0dde70, L_0x55f30e0ddfe0, C4<1>, C4<1>; +L_0x55f30e0ddc50 .functor AND 1, L_0x55f30e0de450, L_0x55f30e0de540, C4<1>, C4<1>; +L_0x55f30e0e1870 .functor AND 1, L_0x55f30e0e1940, L_0x55f30e0de630, C4<1>, C4<1>; +L_0x55f30e0e1a90 .functor AND 1, L_0x55f30e0e1b00, L_0x55f30e0e1c60, C4<1>, C4<1>; +L_0x55f30e0e1d50 .functor AND 1, L_0x55f30e0e1e30, L_0x55f30e0e1ff0, C4<1>, C4<1>; +L_0x55f30e0e2350 .functor AND 1, L_0x55f30e0e2410, L_0x55f30e0e2500, C4<1>, C4<1>; +L_0x55f30e0e5c40 .functor AND 1, L_0x55f30e0e5d30, L_0x55f30e0e5dd0, C4<1>, C4<1>; +L_0x55f30e0e1dc0 .functor AND 1, L_0x55f30e0e5f80, L_0x55f30e0e6070, C4<1>, C4<1>; +L_0x55f30e0e6280 .functor AND 1, L_0x55f30e0e6380, L_0x55f30e0e6470, C4<1>, C4<1>; +L_0x55f30e0e6940 .functor AND 1, L_0x55f30e0e6a00, L_0x55f30e0e6c30, C4<1>, C4<1>; +L_0x7f5d71fc0210 .functor BUFT 1, C4<0>, C4<0>, C4<0>, C4<0>; +L_0x55f30e0e9fe0 .functor OR 1, L_0x55f30e0ea0f0, L_0x7f5d71fc0210, C4<0>, C4<0>; +L_0x7f5d71fc0258 .functor BUFT 1, C4<0>, C4<0>, C4<0>, C4<0>; +L_0x55f30e0ea2f0 .functor OR 1, L_0x55f30e0ea360, L_0x7f5d71fc0258, C4<0>, C4<0>; +L_0x7f5d71fc02a0 .functor BUFT 1, C4<0>, C4<0>, C4<0>, C4<0>; +L_0x55f30e0ea4a0 .functor OR 1, L_0x55f30e0ea050, L_0x7f5d71fc02a0, C4<0>, C4<0>; +L_0x7f5d71fc02e8 .functor BUFT 1, C4<0>, C4<0>, C4<0>, C4<0>; +L_0x55f30e0ea7d0 .functor OR 1, L_0x55f30e0ea840, L_0x7f5d71fc02e8, C4<0>, C4<0>; +L_0x7f5d71fc0330 .functor BUFT 1, C4<0>, C4<0>, C4<0>, C4<0>; +L_0x55f30e0ea980 .functor OR 1, L_0x55f30e0eaab0, L_0x7f5d71fc0330, C4<0>, C4<0>; +L_0x7f5d71fc0378 .functor BUFT 1, C4<0>, C4<0>, C4<0>, C4<0>; +L_0x55f30e0eadb0 .functor OR 1, L_0x55f30e0eae20, L_0x7f5d71fc0378, C4<0>, C4<0>; +L_0x7f5d71fc03c0 .functor BUFT 1, C4<0>, C4<0>, C4<0>, C4<0>; +L_0x55f30e0eb460 .functor OR 1, L_0x55f30e0eb5f0, L_0x7f5d71fc03c0, C4<0>, C4<0>; +v0x55f30e0d7700_0 .net "A", 3 0, v0x55f30e0dc920_0; 1 drivers +v0x55f30e0d7800_0 .net "B", 3 0, v0x55f30e0dc9e0_0; 1 drivers +v0x55f30e0d78e0_0 .net "S0", 4 0, L_0x55f30e0e1740; 1 drivers +v0x55f30e0d79a0_0 .net "S1", 4 0, L_0x55f30e0e5a10; 1 drivers +v0x55f30e0d7a80_0 .net "S2", 4 0, L_0x55f30e0e9eb0; 1 drivers +v0x55f30e0d7bb0_0 .net "Y", 7 0, L_0x55f30e0eaf60; alias, 1 drivers +v0x55f30e0d7c90_0 .net *"_ivl_1", 0 0, L_0x55f30e0dcb20; 1 drivers +v0x55f30e0d7d70_0 .net *"_ivl_10", 0 0, L_0x55f30e0dce80; 1 drivers +v0x55f30e0d7e50_0 .net *"_ivl_101", 0 0, L_0x55f30e0e5dd0; 1 drivers +v0x55f30e0d7f30_0 .net *"_ivl_102", 0 0, L_0x55f30e0e1dc0; 1 drivers +v0x55f30e0d8010_0 .net *"_ivl_105", 0 0, L_0x55f30e0e5f80; 1 drivers +v0x55f30e0d80f0_0 .net *"_ivl_107", 0 0, L_0x55f30e0e6070; 1 drivers +v0x55f30e0d81d0_0 .net *"_ivl_108", 0 0, L_0x55f30e0e6280; 1 drivers +v0x55f30e0d82b0_0 .net *"_ivl_111", 0 0, L_0x55f30e0e6380; 1 drivers +v0x55f30e0d8390_0 .net *"_ivl_113", 0 0, L_0x55f30e0e6470; 1 drivers +v0x55f30e0d8470_0 .net *"_ivl_114", 0 0, L_0x55f30e0e6940; 1 drivers +v0x55f30e0d8550_0 .net *"_ivl_118", 0 0, L_0x55f30e0e6a00; 1 drivers +v0x55f30e0d8740_0 .net *"_ivl_12", 0 0, L_0x55f30e0dcf70; 1 drivers +v0x55f30e0d8820_0 .net *"_ivl_120", 0 0, L_0x55f30e0e6c30; 1 drivers +v0x55f30e0d8900_0 .net *"_ivl_13", 0 0, L_0x55f30e0dd060; 1 drivers +v0x55f30e0d89e0_0 .net *"_ivl_130", 0 0, L_0x55f30e0e9fe0; 1 drivers +v0x55f30e0d8ac0_0 .net *"_ivl_133", 0 0, L_0x55f30e0ea0f0; 1 drivers +v0x55f30e0d8ba0_0 .net/2u *"_ivl_134", 0 0, L_0x7f5d71fc0210; 1 drivers +v0x55f30e0d8c80_0 .net *"_ivl_136", 0 0, L_0x55f30e0ea2f0; 1 drivers +v0x55f30e0d8d60_0 .net *"_ivl_139", 0 0, L_0x55f30e0ea360; 1 drivers +v0x55f30e0d8e40_0 .net/2u *"_ivl_140", 0 0, L_0x7f5d71fc0258; 1 drivers +v0x55f30e0d8f20_0 .net *"_ivl_142", 0 0, L_0x55f30e0ea4a0; 1 drivers +v0x55f30e0d9000_0 .net *"_ivl_145", 0 0, L_0x55f30e0ea050; 1 drivers +v0x55f30e0d90e0_0 .net/2u *"_ivl_146", 0 0, L_0x7f5d71fc02a0; 1 drivers +v0x55f30e0d91c0_0 .net *"_ivl_148", 0 0, L_0x55f30e0ea7d0; 1 drivers +v0x55f30e0d92a0_0 .net *"_ivl_151", 0 0, L_0x55f30e0ea840; 1 drivers +v0x55f30e0d9380_0 .net/2u *"_ivl_152", 0 0, L_0x7f5d71fc02e8; 1 drivers +v0x55f30e0d9460_0 .net *"_ivl_154", 0 0, L_0x55f30e0ea980; 1 drivers +v0x55f30e0d9750_0 .net *"_ivl_157", 0 0, L_0x55f30e0eaab0; 1 drivers +v0x55f30e0d9830_0 .net/2u *"_ivl_158", 0 0, L_0x7f5d71fc0330; 1 drivers +v0x55f30e0d9910_0 .net *"_ivl_16", 0 0, L_0x55f30e0dd0d0; 1 drivers +v0x55f30e0d99f0_0 .net *"_ivl_160", 0 0, L_0x55f30e0eadb0; 1 drivers +v0x55f30e0d9ad0_0 .net *"_ivl_163", 0 0, L_0x55f30e0eae20; 1 drivers +v0x55f30e0d9bb0_0 .net/2u *"_ivl_164", 0 0, L_0x7f5d71fc0378; 1 drivers +v0x55f30e0d9c90_0 .net *"_ivl_166", 0 0, L_0x55f30e0eb460; 1 drivers +v0x55f30e0d9d70_0 .net *"_ivl_170", 0 0, L_0x55f30e0eb5f0; 1 drivers +v0x55f30e0d9e50_0 .net/2u *"_ivl_171", 0 0, L_0x7f5d71fc03c0; 1 drivers +v0x55f30e0d9f30_0 .net *"_ivl_18", 0 0, L_0x55f30e0dd1c0; 1 drivers +v0x55f30e0da010_0 .net *"_ivl_19", 0 0, L_0x55f30e0dd330; 1 drivers +v0x55f30e0da0f0_0 .net *"_ivl_22", 0 0, L_0x55f30e0dd3d0; 1 drivers +v0x55f30e0da1d0_0 .net *"_ivl_24", 0 0, L_0x55f30e0dd470; 1 drivers +v0x55f30e0da2b0_0 .net *"_ivl_25", 0 0, L_0x55f30e0dd740; 1 drivers +v0x55f30e0da390_0 .net/2u *"_ivl_28", 0 0, L_0x7f5d71fc0018; 1 drivers +v0x55f30e0da470_0 .net *"_ivl_30", 0 0, L_0x55f30e0dd850; 1 drivers +v0x55f30e0da550_0 .net *"_ivl_33", 0 0, L_0x55f30e0dd900; 1 drivers +v0x55f30e0da630_0 .net *"_ivl_35", 0 0, L_0x55f30e0dda50; 1 drivers +v0x55f30e0da710_0 .net *"_ivl_36", 0 0, L_0x55f30e0ddaf0; 1 drivers +v0x55f30e0da7f0_0 .net *"_ivl_39", 0 0, L_0x55f30e0ddb60; 1 drivers +v0x55f30e0da8d0_0 .net *"_ivl_4", 0 0, L_0x55f30e0dcb90; 1 drivers +v0x55f30e0da9b0_0 .net *"_ivl_41", 0 0, L_0x55f30e0ddcc0; 1 drivers +v0x55f30e0daa90_0 .net *"_ivl_42", 0 0, L_0x55f30e0dddb0; 1 drivers +v0x55f30e0dab70_0 .net *"_ivl_45", 0 0, L_0x55f30e0dde70; 1 drivers +v0x55f30e0dac50_0 .net *"_ivl_47", 0 0, L_0x55f30e0ddfe0; 1 drivers +v0x55f30e0dad30_0 .net *"_ivl_48", 0 0, L_0x55f30e0ddc50; 1 drivers +v0x55f30e0dae10_0 .net *"_ivl_52", 0 0, L_0x55f30e0de450; 1 drivers +v0x55f30e0daef0_0 .net *"_ivl_54", 0 0, L_0x55f30e0de540; 1 drivers +v0x55f30e0dafd0_0 .net *"_ivl_6", 0 0, L_0x55f30e0dccd0; 1 drivers +v0x55f30e0db0b0_0 .net *"_ivl_62", 0 0, L_0x55f30e0e1870; 1 drivers +v0x55f30e0db190_0 .net *"_ivl_65", 0 0, L_0x55f30e0e1940; 1 drivers +v0x55f30e0db270_0 .net *"_ivl_67", 0 0, L_0x55f30e0de630; 1 drivers +v0x55f30e0db760_0 .net *"_ivl_68", 0 0, L_0x55f30e0e1a90; 1 drivers +v0x55f30e0db840_0 .net *"_ivl_7", 0 0, L_0x55f30e0dce10; 1 drivers +v0x55f30e0db920_0 .net *"_ivl_71", 0 0, L_0x55f30e0e1b00; 1 drivers +v0x55f30e0dba00_0 .net *"_ivl_73", 0 0, L_0x55f30e0e1c60; 1 drivers +v0x55f30e0dbae0_0 .net *"_ivl_74", 0 0, L_0x55f30e0e1d50; 1 drivers +v0x55f30e0dbbc0_0 .net *"_ivl_77", 0 0, L_0x55f30e0e1e30; 1 drivers +v0x55f30e0dbca0_0 .net *"_ivl_79", 0 0, L_0x55f30e0e1ff0; 1 drivers +v0x55f30e0dbd80_0 .net *"_ivl_80", 0 0, L_0x55f30e0e2350; 1 drivers +v0x55f30e0dbe60_0 .net *"_ivl_84", 0 0, L_0x55f30e0e2410; 1 drivers +v0x55f30e0dbf40_0 .net *"_ivl_86", 0 0, L_0x55f30e0e2500; 1 drivers +v0x55f30e0dc020_0 .net *"_ivl_96", 0 0, L_0x55f30e0e5c40; 1 drivers +v0x55f30e0dc100_0 .net *"_ivl_99", 0 0, L_0x55f30e0e5d30; 1 drivers +v0x55f30e0dc1e0_0 .net "a0", 3 0, L_0x55f30e0de1e0; 1 drivers +v0x55f30e0dc2a0_0 .net "a1", 3 0, L_0x55f30e0e20e0; 1 drivers +v0x55f30e0dc3b0_0 .net "a2", 3 0, L_0x55f30e0e6160; 1 drivers +v0x55f30e0dc4c0_0 .net "b0", 3 0, L_0x55f30e0dd5b0; 1 drivers +v0x55f30e0dc5d0_0 .net "overflow0", 0 0, L_0x55f30e0e1630; 1 drivers +v0x55f30e0dc6c0_0 .net "overflow1", 0 0, L_0x55f30e0e56b0; 1 drivers +v0x55f30e0dc7b0_0 .net "overflow2", 0 0, L_0x55f30e0e9b60; 1 drivers +L_0x55f30e0dcb90 .part v0x55f30e0dc920_0, 0, 1; +L_0x55f30e0dccd0 .part v0x55f30e0dc9e0_0, 0, 1; +L_0x55f30e0dce80 .part v0x55f30e0dc920_0, 1, 1; +L_0x55f30e0dcf70 .part v0x55f30e0dc9e0_0, 0, 1; +L_0x55f30e0dd0d0 .part v0x55f30e0dc920_0, 2, 1; +L_0x55f30e0dd1c0 .part v0x55f30e0dc9e0_0, 0, 1; +L_0x55f30e0dd3d0 .part v0x55f30e0dc920_0, 3, 1; +L_0x55f30e0dd470 .part v0x55f30e0dc9e0_0, 0, 1; +L_0x55f30e0dd5b0 .concat8 [ 1 1 1 1], L_0x55f30e0dce10, L_0x55f30e0dd060, L_0x55f30e0dd330, L_0x55f30e0dd740; +L_0x55f30e0dd900 .part v0x55f30e0dc920_0, 0, 1; +L_0x55f30e0dda50 .part v0x55f30e0dc9e0_0, 1, 1; +L_0x55f30e0ddb60 .part v0x55f30e0dc920_0, 1, 1; +L_0x55f30e0ddcc0 .part v0x55f30e0dc9e0_0, 1, 1; +L_0x55f30e0dde70 .part v0x55f30e0dc920_0, 2, 1; +L_0x55f30e0ddfe0 .part v0x55f30e0dc9e0_0, 1, 1; +L_0x55f30e0de1e0 .concat8 [ 1 1 1 1], L_0x55f30e0dd850, L_0x55f30e0ddaf0, L_0x55f30e0dddb0, L_0x55f30e0ddc50; +L_0x55f30e0de450 .part v0x55f30e0dc920_0, 3, 1; +L_0x55f30e0de540 .part v0x55f30e0dc9e0_0, 1, 1; +L_0x55f30e0e1740 .concat8 [ 4 1 0 0], L_0x55f30e0e03e0, L_0x55f30e0dff40; +L_0x55f30e0e1940 .part v0x55f30e0dc920_0, 0, 1; +L_0x55f30e0de630 .part v0x55f30e0dc9e0_0, 2, 1; +L_0x55f30e0e1b00 .part v0x55f30e0dc920_0, 1, 1; +L_0x55f30e0e1c60 .part v0x55f30e0dc9e0_0, 2, 1; +L_0x55f30e0e1e30 .part v0x55f30e0dc920_0, 2, 1; +L_0x55f30e0e1ff0 .part v0x55f30e0dc9e0_0, 2, 1; +L_0x55f30e0e20e0 .concat8 [ 1 1 1 1], L_0x55f30e0e1870, L_0x55f30e0e1a90, L_0x55f30e0e1d50, L_0x55f30e0e2350; +L_0x55f30e0e2410 .part v0x55f30e0dc920_0, 3, 1; +L_0x55f30e0e2500 .part v0x55f30e0dc9e0_0, 2, 1; +L_0x55f30e0e57c0 .part L_0x55f30e0e1740, 1, 4; +L_0x55f30e0e5a10 .concat8 [ 4 1 0 0], L_0x55f30e0e45b0, L_0x55f30e0e4110; +L_0x55f30e0e5d30 .part v0x55f30e0dc920_0, 0, 1; +L_0x55f30e0e5dd0 .part v0x55f30e0dc9e0_0, 3, 1; +L_0x55f30e0e5f80 .part v0x55f30e0dc920_0, 1, 1; +L_0x55f30e0e6070 .part v0x55f30e0dc9e0_0, 3, 1; +L_0x55f30e0e6380 .part v0x55f30e0dc920_0, 2, 1; +L_0x55f30e0e6470 .part v0x55f30e0dc9e0_0, 3, 1; +L_0x55f30e0e6160 .concat8 [ 1 1 1 1], L_0x55f30e0e5c40, L_0x55f30e0e1dc0, L_0x55f30e0e6280, L_0x55f30e0e6940; +L_0x55f30e0e6a00 .part v0x55f30e0dc920_0, 3, 1; +L_0x55f30e0e6c30 .part v0x55f30e0dc9e0_0, 3, 1; +L_0x55f30e0e9c70 .part L_0x55f30e0e5a10, 1, 4; +L_0x55f30e0e9eb0 .concat8 [ 4 1 0 0], L_0x55f30e0e8bb0, L_0x55f30e0e8710; +L_0x55f30e0ea0f0 .part L_0x55f30e0e1740, 0, 1; +L_0x55f30e0ea360 .part L_0x55f30e0e5a10, 0, 1; +L_0x55f30e0ea050 .part L_0x55f30e0e9eb0, 0, 1; +L_0x55f30e0ea840 .part L_0x55f30e0e9eb0, 1, 1; +L_0x55f30e0eaab0 .part L_0x55f30e0e9eb0, 2, 1; +L_0x55f30e0eae20 .part L_0x55f30e0e9eb0, 3, 1; +LS_0x55f30e0eaf60_0_0 .concat8 [ 1 1 1 1], L_0x55f30e0dcb20, L_0x55f30e0e9fe0, L_0x55f30e0ea2f0, L_0x55f30e0ea4a0; +LS_0x55f30e0eaf60_0_4 .concat8 [ 1 1 1 1], L_0x55f30e0ea7d0, L_0x55f30e0ea980, L_0x55f30e0eadb0, L_0x55f30e0eb460; +L_0x55f30e0eaf60 .concat8 [ 4 4 0 0], LS_0x55f30e0eaf60_0_0, LS_0x55f30e0eaf60_0_4; +L_0x55f30e0eb5f0 .part L_0x55f30e0e9eb0, 4, 1; +S_0x55f30e094c90 .scope module, "add0" "addition" 3 26, 4 1 0, S_0x55f30e070c90; + .timescale 0 0; + .port_info 0 /INPUT 4 "A"; + .port_info 1 /INPUT 4 "B"; + .port_info 2 /INPUT 1 "CarryIN"; + .port_info 3 /OUTPUT 4 "Y"; + .port_info 4 /OUTPUT 1 "CarryOUT"; + .port_info 5 /OUTPUT 1 "overflow"; +v0x55f30e0c81a0_0 .net "A", 3 0, L_0x55f30e0de1e0; alias, 1 drivers +v0x55f30e0c8280_0 .net "B", 3 0, L_0x55f30e0dd5b0; alias, 1 drivers +v0x55f30e0c8350_0 .net "Carry4", 3 0, L_0x55f30e0eb730; 1 drivers +L_0x7f5d71fc00a8 .functor BUFT 1, C4<0>, C4<0>, C4<0>, C4<0>; +v0x55f30e0c8420_0 .net "CarryIN", 0 0, L_0x7f5d71fc00a8; 1 drivers +v0x55f30e0c84c0_0 .net "CarryOUT", 0 0, L_0x55f30e0dff40; 1 drivers +v0x55f30e0c8600_0 .net "Y", 3 0, L_0x55f30e0e03e0; 1 drivers +o0x7f5d7200a578 .functor BUFZ 1, C4; HiZ drive +; Elide local net with no drivers, v0x55f30e0c86c0_0 name=_ivl_41 +v0x55f30e0c8780_0 .net "overflow", 0 0, L_0x55f30e0e1630; alias, 1 drivers +L_0x55f30e0dea40 .part L_0x55f30e0de1e0, 0, 1; +L_0x55f30e0deb70 .part L_0x55f30e0dd5b0, 0, 1; +L_0x55f30e0deff0 .part L_0x55f30e0de1e0, 1, 1; +L_0x55f30e0df120 .part L_0x55f30e0dd5b0, 1, 1; +L_0x55f30e0df250 .part L_0x55f30e0eb730, 0, 1; +L_0x55f30e0df720 .part L_0x55f30e0de1e0, 2, 1; +L_0x55f30e0df890 .part L_0x55f30e0dd5b0, 2, 1; +L_0x55f30e0df9c0 .part L_0x55f30e0eb730, 1, 1; +L_0x55f30e0dfff0 .part L_0x55f30e0de1e0, 3, 1; +L_0x55f30e0e0120 .part L_0x55f30e0dd5b0, 3, 1; +L_0x55f30e0e02b0 .part L_0x55f30e0eb730, 2, 1; +L_0x55f30e0e03e0 .concat8 [ 1 1 1 1], L_0x55f30e0de960, L_0x55f30e0def10, L_0x55f30e0df5b0, L_0x55f30e0dfe60; +L_0x55f30e0eb730 .concat [ 1 1 1 1], L_0x55f30e0de9d0, L_0x55f30e0def80, L_0x55f30e0df690, o0x7f5d7200a578; +S_0x55f30e087a30 .scope module, "f0" "fulladder" 4 11, 5 1 0, S_0x55f30e094c90; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /INPUT 1 "Carry"; + .port_info 3 /OUTPUT 1 "Sum"; + .port_info 4 /OUTPUT 1 "CarryO"; +L_0x55f30e0de9d0 .functor OR 1, L_0x55f30e0de6d0, L_0x55f30e0de8a0, C4<0>, C4<0>; +v0x55f30e0c26d0_0 .net "A", 0 0, L_0x55f30e0dea40; 1 drivers +v0x55f30e0c2790_0 .net "B", 0 0, L_0x55f30e0deb70; 1 drivers +v0x55f30e0c2860_0 .net "Carry", 0 0, L_0x7f5d71fc00a8; alias, 1 drivers +v0x55f30e0c2960_0 .net "CarryO", 0 0, L_0x55f30e0de9d0; 1 drivers +v0x55f30e0c2a00_0 .net "Sum", 0 0, L_0x55f30e0de960; 1 drivers +v0x55f30e0c2aa0_0 .net "and1", 0 0, L_0x55f30e0de6d0; 1 drivers +v0x55f30e0c2b70_0 .net "and2", 0 0, L_0x55f30e0de8a0; 1 drivers +v0x55f30e0c2c40_0 .net "xor1", 0 0, L_0x55f30e0de830; 1 drivers +S_0x55f30e0a2230 .scope module, "h1" "halfadder" 5 8, 6 1 0, S_0x55f30e087a30; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /OUTPUT 1 "Sum"; + .port_info 3 /OUTPUT 1 "Carry"; +L_0x55f30e0de6d0 .functor AND 1, L_0x55f30e0dea40, L_0x55f30e0deb70, C4<1>, C4<1>; +L_0x55f30e0de830 .functor XOR 1, L_0x55f30e0dea40, L_0x55f30e0deb70, C4<0>, C4<0>; +v0x55f30e0902b0_0 .net "A", 0 0, L_0x55f30e0dea40; alias, 1 drivers +v0x55f30e084b20_0 .net "B", 0 0, L_0x55f30e0deb70; alias, 1 drivers +v0x55f30e083050_0 .net "Carry", 0 0, L_0x55f30e0de6d0; alias, 1 drivers +v0x55f30e0a7570_0 .net "Sum", 0 0, L_0x55f30e0de830; alias, 1 drivers +S_0x55f30e0c22e0 .scope module, "h2" "halfadder" 5 9, 6 1 0, S_0x55f30e087a30; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /OUTPUT 1 "Sum"; + .port_info 3 /OUTPUT 1 "Carry"; +L_0x55f30e0de8a0 .functor AND 1, L_0x55f30e0de830, L_0x7f5d71fc00a8, C4<1>, C4<1>; +L_0x55f30e0de960 .functor XOR 1, L_0x55f30e0de830, L_0x7f5d71fc00a8, C4<0>, C4<0>; +v0x55f30e0a6830_0 .net "A", 0 0, L_0x55f30e0de830; alias, 1 drivers +v0x55f30e0127f0_0 .net "B", 0 0, L_0x7f5d71fc00a8; alias, 1 drivers +v0x55f30e0c2490_0 .net "Carry", 0 0, L_0x55f30e0de8a0; alias, 1 drivers +v0x55f30e0c2560_0 .net "Sum", 0 0, L_0x55f30e0de960; alias, 1 drivers +S_0x55f30e0c2d30 .scope module, "f1" "fulladder" 4 12, 5 1 0, S_0x55f30e094c90; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /INPUT 1 "Carry"; + .port_info 3 /OUTPUT 1 "Sum"; + .port_info 4 /OUTPUT 1 "CarryO"; +L_0x55f30e0def80 .functor OR 1, L_0x55f30e0ded30, L_0x55f30e0dee10, C4<0>, C4<0>; +v0x55f30e0c3ab0_0 .net "A", 0 0, L_0x55f30e0deff0; 1 drivers +v0x55f30e0c3b70_0 .net "B", 0 0, L_0x55f30e0df120; 1 drivers +v0x55f30e0c3c40_0 .net "Carry", 0 0, L_0x55f30e0df250; 1 drivers +v0x55f30e0c3d40_0 .net "CarryO", 0 0, L_0x55f30e0def80; 1 drivers +v0x55f30e0c3de0_0 .net "Sum", 0 0, L_0x55f30e0def10; 1 drivers +v0x55f30e0c3ed0_0 .net "and1", 0 0, L_0x55f30e0ded30; 1 drivers +v0x55f30e0c3fa0_0 .net "and2", 0 0, L_0x55f30e0dee10; 1 drivers +v0x55f30e0c4070_0 .net "xor1", 0 0, L_0x55f30e0deda0; 1 drivers +S_0x55f30e0c2f10 .scope module, "h1" "halfadder" 5 8, 6 1 0, S_0x55f30e0c2d30; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /OUTPUT 1 "Sum"; + .port_info 3 /OUTPUT 1 "Carry"; +L_0x55f30e0ded30 .functor AND 1, L_0x55f30e0deff0, L_0x55f30e0df120, C4<1>, C4<1>; +L_0x55f30e0deda0 .functor XOR 1, L_0x55f30e0deff0, L_0x55f30e0df120, C4<0>, C4<0>; +v0x55f30e0c3120_0 .net "A", 0 0, L_0x55f30e0deff0; alias, 1 drivers +v0x55f30e0c3200_0 .net "B", 0 0, L_0x55f30e0df120; alias, 1 drivers +v0x55f30e0c32c0_0 .net "Carry", 0 0, L_0x55f30e0ded30; alias, 1 drivers +v0x55f30e0c3390_0 .net "Sum", 0 0, L_0x55f30e0deda0; alias, 1 drivers +S_0x55f30e0c3500 .scope module, "h2" "halfadder" 5 9, 6 1 0, S_0x55f30e0c2d30; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /OUTPUT 1 "Sum"; + .port_info 3 /OUTPUT 1 "Carry"; +L_0x55f30e0dee10 .functor AND 1, L_0x55f30e0deda0, L_0x55f30e0df250, C4<1>, C4<1>; +L_0x55f30e0def10 .functor XOR 1, L_0x55f30e0deda0, L_0x55f30e0df250, C4<0>, C4<0>; +v0x55f30e0c3700_0 .net "A", 0 0, L_0x55f30e0deda0; alias, 1 drivers +v0x55f30e0c37d0_0 .net "B", 0 0, L_0x55f30e0df250; alias, 1 drivers +v0x55f30e0c3870_0 .net "Carry", 0 0, L_0x55f30e0dee10; alias, 1 drivers +v0x55f30e0c3940_0 .net "Sum", 0 0, L_0x55f30e0def10; alias, 1 drivers +S_0x55f30e0c4160 .scope module, "f2" "fulladder" 4 13, 5 1 0, S_0x55f30e094c90; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /INPUT 1 "Carry"; + .port_info 3 /OUTPUT 1 "Sum"; + .port_info 4 /OUTPUT 1 "CarryO"; +L_0x55f30e0df690 .functor OR 1, L_0x55f30e0df380, L_0x55f30e0df460, C4<0>, C4<0>; +v0x55f30e0c4ef0_0 .net "A", 0 0, L_0x55f30e0df720; 1 drivers +v0x55f30e0c4fb0_0 .net "B", 0 0, L_0x55f30e0df890; 1 drivers +v0x55f30e0c5080_0 .net "Carry", 0 0, L_0x55f30e0df9c0; 1 drivers +v0x55f30e0c5180_0 .net "CarryO", 0 0, L_0x55f30e0df690; 1 drivers +v0x55f30e0c5220_0 .net "Sum", 0 0, L_0x55f30e0df5b0; 1 drivers +v0x55f30e0c5310_0 .net "and1", 0 0, L_0x55f30e0df380; 1 drivers +v0x55f30e0c53e0_0 .net "and2", 0 0, L_0x55f30e0df460; 1 drivers +v0x55f30e0c54b0_0 .net "xor1", 0 0, L_0x55f30e0df3f0; 1 drivers +S_0x55f30e0c4370 .scope module, "h1" "halfadder" 5 8, 6 1 0, S_0x55f30e0c4160; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /OUTPUT 1 "Sum"; + .port_info 3 /OUTPUT 1 "Carry"; +L_0x55f30e0df380 .functor AND 1, L_0x55f30e0df720, L_0x55f30e0df890, C4<1>, C4<1>; +L_0x55f30e0df3f0 .functor XOR 1, L_0x55f30e0df720, L_0x55f30e0df890, C4<0>, C4<0>; +v0x55f30e0c4580_0 .net "A", 0 0, L_0x55f30e0df720; alias, 1 drivers +v0x55f30e0c4640_0 .net "B", 0 0, L_0x55f30e0df890; alias, 1 drivers +v0x55f30e0c4700_0 .net "Carry", 0 0, L_0x55f30e0df380; alias, 1 drivers +v0x55f30e0c47d0_0 .net "Sum", 0 0, L_0x55f30e0df3f0; alias, 1 drivers +S_0x55f30e0c4940 .scope module, "h2" "halfadder" 5 9, 6 1 0, S_0x55f30e0c4160; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /OUTPUT 1 "Sum"; + .port_info 3 /OUTPUT 1 "Carry"; +L_0x55f30e0df460 .functor AND 1, L_0x55f30e0df3f0, L_0x55f30e0df9c0, C4<1>, C4<1>; +L_0x55f30e0df5b0 .functor XOR 1, L_0x55f30e0df3f0, L_0x55f30e0df9c0, C4<0>, C4<0>; +v0x55f30e0c4b40_0 .net "A", 0 0, L_0x55f30e0df3f0; alias, 1 drivers +v0x55f30e0c4c10_0 .net "B", 0 0, L_0x55f30e0df9c0; alias, 1 drivers +v0x55f30e0c4cb0_0 .net "Carry", 0 0, L_0x55f30e0df460; alias, 1 drivers +v0x55f30e0c4d80_0 .net "Sum", 0 0, L_0x55f30e0df5b0; alias, 1 drivers +S_0x55f30e0c55a0 .scope module, "f3" "fulladder" 4 14, 5 1 0, S_0x55f30e094c90; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /INPUT 1 "Carry"; + .port_info 3 /OUTPUT 1 "Sum"; + .port_info 4 /OUTPUT 1 "CarryO"; +L_0x55f30e0dff40 .functor OR 1, L_0x55f30e0dfb40, L_0x55f30e0dfcd0, C4<0>, C4<0>; +v0x55f30e0c6320_0 .net "A", 0 0, L_0x55f30e0dfff0; 1 drivers +v0x55f30e0c63e0_0 .net "B", 0 0, L_0x55f30e0e0120; 1 drivers +v0x55f30e0c64b0_0 .net "Carry", 0 0, L_0x55f30e0e02b0; 1 drivers +v0x55f30e0c65b0_0 .net "CarryO", 0 0, L_0x55f30e0dff40; alias, 1 drivers +v0x55f30e0c6650_0 .net "Sum", 0 0, L_0x55f30e0dfe60; 1 drivers +v0x55f30e0c6740_0 .net "and1", 0 0, L_0x55f30e0dfb40; 1 drivers +v0x55f30e0c6810_0 .net "and2", 0 0, L_0x55f30e0dfcd0; 1 drivers +v0x55f30e0c68e0_0 .net "xor1", 0 0, L_0x55f30e0dfc40; 1 drivers +S_0x55f30e0c5780 .scope module, "h1" "halfadder" 5 8, 6 1 0, S_0x55f30e0c55a0; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /OUTPUT 1 "Sum"; + .port_info 3 /OUTPUT 1 "Carry"; +L_0x55f30e0dfb40 .functor AND 1, L_0x55f30e0dfff0, L_0x55f30e0e0120, C4<1>, C4<1>; +L_0x55f30e0dfc40 .functor XOR 1, L_0x55f30e0dfff0, L_0x55f30e0e0120, C4<0>, C4<0>; +v0x55f30e0c5990_0 .net "A", 0 0, L_0x55f30e0dfff0; alias, 1 drivers +v0x55f30e0c5a70_0 .net "B", 0 0, L_0x55f30e0e0120; alias, 1 drivers +v0x55f30e0c5b30_0 .net "Carry", 0 0, L_0x55f30e0dfb40; alias, 1 drivers +v0x55f30e0c5c00_0 .net "Sum", 0 0, L_0x55f30e0dfc40; alias, 1 drivers +S_0x55f30e0c5d70 .scope module, "h2" "halfadder" 5 9, 6 1 0, S_0x55f30e0c55a0; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /OUTPUT 1 "Sum"; + .port_info 3 /OUTPUT 1 "Carry"; +L_0x55f30e0dfcd0 .functor AND 1, L_0x55f30e0dfc40, L_0x55f30e0e02b0, C4<1>, C4<1>; +L_0x55f30e0dfe60 .functor XOR 1, L_0x55f30e0dfc40, L_0x55f30e0e02b0, C4<0>, C4<0>; +v0x55f30e0c5f70_0 .net "A", 0 0, L_0x55f30e0dfc40; alias, 1 drivers +v0x55f30e0c6040_0 .net "B", 0 0, L_0x55f30e0e02b0; alias, 1 drivers +v0x55f30e0c60e0_0 .net "Carry", 0 0, L_0x55f30e0dfcd0; alias, 1 drivers +v0x55f30e0c61b0_0 .net "Sum", 0 0, L_0x55f30e0dfe60; alias, 1 drivers +S_0x55f30e0c69d0 .scope module, "od1" "overflowDetect" 4 17, 7 1 0, S_0x55f30e094c90; + .timescale 0 0; + .port_info 0 /INPUT 2 "opCode"; + .port_info 1 /INPUT 4 "A"; + .port_info 2 /INPUT 4 "B"; + .port_info 3 /INPUT 4 "Y"; + .port_info 4 /INPUT 1 "CarryOUT"; + .port_info 5 /OUTPUT 1 "overflowDetect"; +L_0x55f30e0e04f0 .functor OR 1, L_0x55f30e0e0580, L_0x55f30e0e0620, C4<0>, C4<0>; +L_0x55f30e0e06c0 .functor XNOR 1, L_0x55f30e0e0730, L_0x55f30e0e0930, C4<0>, C4<0>; +L_0x55f30e0e0b30 .functor XOR 1, L_0x55f30e0e0ba0, L_0x55f30e0e0c90, C4<0>, C4<0>; +L_0x55f30e0e0dc0 .functor XOR 1, L_0x55f30e0e0e30, L_0x55f30e0e0f20, C4<0>, C4<0>; +L_0x55f30e0e1060 .functor AND 1, L_0x55f30e0e06c0, L_0x55f30e0e1120, C4<1>, C4<1>; +L_0x55f30e0e1210 .functor AND 1, L_0x55f30e0e0b30, L_0x55f30e0e1310, C4<1>, C4<1>; +L_0x55f30e0e1460 .functor OR 1, L_0x55f30e0e1060, L_0x55f30e0e1210, C4<0>, C4<0>; +L_0x55f30e0e14d0 .functor AND 1, L_0x55f30e0e1460, L_0x55f30e0e0dc0, C4<1>, C4<1>; +L_0x55f30e0e1630 .functor AND 1, L_0x55f30e0e04f0, L_0x55f30e0e14d0, C4<1>, C4<1>; +v0x55f30e0c6ca0_0 .net "A", 3 0, L_0x55f30e0de1e0; alias, 1 drivers +v0x55f30e0c6d80_0 .net "B", 3 0, L_0x55f30e0dd5b0; alias, 1 drivers +v0x55f30e0c6e60_0 .net "CarryOUT", 0 0, L_0x55f30e0dff40; alias, 1 drivers +v0x55f30e0c6f00_0 .net "Y", 3 0, L_0x55f30e0e03e0; alias, 1 drivers +v0x55f30e0c6fa0_0 .net *"_ivl_1", 0 0, L_0x55f30e0e0580; 1 drivers +v0x55f30e0c70d0_0 .net *"_ivl_11", 0 0, L_0x55f30e0e0c90; 1 drivers +v0x55f30e0c71b0_0 .net *"_ivl_13", 0 0, L_0x55f30e0e0e30; 1 drivers +v0x55f30e0c7290_0 .net *"_ivl_15", 0 0, L_0x55f30e0e0f20; 1 drivers +v0x55f30e0c7370_0 .net *"_ivl_17", 0 0, L_0x55f30e0e1120; 1 drivers +v0x55f30e0c74e0_0 .net *"_ivl_19", 0 0, L_0x55f30e0e1310; 1 drivers +v0x55f30e0c75c0_0 .net *"_ivl_3", 0 0, L_0x55f30e0e0620; 1 drivers +v0x55f30e0c76a0_0 .net *"_ivl_5", 0 0, L_0x55f30e0e0730; 1 drivers +v0x55f30e0c7780_0 .net *"_ivl_7", 0 0, L_0x55f30e0e0930; 1 drivers +v0x55f30e0c7860_0 .net *"_ivl_9", 0 0, L_0x55f30e0e0ba0; 1 drivers +v0x55f30e0c7940_0 .net "addOverflow", 0 0, L_0x55f30e0e1060; 1 drivers +v0x55f30e0c7a00_0 .net "detect1", 0 0, L_0x55f30e0e1460; 1 drivers +v0x55f30e0c7ac0_0 .net "detect2", 0 0, L_0x55f30e0e14d0; 1 drivers +v0x55f30e0c7b80_0 .net "opC", 0 0, L_0x55f30e0e04f0; 1 drivers +L_0x7f5d71fc0060 .functor BUFT 1, C4<01>, C4<0>, C4<0>, C4<0>; +v0x55f30e0c7c40_0 .net "opCode", 1 0, L_0x7f5d71fc0060; 1 drivers +v0x55f30e0c7d20_0 .net "overflowDetect", 0 0, L_0x55f30e0e1630; alias, 1 drivers +v0x55f30e0c7de0_0 .net "sign1", 0 0, L_0x55f30e0e06c0; 1 drivers +v0x55f30e0c7ea0_0 .net "sign2", 0 0, L_0x55f30e0e0dc0; 1 drivers +v0x55f30e0c7f60_0 .net "sign3", 0 0, L_0x55f30e0e0b30; 1 drivers +v0x55f30e0c8020_0 .net "subOverflow", 0 0, L_0x55f30e0e1210; 1 drivers +L_0x55f30e0e0580 .part L_0x7f5d71fc0060, 0, 1; +L_0x55f30e0e0620 .part L_0x7f5d71fc0060, 1, 1; +L_0x55f30e0e0730 .part L_0x55f30e0de1e0, 3, 1; +L_0x55f30e0e0930 .part L_0x55f30e0dd5b0, 3, 1; +L_0x55f30e0e0ba0 .part L_0x55f30e0de1e0, 3, 1; +L_0x55f30e0e0c90 .part L_0x55f30e0dd5b0, 3, 1; +L_0x55f30e0e0e30 .part L_0x55f30e0e03e0, 3, 1; +L_0x55f30e0e0f20 .part L_0x55f30e0de1e0, 3, 1; +L_0x55f30e0e1120 .part L_0x7f5d71fc0060, 0, 1; +L_0x55f30e0e1310 .part L_0x7f5d71fc0060, 1, 1; +S_0x55f30e0c88c0 .scope module, "add1" "addition" 3 42, 4 1 0, S_0x55f30e070c90; + .timescale 0 0; + .port_info 0 /INPUT 4 "A"; + .port_info 1 /INPUT 4 "B"; + .port_info 2 /INPUT 1 "CarryIN"; + .port_info 3 /OUTPUT 4 "Y"; + .port_info 4 /OUTPUT 1 "CarryOUT"; + .port_info 5 /OUTPUT 1 "overflow"; +v0x55f30e0cf710_0 .net "A", 3 0, L_0x55f30e0e20e0; alias, 1 drivers +v0x55f30e0cf7f0_0 .net "B", 3 0, L_0x55f30e0e57c0; 1 drivers +v0x55f30e0cf8c0_0 .net "Carry4", 3 0, L_0x55f30e0eb900; 1 drivers +L_0x7f5d71fc0138 .functor BUFT 1, C4<0>, C4<0>, C4<0>, C4<0>; +v0x55f30e0cf990_0 .net "CarryIN", 0 0, L_0x7f5d71fc0138; 1 drivers +v0x55f30e0cfa30_0 .net "CarryOUT", 0 0, L_0x55f30e0e4110; 1 drivers +v0x55f30e0cfb70_0 .net "Y", 3 0, L_0x55f30e0e45b0; 1 drivers +o0x7f5d7200bc28 .functor BUFZ 1, C4; HiZ drive +; Elide local net with no drivers, v0x55f30e0cfc30_0 name=_ivl_41 +v0x55f30e0cfcf0_0 .net "overflow", 0 0, L_0x55f30e0e56b0; alias, 1 drivers +L_0x55f30e0e2b70 .part L_0x55f30e0e20e0, 0, 1; +L_0x55f30e0e2d30 .part L_0x55f30e0e57c0, 0, 1; +L_0x55f30e0e31c0 .part L_0x55f30e0e20e0, 1, 1; +L_0x55f30e0e32f0 .part L_0x55f30e0e57c0, 1, 1; +L_0x55f30e0e3420 .part L_0x55f30e0eb900, 0, 1; +L_0x55f30e0e38b0 .part L_0x55f30e0e20e0, 2, 1; +L_0x55f30e0e3a20 .part L_0x55f30e0e57c0, 2, 1; +L_0x55f30e0e3be0 .part L_0x55f30e0eb900, 1, 1; +L_0x55f30e0e41c0 .part L_0x55f30e0e20e0, 3, 1; +L_0x55f30e0e42f0 .part L_0x55f30e0e57c0, 3, 1; +L_0x55f30e0e4480 .part L_0x55f30e0eb900, 2, 1; +L_0x55f30e0e45b0 .concat8 [ 1 1 1 1], L_0x55f30e0e2a00, L_0x55f30e0e3090, L_0x55f30e0e3780, L_0x55f30e0e4030; +L_0x55f30e0eb900 .concat [ 1 1 1 1], L_0x55f30e0e2b00, L_0x55f30e0e3150, L_0x55f30e0e3840, o0x7f5d7200bc28; +S_0x55f30e0c8b60 .scope module, "f0" "fulladder" 4 11, 5 1 0, S_0x55f30e0c88c0; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /INPUT 1 "Carry"; + .port_info 3 /OUTPUT 1 "Sum"; + .port_info 4 /OUTPUT 1 "CarryO"; +L_0x55f30e0e2b00 .functor OR 1, L_0x55f30e0e26e0, L_0x55f30e0e28b0, C4<0>, C4<0>; +v0x55f30e0c99e0_0 .net "A", 0 0, L_0x55f30e0e2b70; 1 drivers +v0x55f30e0c9aa0_0 .net "B", 0 0, L_0x55f30e0e2d30; 1 drivers +v0x55f30e0c9b70_0 .net "Carry", 0 0, L_0x7f5d71fc0138; alias, 1 drivers +v0x55f30e0c9c70_0 .net "CarryO", 0 0, L_0x55f30e0e2b00; 1 drivers +v0x55f30e0c9d10_0 .net "Sum", 0 0, L_0x55f30e0e2a00; 1 drivers +v0x55f30e0c9e00_0 .net "and1", 0 0, L_0x55f30e0e26e0; 1 drivers +v0x55f30e0c9ed0_0 .net "and2", 0 0, L_0x55f30e0e28b0; 1 drivers +v0x55f30e0c9fa0_0 .net "xor1", 0 0, L_0x55f30e0e2840; 1 drivers +S_0x55f30e0c8d40 .scope module, "h1" "halfadder" 5 8, 6 1 0, S_0x55f30e0c8b60; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /OUTPUT 1 "Sum"; + .port_info 3 /OUTPUT 1 "Carry"; +L_0x55f30e0e26e0 .functor AND 1, L_0x55f30e0e2b70, L_0x55f30e0e2d30, C4<1>, C4<1>; +L_0x55f30e0e2840 .functor XOR 1, L_0x55f30e0e2b70, L_0x55f30e0e2d30, C4<0>, C4<0>; +v0x55f30e0c8fe0_0 .net "A", 0 0, L_0x55f30e0e2b70; alias, 1 drivers +v0x55f30e0c90c0_0 .net "B", 0 0, L_0x55f30e0e2d30; alias, 1 drivers +v0x55f30e0c9180_0 .net "Carry", 0 0, L_0x55f30e0e26e0; alias, 1 drivers +v0x55f30e0c9250_0 .net "Sum", 0 0, L_0x55f30e0e2840; alias, 1 drivers +S_0x55f30e0c93c0 .scope module, "h2" "halfadder" 5 9, 6 1 0, S_0x55f30e0c8b60; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /OUTPUT 1 "Sum"; + .port_info 3 /OUTPUT 1 "Carry"; +L_0x55f30e0e28b0 .functor AND 1, L_0x55f30e0e2840, L_0x7f5d71fc0138, C4<1>, C4<1>; +L_0x55f30e0e2a00 .functor XOR 1, L_0x55f30e0e2840, L_0x7f5d71fc0138, C4<0>, C4<0>; +v0x55f30e0c9630_0 .net "A", 0 0, L_0x55f30e0e2840; alias, 1 drivers +v0x55f30e0c9700_0 .net "B", 0 0, L_0x7f5d71fc0138; alias, 1 drivers +v0x55f30e0c97a0_0 .net "Carry", 0 0, L_0x55f30e0e28b0; alias, 1 drivers +v0x55f30e0c9870_0 .net "Sum", 0 0, L_0x55f30e0e2a00; alias, 1 drivers +S_0x55f30e0ca090 .scope module, "f1" "fulladder" 4 12, 5 1 0, S_0x55f30e0c88c0; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /INPUT 1 "Carry"; + .port_info 3 /OUTPUT 1 "Sum"; + .port_info 4 /OUTPUT 1 "CarryO"; +L_0x55f30e0e3150 .functor OR 1, L_0x55f30e0e2e60, L_0x55f30e0e2f40, C4<0>, C4<0>; +v0x55f30e0caef0_0 .net "A", 0 0, L_0x55f30e0e31c0; 1 drivers +v0x55f30e0cafb0_0 .net "B", 0 0, L_0x55f30e0e32f0; 1 drivers +v0x55f30e0cb080_0 .net "Carry", 0 0, L_0x55f30e0e3420; 1 drivers +v0x55f30e0cb180_0 .net "CarryO", 0 0, L_0x55f30e0e3150; 1 drivers +v0x55f30e0cb220_0 .net "Sum", 0 0, L_0x55f30e0e3090; 1 drivers +v0x55f30e0cb310_0 .net "and1", 0 0, L_0x55f30e0e2e60; 1 drivers +v0x55f30e0cb3e0_0 .net "and2", 0 0, L_0x55f30e0e2f40; 1 drivers +v0x55f30e0cb4b0_0 .net "xor1", 0 0, L_0x55f30e0e2ed0; 1 drivers +S_0x55f30e0ca270 .scope module, "h1" "halfadder" 5 8, 6 1 0, S_0x55f30e0ca090; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /OUTPUT 1 "Sum"; + .port_info 3 /OUTPUT 1 "Carry"; +L_0x55f30e0e2e60 .functor AND 1, L_0x55f30e0e31c0, L_0x55f30e0e32f0, C4<1>, C4<1>; +L_0x55f30e0e2ed0 .functor XOR 1, L_0x55f30e0e31c0, L_0x55f30e0e32f0, C4<0>, C4<0>; +v0x55f30e0ca4f0_0 .net "A", 0 0, L_0x55f30e0e31c0; alias, 1 drivers +v0x55f30e0ca5d0_0 .net "B", 0 0, L_0x55f30e0e32f0; alias, 1 drivers +v0x55f30e0ca690_0 .net "Carry", 0 0, L_0x55f30e0e2e60; alias, 1 drivers +v0x55f30e0ca760_0 .net "Sum", 0 0, L_0x55f30e0e2ed0; alias, 1 drivers +S_0x55f30e0ca8d0 .scope module, "h2" "halfadder" 5 9, 6 1 0, S_0x55f30e0ca090; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /OUTPUT 1 "Sum"; + .port_info 3 /OUTPUT 1 "Carry"; +L_0x55f30e0e2f40 .functor AND 1, L_0x55f30e0e2ed0, L_0x55f30e0e3420, C4<1>, C4<1>; +L_0x55f30e0e3090 .functor XOR 1, L_0x55f30e0e2ed0, L_0x55f30e0e3420, C4<0>, C4<0>; +v0x55f30e0cab40_0 .net "A", 0 0, L_0x55f30e0e2ed0; alias, 1 drivers +v0x55f30e0cac10_0 .net "B", 0 0, L_0x55f30e0e3420; alias, 1 drivers +v0x55f30e0cacb0_0 .net "Carry", 0 0, L_0x55f30e0e2f40; alias, 1 drivers +v0x55f30e0cad80_0 .net "Sum", 0 0, L_0x55f30e0e3090; alias, 1 drivers +S_0x55f30e0cb5a0 .scope module, "f2" "fulladder" 4 13, 5 1 0, S_0x55f30e0c88c0; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /INPUT 1 "Carry"; + .port_info 3 /OUTPUT 1 "Sum"; + .port_info 4 /OUTPUT 1 "CarryO"; +L_0x55f30e0e3840 .functor OR 1, L_0x55f30e0e3550, L_0x55f30e0e3630, C4<0>, C4<0>; +v0x55f30e0cc410_0 .net "A", 0 0, L_0x55f30e0e38b0; 1 drivers +v0x55f30e0cc4d0_0 .net "B", 0 0, L_0x55f30e0e3a20; 1 drivers +v0x55f30e0cc5a0_0 .net "Carry", 0 0, L_0x55f30e0e3be0; 1 drivers +v0x55f30e0cc6a0_0 .net "CarryO", 0 0, L_0x55f30e0e3840; 1 drivers +v0x55f30e0cc740_0 .net "Sum", 0 0, L_0x55f30e0e3780; 1 drivers +v0x55f30e0cc830_0 .net "and1", 0 0, L_0x55f30e0e3550; 1 drivers +v0x55f30e0cc900_0 .net "and2", 0 0, L_0x55f30e0e3630; 1 drivers +v0x55f30e0cc9d0_0 .net "xor1", 0 0, L_0x55f30e0e35c0; 1 drivers +S_0x55f30e0cb7b0 .scope module, "h1" "halfadder" 5 8, 6 1 0, S_0x55f30e0cb5a0; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /OUTPUT 1 "Sum"; + .port_info 3 /OUTPUT 1 "Carry"; +L_0x55f30e0e3550 .functor AND 1, L_0x55f30e0e38b0, L_0x55f30e0e3a20, C4<1>, C4<1>; +L_0x55f30e0e35c0 .functor XOR 1, L_0x55f30e0e38b0, L_0x55f30e0e3a20, C4<0>, C4<0>; +v0x55f30e0cba30_0 .net "A", 0 0, L_0x55f30e0e38b0; alias, 1 drivers +v0x55f30e0cbaf0_0 .net "B", 0 0, L_0x55f30e0e3a20; alias, 1 drivers +v0x55f30e0cbbb0_0 .net "Carry", 0 0, L_0x55f30e0e3550; alias, 1 drivers +v0x55f30e0cbc80_0 .net "Sum", 0 0, L_0x55f30e0e35c0; alias, 1 drivers +S_0x55f30e0cbdf0 .scope module, "h2" "halfadder" 5 9, 6 1 0, S_0x55f30e0cb5a0; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /OUTPUT 1 "Sum"; + .port_info 3 /OUTPUT 1 "Carry"; +L_0x55f30e0e3630 .functor AND 1, L_0x55f30e0e35c0, L_0x55f30e0e3be0, C4<1>, C4<1>; +L_0x55f30e0e3780 .functor XOR 1, L_0x55f30e0e35c0, L_0x55f30e0e3be0, C4<0>, C4<0>; +v0x55f30e0cc060_0 .net "A", 0 0, L_0x55f30e0e35c0; alias, 1 drivers +v0x55f30e0cc130_0 .net "B", 0 0, L_0x55f30e0e3be0; alias, 1 drivers +v0x55f30e0cc1d0_0 .net "Carry", 0 0, L_0x55f30e0e3630; alias, 1 drivers +v0x55f30e0cc2a0_0 .net "Sum", 0 0, L_0x55f30e0e3780; alias, 1 drivers +S_0x55f30e0ccac0 .scope module, "f3" "fulladder" 4 14, 5 1 0, S_0x55f30e0c88c0; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /INPUT 1 "Carry"; + .port_info 3 /OUTPUT 1 "Sum"; + .port_info 4 /OUTPUT 1 "CarryO"; +L_0x55f30e0e4110 .functor OR 1, L_0x55f30e0e3d60, L_0x55f30e0e3ea0, C4<0>, C4<0>; +v0x55f30e0cd920_0 .net "A", 0 0, L_0x55f30e0e41c0; 1 drivers +v0x55f30e0cd9e0_0 .net "B", 0 0, L_0x55f30e0e42f0; 1 drivers +v0x55f30e0cdab0_0 .net "Carry", 0 0, L_0x55f30e0e4480; 1 drivers +v0x55f30e0cdbb0_0 .net "CarryO", 0 0, L_0x55f30e0e4110; alias, 1 drivers +v0x55f30e0cdc50_0 .net "Sum", 0 0, L_0x55f30e0e4030; 1 drivers +v0x55f30e0cdd40_0 .net "and1", 0 0, L_0x55f30e0e3d60; 1 drivers +v0x55f30e0cde10_0 .net "and2", 0 0, L_0x55f30e0e3ea0; 1 drivers +v0x55f30e0cdee0_0 .net "xor1", 0 0, L_0x55f30e0e3e10; 1 drivers +S_0x55f30e0ccca0 .scope module, "h1" "halfadder" 5 8, 6 1 0, S_0x55f30e0ccac0; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /OUTPUT 1 "Sum"; + .port_info 3 /OUTPUT 1 "Carry"; +L_0x55f30e0e3d60 .functor AND 1, L_0x55f30e0e41c0, L_0x55f30e0e42f0, C4<1>, C4<1>; +L_0x55f30e0e3e10 .functor XOR 1, L_0x55f30e0e41c0, L_0x55f30e0e42f0, C4<0>, C4<0>; +v0x55f30e0ccf20_0 .net "A", 0 0, L_0x55f30e0e41c0; alias, 1 drivers +v0x55f30e0cd000_0 .net "B", 0 0, L_0x55f30e0e42f0; alias, 1 drivers +v0x55f30e0cd0c0_0 .net "Carry", 0 0, L_0x55f30e0e3d60; alias, 1 drivers +v0x55f30e0cd190_0 .net "Sum", 0 0, L_0x55f30e0e3e10; alias, 1 drivers +S_0x55f30e0cd300 .scope module, "h2" "halfadder" 5 9, 6 1 0, S_0x55f30e0ccac0; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /OUTPUT 1 "Sum"; + .port_info 3 /OUTPUT 1 "Carry"; +L_0x55f30e0e3ea0 .functor AND 1, L_0x55f30e0e3e10, L_0x55f30e0e4480, C4<1>, C4<1>; +L_0x55f30e0e4030 .functor XOR 1, L_0x55f30e0e3e10, L_0x55f30e0e4480, C4<0>, C4<0>; +v0x55f30e0cd570_0 .net "A", 0 0, L_0x55f30e0e3e10; alias, 1 drivers +v0x55f30e0cd640_0 .net "B", 0 0, L_0x55f30e0e4480; alias, 1 drivers +v0x55f30e0cd6e0_0 .net "Carry", 0 0, L_0x55f30e0e3ea0; alias, 1 drivers +v0x55f30e0cd7b0_0 .net "Sum", 0 0, L_0x55f30e0e4030; alias, 1 drivers +S_0x55f30e0cdfd0 .scope module, "od1" "overflowDetect" 4 17, 7 1 0, S_0x55f30e0c88c0; + .timescale 0 0; + .port_info 0 /INPUT 2 "opCode"; + .port_info 1 /INPUT 4 "A"; + .port_info 2 /INPUT 4 "B"; + .port_info 3 /INPUT 4 "Y"; + .port_info 4 /INPUT 1 "CarryOUT"; + .port_info 5 /OUTPUT 1 "overflowDetect"; +L_0x55f30e0e46c0 .functor OR 1, L_0x55f30e0e4750, L_0x55f30e0e47f0, C4<0>, C4<0>; +L_0x55f30e0e4890 .functor XNOR 1, L_0x55f30e0e4900, L_0x55f30e0e4b00, C4<0>, C4<0>; +L_0x55f30e0e4bf0 .functor XOR 1, L_0x55f30e0e4c60, L_0x55f30e0e4d50, C4<0>, C4<0>; +L_0x55f30e0e4e80 .functor XOR 1, L_0x55f30e0e4ef0, L_0x55f30e0e4fe0, C4<0>, C4<0>; +L_0x55f30e0e5120 .functor AND 1, L_0x55f30e0e4890, L_0x55f30e0e51e0, C4<1>, C4<1>; +L_0x55f30e0e52d0 .functor AND 1, L_0x55f30e0e4bf0, L_0x55f30e0e5390, C4<1>, C4<1>; +L_0x55f30e0e54e0 .functor OR 1, L_0x55f30e0e5120, L_0x55f30e0e52d0, C4<0>, C4<0>; +L_0x55f30e0e5550 .functor AND 1, L_0x55f30e0e54e0, L_0x55f30e0e4e80, C4<1>, C4<1>; +L_0x55f30e0e56b0 .functor AND 1, L_0x55f30e0e46c0, L_0x55f30e0e5550, C4<1>, C4<1>; +v0x55f30e0ce2a0_0 .net "A", 3 0, L_0x55f30e0e20e0; alias, 1 drivers +v0x55f30e0ce380_0 .net "B", 3 0, L_0x55f30e0e57c0; alias, 1 drivers +v0x55f30e0ce460_0 .net "CarryOUT", 0 0, L_0x55f30e0e4110; alias, 1 drivers +v0x55f30e0ce500_0 .net "Y", 3 0, L_0x55f30e0e45b0; alias, 1 drivers +v0x55f30e0ce5a0_0 .net *"_ivl_1", 0 0, L_0x55f30e0e4750; 1 drivers +v0x55f30e0ce6d0_0 .net *"_ivl_11", 0 0, L_0x55f30e0e4d50; 1 drivers +v0x55f30e0ce7b0_0 .net *"_ivl_13", 0 0, L_0x55f30e0e4ef0; 1 drivers +v0x55f30e0ce890_0 .net *"_ivl_15", 0 0, L_0x55f30e0e4fe0; 1 drivers +v0x55f30e0ce970_0 .net *"_ivl_17", 0 0, L_0x55f30e0e51e0; 1 drivers +v0x55f30e0cea50_0 .net *"_ivl_19", 0 0, L_0x55f30e0e5390; 1 drivers +v0x55f30e0ceb30_0 .net *"_ivl_3", 0 0, L_0x55f30e0e47f0; 1 drivers +v0x55f30e0cec10_0 .net *"_ivl_5", 0 0, L_0x55f30e0e4900; 1 drivers +v0x55f30e0cecf0_0 .net *"_ivl_7", 0 0, L_0x55f30e0e4b00; 1 drivers +v0x55f30e0cedd0_0 .net *"_ivl_9", 0 0, L_0x55f30e0e4c60; 1 drivers +v0x55f30e0ceeb0_0 .net "addOverflow", 0 0, L_0x55f30e0e5120; 1 drivers +v0x55f30e0cef70_0 .net "detect1", 0 0, L_0x55f30e0e54e0; 1 drivers +v0x55f30e0cf030_0 .net "detect2", 0 0, L_0x55f30e0e5550; 1 drivers +v0x55f30e0cf0f0_0 .net "opC", 0 0, L_0x55f30e0e46c0; 1 drivers +L_0x7f5d71fc00f0 .functor BUFT 1, C4<01>, C4<0>, C4<0>, C4<0>; +v0x55f30e0cf1b0_0 .net "opCode", 1 0, L_0x7f5d71fc00f0; 1 drivers +v0x55f30e0cf290_0 .net "overflowDetect", 0 0, L_0x55f30e0e56b0; alias, 1 drivers +v0x55f30e0cf350_0 .net "sign1", 0 0, L_0x55f30e0e4890; 1 drivers +v0x55f30e0cf410_0 .net "sign2", 0 0, L_0x55f30e0e4e80; 1 drivers +v0x55f30e0cf4d0_0 .net "sign3", 0 0, L_0x55f30e0e4bf0; 1 drivers +v0x55f30e0cf590_0 .net "subOverflow", 0 0, L_0x55f30e0e52d0; 1 drivers +L_0x55f30e0e4750 .part L_0x7f5d71fc00f0, 0, 1; +L_0x55f30e0e47f0 .part L_0x7f5d71fc00f0, 1, 1; +L_0x55f30e0e4900 .part L_0x55f30e0e20e0, 3, 1; +L_0x55f30e0e4b00 .part L_0x55f30e0e57c0, 3, 1; +L_0x55f30e0e4c60 .part L_0x55f30e0e20e0, 3, 1; +L_0x55f30e0e4d50 .part L_0x55f30e0e57c0, 3, 1; +L_0x55f30e0e4ef0 .part L_0x55f30e0e45b0, 3, 1; +L_0x55f30e0e4fe0 .part L_0x55f30e0e20e0, 3, 1; +L_0x55f30e0e51e0 .part L_0x7f5d71fc00f0, 0, 1; +L_0x55f30e0e5390 .part L_0x7f5d71fc00f0, 1, 1; +S_0x55f30e0cfe30 .scope module, "add2" "addition" 3 58, 4 1 0, S_0x55f30e070c90; + .timescale 0 0; + .port_info 0 /INPUT 4 "A"; + .port_info 1 /INPUT 4 "B"; + .port_info 2 /INPUT 1 "CarryIN"; + .port_info 3 /OUTPUT 4 "Y"; + .port_info 4 /OUTPUT 1 "CarryOUT"; + .port_info 5 /OUTPUT 1 "overflow"; +v0x55f30e0d6fe0_0 .net "A", 3 0, L_0x55f30e0e6160; alias, 1 drivers +v0x55f30e0d70c0_0 .net "B", 3 0, L_0x55f30e0e9c70; 1 drivers +v0x55f30e0d7190_0 .net "Carry4", 3 0, L_0x55f30e0ebad0; 1 drivers +L_0x7f5d71fc01c8 .functor BUFT 1, C4<0>, C4<0>, C4<0>, C4<0>; +v0x55f30e0d7260_0 .net "CarryIN", 0 0, L_0x7f5d71fc01c8; 1 drivers +v0x55f30e0d7300_0 .net "CarryOUT", 0 0, L_0x55f30e0e8710; 1 drivers +v0x55f30e0d7440_0 .net "Y", 3 0, L_0x55f30e0e8bb0; 1 drivers +o0x7f5d7200d2d8 .functor BUFZ 1, C4; HiZ drive +; Elide local net with no drivers, v0x55f30e0d7500_0 name=_ivl_41 +v0x55f30e0d75c0_0 .net "overflow", 0 0, L_0x55f30e0e9b60; alias, 1 drivers +L_0x55f30e0e71b0 .part L_0x55f30e0e6160, 0, 1; +L_0x55f30e0e7370 .part L_0x55f30e0e9c70, 0, 1; +L_0x55f30e0e7800 .part L_0x55f30e0e6160, 1, 1; +L_0x55f30e0e7930 .part L_0x55f30e0e9c70, 1, 1; +L_0x55f30e0e7a60 .part L_0x55f30e0ebad0, 0, 1; +L_0x55f30e0e7ef0 .part L_0x55f30e0e6160, 2, 1; +L_0x55f30e0e8020 .part L_0x55f30e0e9c70, 2, 1; +L_0x55f30e0e81e0 .part L_0x55f30e0ebad0, 1, 1; +L_0x55f30e0e87c0 .part L_0x55f30e0e6160, 3, 1; +L_0x55f30e0e88f0 .part L_0x55f30e0e9c70, 3, 1; +L_0x55f30e0e8a80 .part L_0x55f30e0ebad0, 2, 1; +L_0x55f30e0e8bb0 .concat8 [ 1 1 1 1], L_0x55f30e0e7040, L_0x55f30e0e76d0, L_0x55f30e0e7dc0, L_0x55f30e0e8630; +L_0x55f30e0ebad0 .concat [ 1 1 1 1], L_0x55f30e0e7140, L_0x55f30e0e7790, L_0x55f30e0e7e80, o0x7f5d7200d2d8; +S_0x55f30e0d00b0 .scope module, "f0" "fulladder" 4 11, 5 1 0, S_0x55f30e0cfe30; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /INPUT 1 "Carry"; + .port_info 3 /OUTPUT 1 "Sum"; + .port_info 4 /OUTPUT 1 "CarryO"; +L_0x55f30e0e7140 .functor OR 1, L_0x55f30e0e6d20, L_0x55f30e0e6ef0, C4<0>, C4<0>; +v0x55f30e0d0fe0_0 .net "A", 0 0, L_0x55f30e0e71b0; 1 drivers +v0x55f30e0d10a0_0 .net "B", 0 0, L_0x55f30e0e7370; 1 drivers +v0x55f30e0d1170_0 .net "Carry", 0 0, L_0x7f5d71fc01c8; alias, 1 drivers +v0x55f30e0d1270_0 .net "CarryO", 0 0, L_0x55f30e0e7140; 1 drivers +v0x55f30e0d1310_0 .net "Sum", 0 0, L_0x55f30e0e7040; 1 drivers +v0x55f30e0d1400_0 .net "and1", 0 0, L_0x55f30e0e6d20; 1 drivers +v0x55f30e0d14d0_0 .net "and2", 0 0, L_0x55f30e0e6ef0; 1 drivers +v0x55f30e0d15a0_0 .net "xor1", 0 0, L_0x55f30e0e6e80; 1 drivers +S_0x55f30e0d0340 .scope module, "h1" "halfadder" 5 8, 6 1 0, S_0x55f30e0d00b0; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /OUTPUT 1 "Sum"; + .port_info 3 /OUTPUT 1 "Carry"; +L_0x55f30e0e6d20 .functor AND 1, L_0x55f30e0e71b0, L_0x55f30e0e7370, C4<1>, C4<1>; +L_0x55f30e0e6e80 .functor XOR 1, L_0x55f30e0e71b0, L_0x55f30e0e7370, C4<0>, C4<0>; +v0x55f30e0d05e0_0 .net "A", 0 0, L_0x55f30e0e71b0; alias, 1 drivers +v0x55f30e0d06c0_0 .net "B", 0 0, L_0x55f30e0e7370; alias, 1 drivers +v0x55f30e0d0780_0 .net "Carry", 0 0, L_0x55f30e0e6d20; alias, 1 drivers +v0x55f30e0d0850_0 .net "Sum", 0 0, L_0x55f30e0e6e80; alias, 1 drivers +S_0x55f30e0d09c0 .scope module, "h2" "halfadder" 5 9, 6 1 0, S_0x55f30e0d00b0; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /OUTPUT 1 "Sum"; + .port_info 3 /OUTPUT 1 "Carry"; +L_0x55f30e0e6ef0 .functor AND 1, L_0x55f30e0e6e80, L_0x7f5d71fc01c8, C4<1>, C4<1>; +L_0x55f30e0e7040 .functor XOR 1, L_0x55f30e0e6e80, L_0x7f5d71fc01c8, C4<0>, C4<0>; +v0x55f30e0d0c30_0 .net "A", 0 0, L_0x55f30e0e6e80; alias, 1 drivers +v0x55f30e0d0d00_0 .net "B", 0 0, L_0x7f5d71fc01c8; alias, 1 drivers +v0x55f30e0d0da0_0 .net "Carry", 0 0, L_0x55f30e0e6ef0; alias, 1 drivers +v0x55f30e0d0e70_0 .net "Sum", 0 0, L_0x55f30e0e7040; alias, 1 drivers +S_0x55f30e0d1690 .scope module, "f1" "fulladder" 4 12, 5 1 0, S_0x55f30e0cfe30; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /INPUT 1 "Carry"; + .port_info 3 /OUTPUT 1 "Sum"; + .port_info 4 /OUTPUT 1 "CarryO"; +L_0x55f30e0e7790 .functor OR 1, L_0x55f30e0e74a0, L_0x55f30e0e7580, C4<0>, C4<0>; +v0x55f30e0d2570_0 .net "A", 0 0, L_0x55f30e0e7800; 1 drivers +v0x55f30e0d2630_0 .net "B", 0 0, L_0x55f30e0e7930; 1 drivers +v0x55f30e0d2700_0 .net "Carry", 0 0, L_0x55f30e0e7a60; 1 drivers +v0x55f30e0d2800_0 .net "CarryO", 0 0, L_0x55f30e0e7790; 1 drivers +v0x55f30e0d28a0_0 .net "Sum", 0 0, L_0x55f30e0e76d0; 1 drivers +v0x55f30e0d2990_0 .net "and1", 0 0, L_0x55f30e0e74a0; 1 drivers +v0x55f30e0d2a60_0 .net "and2", 0 0, L_0x55f30e0e7580; 1 drivers +v0x55f30e0d2b30_0 .net "xor1", 0 0, L_0x55f30e0e7510; 1 drivers +S_0x55f30e0d18f0 .scope module, "h1" "halfadder" 5 8, 6 1 0, S_0x55f30e0d1690; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /OUTPUT 1 "Sum"; + .port_info 3 /OUTPUT 1 "Carry"; +L_0x55f30e0e74a0 .functor AND 1, L_0x55f30e0e7800, L_0x55f30e0e7930, C4<1>, C4<1>; +L_0x55f30e0e7510 .functor XOR 1, L_0x55f30e0e7800, L_0x55f30e0e7930, C4<0>, C4<0>; +v0x55f30e0d1b70_0 .net "A", 0 0, L_0x55f30e0e7800; alias, 1 drivers +v0x55f30e0d1c50_0 .net "B", 0 0, L_0x55f30e0e7930; alias, 1 drivers +v0x55f30e0d1d10_0 .net "Carry", 0 0, L_0x55f30e0e74a0; alias, 1 drivers +v0x55f30e0d1de0_0 .net "Sum", 0 0, L_0x55f30e0e7510; alias, 1 drivers +S_0x55f30e0d1f50 .scope module, "h2" "halfadder" 5 9, 6 1 0, S_0x55f30e0d1690; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /OUTPUT 1 "Sum"; + .port_info 3 /OUTPUT 1 "Carry"; +L_0x55f30e0e7580 .functor AND 1, L_0x55f30e0e7510, L_0x55f30e0e7a60, C4<1>, C4<1>; +L_0x55f30e0e76d0 .functor XOR 1, L_0x55f30e0e7510, L_0x55f30e0e7a60, C4<0>, C4<0>; +v0x55f30e0d21c0_0 .net "A", 0 0, L_0x55f30e0e7510; alias, 1 drivers +v0x55f30e0d2290_0 .net "B", 0 0, L_0x55f30e0e7a60; alias, 1 drivers +v0x55f30e0d2330_0 .net "Carry", 0 0, L_0x55f30e0e7580; alias, 1 drivers +v0x55f30e0d2400_0 .net "Sum", 0 0, L_0x55f30e0e76d0; alias, 1 drivers +S_0x55f30e0d2c20 .scope module, "f2" "fulladder" 4 13, 5 1 0, S_0x55f30e0cfe30; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /INPUT 1 "Carry"; + .port_info 3 /OUTPUT 1 "Sum"; + .port_info 4 /OUTPUT 1 "CarryO"; +L_0x55f30e0e7e80 .functor OR 1, L_0x55f30e0e7b90, L_0x55f30e0e7c70, C4<0>, C4<0>; +v0x55f30e0d3b10_0 .net "A", 0 0, L_0x55f30e0e7ef0; 1 drivers +v0x55f30e0d3bd0_0 .net "B", 0 0, L_0x55f30e0e8020; 1 drivers +v0x55f30e0d3ca0_0 .net "Carry", 0 0, L_0x55f30e0e81e0; 1 drivers +v0x55f30e0d3da0_0 .net "CarryO", 0 0, L_0x55f30e0e7e80; 1 drivers +v0x55f30e0d3e40_0 .net "Sum", 0 0, L_0x55f30e0e7dc0; 1 drivers +v0x55f30e0d3f30_0 .net "and1", 0 0, L_0x55f30e0e7b90; 1 drivers +v0x55f30e0d4000_0 .net "and2", 0 0, L_0x55f30e0e7c70; 1 drivers +v0x55f30e0d40d0_0 .net "xor1", 0 0, L_0x55f30e0e7c00; 1 drivers +S_0x55f30e0d2eb0 .scope module, "h1" "halfadder" 5 8, 6 1 0, S_0x55f30e0d2c20; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /OUTPUT 1 "Sum"; + .port_info 3 /OUTPUT 1 "Carry"; +L_0x55f30e0e7b90 .functor AND 1, L_0x55f30e0e7ef0, L_0x55f30e0e8020, C4<1>, C4<1>; +L_0x55f30e0e7c00 .functor XOR 1, L_0x55f30e0e7ef0, L_0x55f30e0e8020, C4<0>, C4<0>; +v0x55f30e0d3130_0 .net "A", 0 0, L_0x55f30e0e7ef0; alias, 1 drivers +v0x55f30e0d31f0_0 .net "B", 0 0, L_0x55f30e0e8020; alias, 1 drivers +v0x55f30e0d32b0_0 .net "Carry", 0 0, L_0x55f30e0e7b90; alias, 1 drivers +v0x55f30e0d3380_0 .net "Sum", 0 0, L_0x55f30e0e7c00; alias, 1 drivers +S_0x55f30e0d34f0 .scope module, "h2" "halfadder" 5 9, 6 1 0, S_0x55f30e0d2c20; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /OUTPUT 1 "Sum"; + .port_info 3 /OUTPUT 1 "Carry"; +L_0x55f30e0e7c70 .functor AND 1, L_0x55f30e0e7c00, L_0x55f30e0e81e0, C4<1>, C4<1>; +L_0x55f30e0e7dc0 .functor XOR 1, L_0x55f30e0e7c00, L_0x55f30e0e81e0, C4<0>, C4<0>; +v0x55f30e0d3760_0 .net "A", 0 0, L_0x55f30e0e7c00; alias, 1 drivers +v0x55f30e0d3830_0 .net "B", 0 0, L_0x55f30e0e81e0; alias, 1 drivers +v0x55f30e0d38d0_0 .net "Carry", 0 0, L_0x55f30e0e7c70; alias, 1 drivers +v0x55f30e0d39a0_0 .net "Sum", 0 0, L_0x55f30e0e7dc0; alias, 1 drivers +S_0x55f30e0d41c0 .scope module, "f3" "fulladder" 4 14, 5 1 0, S_0x55f30e0cfe30; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /INPUT 1 "Carry"; + .port_info 3 /OUTPUT 1 "Sum"; + .port_info 4 /OUTPUT 1 "CarryO"; +L_0x55f30e0e8710 .functor OR 1, L_0x55f30e0e8360, L_0x55f30e0e84a0, C4<0>, C4<0>; +v0x55f30e0d50a0_0 .net "A", 0 0, L_0x55f30e0e87c0; 1 drivers +v0x55f30e0d5160_0 .net "B", 0 0, L_0x55f30e0e88f0; 1 drivers +v0x55f30e0d5230_0 .net "Carry", 0 0, L_0x55f30e0e8a80; 1 drivers +v0x55f30e0d5330_0 .net "CarryO", 0 0, L_0x55f30e0e8710; alias, 1 drivers +v0x55f30e0d53d0_0 .net "Sum", 0 0, L_0x55f30e0e8630; 1 drivers +v0x55f30e0d54c0_0 .net "and1", 0 0, L_0x55f30e0e8360; 1 drivers +v0x55f30e0d5590_0 .net "and2", 0 0, L_0x55f30e0e84a0; 1 drivers +v0x55f30e0d5660_0 .net "xor1", 0 0, L_0x55f30e0e8410; 1 drivers +S_0x55f30e0d4420 .scope module, "h1" "halfadder" 5 8, 6 1 0, S_0x55f30e0d41c0; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /OUTPUT 1 "Sum"; + .port_info 3 /OUTPUT 1 "Carry"; +L_0x55f30e0e8360 .functor AND 1, L_0x55f30e0e87c0, L_0x55f30e0e88f0, C4<1>, C4<1>; +L_0x55f30e0e8410 .functor XOR 1, L_0x55f30e0e87c0, L_0x55f30e0e88f0, C4<0>, C4<0>; +v0x55f30e0d46a0_0 .net "A", 0 0, L_0x55f30e0e87c0; alias, 1 drivers +v0x55f30e0d4780_0 .net "B", 0 0, L_0x55f30e0e88f0; alias, 1 drivers +v0x55f30e0d4840_0 .net "Carry", 0 0, L_0x55f30e0e8360; alias, 1 drivers +v0x55f30e0d4910_0 .net "Sum", 0 0, L_0x55f30e0e8410; alias, 1 drivers +S_0x55f30e0d4a80 .scope module, "h2" "halfadder" 5 9, 6 1 0, S_0x55f30e0d41c0; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /OUTPUT 1 "Sum"; + .port_info 3 /OUTPUT 1 "Carry"; +L_0x55f30e0e84a0 .functor AND 1, L_0x55f30e0e8410, L_0x55f30e0e8a80, C4<1>, C4<1>; +L_0x55f30e0e8630 .functor XOR 1, L_0x55f30e0e8410, L_0x55f30e0e8a80, C4<0>, C4<0>; +v0x55f30e0d4cf0_0 .net "A", 0 0, L_0x55f30e0e8410; alias, 1 drivers +v0x55f30e0d4dc0_0 .net "B", 0 0, L_0x55f30e0e8a80; alias, 1 drivers +v0x55f30e0d4e60_0 .net "Carry", 0 0, L_0x55f30e0e84a0; alias, 1 drivers +v0x55f30e0d4f30_0 .net "Sum", 0 0, L_0x55f30e0e8630; alias, 1 drivers +S_0x55f30e0d5750 .scope module, "od1" "overflowDetect" 4 17, 7 1 0, S_0x55f30e0cfe30; + .timescale 0 0; + .port_info 0 /INPUT 2 "opCode"; + .port_info 1 /INPUT 4 "A"; + .port_info 2 /INPUT 4 "B"; + .port_info 3 /INPUT 4 "Y"; + .port_info 4 /INPUT 1 "CarryOUT"; + .port_info 5 /OUTPUT 1 "overflowDetect"; +L_0x55f30e0e8cc0 .functor OR 1, L_0x55f30e0e8d50, L_0x55f30e0e8df0, C4<0>, C4<0>; +L_0x55f30e0e8e90 .functor XNOR 1, L_0x55f30e0e8f00, L_0x55f30e0e8ff0, C4<0>, C4<0>; +L_0x55f30e0e90e0 .functor XOR 1, L_0x55f30e0e9150, L_0x55f30e0e9240, C4<0>, C4<0>; +L_0x55f30e0e9330 .functor XOR 1, L_0x55f30e0e93a0, L_0x55f30e0e9490, C4<0>, C4<0>; +L_0x55f30e0e95d0 .functor AND 1, L_0x55f30e0e8e90, L_0x55f30e0e9690, C4<1>, C4<1>; +L_0x55f30e0e9780 .functor AND 1, L_0x55f30e0e90e0, L_0x55f30e0e9840, C4<1>, C4<1>; +L_0x55f30e0e9990 .functor OR 1, L_0x55f30e0e95d0, L_0x55f30e0e9780, C4<0>, C4<0>; +L_0x55f30e0e9a00 .functor AND 1, L_0x55f30e0e9990, L_0x55f30e0e9330, C4<1>, C4<1>; +L_0x55f30e0e9b60 .functor AND 1, L_0x55f30e0e8cc0, L_0x55f30e0e9a00, C4<1>, C4<1>; +v0x55f30e0d5a20_0 .net "A", 3 0, L_0x55f30e0e6160; alias, 1 drivers +v0x55f30e0d5b00_0 .net "B", 3 0, L_0x55f30e0e9c70; alias, 1 drivers +v0x55f30e0d5be0_0 .net "CarryOUT", 0 0, L_0x55f30e0e8710; alias, 1 drivers +v0x55f30e0d5c80_0 .net "Y", 3 0, L_0x55f30e0e8bb0; alias, 1 drivers +v0x55f30e0d5d20_0 .net *"_ivl_1", 0 0, L_0x55f30e0e8d50; 1 drivers +v0x55f30e0d5e50_0 .net *"_ivl_11", 0 0, L_0x55f30e0e9240; 1 drivers +v0x55f30e0d5f30_0 .net *"_ivl_13", 0 0, L_0x55f30e0e93a0; 1 drivers +v0x55f30e0d6010_0 .net *"_ivl_15", 0 0, L_0x55f30e0e9490; 1 drivers +v0x55f30e0d60f0_0 .net *"_ivl_17", 0 0, L_0x55f30e0e9690; 1 drivers +v0x55f30e0d61d0_0 .net *"_ivl_19", 0 0, L_0x55f30e0e9840; 1 drivers +v0x55f30e0d62b0_0 .net *"_ivl_3", 0 0, L_0x55f30e0e8df0; 1 drivers +v0x55f30e0d6390_0 .net *"_ivl_5", 0 0, L_0x55f30e0e8f00; 1 drivers +v0x55f30e0d6470_0 .net *"_ivl_7", 0 0, L_0x55f30e0e8ff0; 1 drivers +v0x55f30e0d6550_0 .net *"_ivl_9", 0 0, L_0x55f30e0e9150; 1 drivers +v0x55f30e0d6630_0 .net "addOverflow", 0 0, L_0x55f30e0e95d0; 1 drivers +v0x55f30e0d66f0_0 .net "detect1", 0 0, L_0x55f30e0e9990; 1 drivers +v0x55f30e0d67b0_0 .net "detect2", 0 0, L_0x55f30e0e9a00; 1 drivers +v0x55f30e0d6980_0 .net "opC", 0 0, L_0x55f30e0e8cc0; 1 drivers +L_0x7f5d71fc0180 .functor BUFT 1, C4<01>, C4<0>, C4<0>, C4<0>; +v0x55f30e0d6a40_0 .net "opCode", 1 0, L_0x7f5d71fc0180; 1 drivers +v0x55f30e0d6b20_0 .net "overflowDetect", 0 0, L_0x55f30e0e9b60; alias, 1 drivers +v0x55f30e0d6be0_0 .net "sign1", 0 0, L_0x55f30e0e8e90; 1 drivers +v0x55f30e0d6ca0_0 .net "sign2", 0 0, L_0x55f30e0e9330; 1 drivers +v0x55f30e0d6d60_0 .net "sign3", 0 0, L_0x55f30e0e90e0; 1 drivers +v0x55f30e0d6e20_0 .net "subOverflow", 0 0, L_0x55f30e0e9780; 1 drivers +L_0x55f30e0e8d50 .part L_0x7f5d71fc0180, 0, 1; +L_0x55f30e0e8df0 .part L_0x7f5d71fc0180, 1, 1; +L_0x55f30e0e8f00 .part L_0x55f30e0e6160, 3, 1; +L_0x55f30e0e8ff0 .part L_0x55f30e0e9c70, 3, 1; +L_0x55f30e0e9150 .part L_0x55f30e0e6160, 3, 1; +L_0x55f30e0e9240 .part L_0x55f30e0e9c70, 3, 1; +L_0x55f30e0e93a0 .part L_0x55f30e0e8bb0, 3, 1; +L_0x55f30e0e9490 .part L_0x55f30e0e6160, 3, 1; +L_0x55f30e0e9690 .part L_0x7f5d71fc0180, 0, 1; +L_0x55f30e0e9840 .part L_0x7f5d71fc0180, 1, 1; + .scope S_0x55f30e07afd0; +T_0 ; + %vpi_call 2 12 "$dumpfile", "multiplier.vcd" {0 0 0}; + %vpi_call 2 13 "$dumpvars" {0 0 0}; + %pushi/vec4 0, 0, 4; + %store/vec4 v0x55f30e0dc920_0, 0, 4; + %pushi/vec4 0, 0, 4; + %store/vec4 v0x55f30e0dc9e0_0, 0, 4; + %delay 2, 0; + %pushi/vec4 0, 0, 4; + %store/vec4 v0x55f30e0dc920_0, 0, 4; + %pushi/vec4 8, 0, 4; + %store/vec4 v0x55f30e0dc9e0_0, 0, 4; + %delay 2, 0; + %pushi/vec4 8, 0, 4; + %store/vec4 v0x55f30e0dc920_0, 0, 4; + %pushi/vec4 8, 0, 4; + %store/vec4 v0x55f30e0dc9e0_0, 0, 4; + %delay 2, 0; + %pushi/vec4 7, 0, 4; + %store/vec4 v0x55f30e0dc920_0, 0, 4; + %pushi/vec4 7, 0, 4; + %store/vec4 v0x55f30e0dc9e0_0, 0, 4; + %delay 2, 0; + %pushi/vec4 15, 0, 4; + %store/vec4 v0x55f30e0dc920_0, 0, 4; + %pushi/vec4 15, 0, 4; + %store/vec4 v0x55f30e0dc9e0_0, 0, 4; + %delay 2, 0; + %vpi_call 2 19 "$finish" {0 0 0}; + %end; + .thread T_0; +# The file index is used to find the file name in the following table. +:file_names 8; + "N/A"; + ""; + "multiplierTB.v"; + "multiplier.v"; + "addition.v"; + "fulladder.v"; + "halfadder.v"; + "overflowDetect.v"; diff --git a/project0.2/multiplier.v b/project0.2/multiplier.v new file mode 100644 index 0000000..2c5ab0b --- /dev/null +++ b/project0.2/multiplier.v @@ -0,0 +1,76 @@ +module multiplier ( + input [3:0] A, B, + output [7:0] Y +); + +wire [3:0] b0, a0, a1, a2; +wire [4:0] S0, S1, S2; +wire carry0, carry1, carry2; +wire overflow0, overflow1, overflow2; + +// Partial product generation +and (Y[0], A[0], B[0]); // LSB of the result + +// Generate partial products for B[0] and B[1] +and ab00 (b0[0], A[1], B[0]); +and ab01 (b0[1], A[2], B[0]); +and ab02 (b0[2], A[3], B[0]); +not ab03 (b0[3], 1'b1); // Initialize b0[3] to 0 + +and aa00 (a0[0], A[0], B[1]); +and aa01 (a0[1], A[1], B[1]); +and aa02 (a0[2], A[2], B[1]); +and aa03 (a0[3], A[3], B[1]); + +// First addition +addition add0 ( + .A(a0), + .B(b0), + .CarryIN(1'b0), + .Y(S0[3:0]), + .CarryOUT(S0[4]), + .overflow(overflow0) +); + +// Generate partial products for B[2] +and aa10 (a1[0], A[0], B[2]); +and aa11 (a1[1], A[1], B[2]); +and aa12 (a1[2], A[2], B[2]); +and aa13 (a1[3], A[3], B[2]); + +// Second addition +addition add1 ( + .A(a1), + .B(S0[4:1]), + .CarryIN(1'b0), + .Y(S1[3:0]), + .CarryOUT(S1[4]), + .overflow(overflow1) +); + +// Generate partial products for B[3] +and aa20 (a2[0], A[0], B[3]); +and aa21 (a2[1], A[1], B[3]); +and aa22 (a2[2], A[2], B[3]); +and aa23 (a2[3], A[3], B[3]); + +// Third addition +addition add2 ( + .A(a2), + .B(S1[4:1]), + .CarryIN(1'b0), + .Y(S2[3:0]), + .CarryOUT(S2[4]), + .overflow(overflow2) +); + +// Combine results into the final output Y +or o01 (Y[1], S0[0], 1'b0); +or o02 (Y[2], S1[0], 1'b0); +or o03 (Y[3], S2[0], 1'b0); +or o04 (Y[4], S2[1], 1'b0); +or o05 (Y[5], S2[2], 1'b0); +or o06 (Y[6], S2[3], 1'b0); +or o07 (Y[7], S2[4], 1'b0); + +endmodule diff --git a/project0.2/multiplier.vcd b/project0.2/multiplier.vcd new file mode 100644 index 0000000..c52ff6a --- /dev/null +++ b/project0.2/multiplier.vcd @@ -0,0 +1,769 @@ +$date + Fri Dec 20 19:46:49 2024 +$end +$version + Icarus Verilog +$end +$timescale + 1s +$end +$scope module multiplierTB $end +$var wire 8 ! Y [7:0] $end +$var reg 4 " A [3:0] $end +$var reg 4 # B [3:0] $end +$scope module uut $end +$var wire 4 $ A [3:0] $end +$var wire 4 % B [3:0] $end +$var wire 1 & overflow2 $end +$var wire 1 ' overflow1 $end +$var wire 1 ( overflow0 $end +$var wire 4 ) b0 [3:0] $end +$var wire 4 * a2 [3:0] $end +$var wire 4 + a1 [3:0] $end +$var wire 4 , a0 [3:0] $end +$var wire 8 - Y [7:0] $end +$var wire 5 . S2 [4:0] $end +$var wire 5 / S1 [4:0] $end +$var wire 5 0 S0 [4:0] $end +$scope module add0 $end +$var wire 4 1 A [3:0] $end +$var wire 4 2 B [3:0] $end +$var wire 1 3 CarryIN $end +$var wire 1 ( overflow $end +$var wire 4 4 Y [3:0] $end +$var wire 1 5 CarryOUT $end +$var wire 4 6 Carry4 [3:0] $end +$scope module f0 $end +$var wire 1 7 A $end +$var wire 1 8 B $end +$var wire 1 3 Carry $end +$var wire 1 9 CarryO $end +$var wire 1 : xor1 $end +$var wire 1 ; and2 $end +$var wire 1 < and1 $end +$var wire 1 = Sum $end +$scope module h1 $end +$var wire 1 7 A $end +$var wire 1 8 B $end +$var wire 1 < Carry $end +$var wire 1 : Sum $end +$upscope $end +$scope module h2 $end +$var wire 1 : A $end +$var wire 1 3 B $end +$var wire 1 ; Carry $end +$var wire 1 = Sum $end +$upscope $end +$upscope $end +$scope module f1 $end +$var wire 1 > A $end +$var wire 1 ? B $end +$var wire 1 @ Carry $end +$var wire 1 A CarryO $end +$var wire 1 B xor1 $end +$var wire 1 C and2 $end +$var wire 1 D and1 $end +$var wire 1 E Sum $end +$scope module h1 $end +$var wire 1 > A $end +$var wire 1 ? B $end +$var wire 1 D Carry $end +$var wire 1 B Sum $end +$upscope $end +$scope module h2 $end +$var wire 1 B A $end +$var wire 1 @ B $end +$var wire 1 C Carry $end +$var wire 1 E Sum $end +$upscope $end +$upscope $end +$scope module f2 $end +$var wire 1 F A $end +$var wire 1 G B $end +$var wire 1 H Carry $end +$var wire 1 I CarryO $end +$var wire 1 J xor1 $end +$var wire 1 K and2 $end +$var wire 1 L and1 $end +$var wire 1 M Sum $end +$scope module h1 $end +$var wire 1 F A $end +$var wire 1 G B $end +$var wire 1 L Carry $end +$var wire 1 J Sum $end +$upscope $end +$scope module h2 $end +$var wire 1 J A $end +$var wire 1 H B $end +$var wire 1 K Carry $end +$var wire 1 M Sum $end +$upscope $end +$upscope $end +$scope module f3 $end +$var wire 1 N A $end +$var wire 1 O B $end +$var wire 1 P Carry $end +$var wire 1 5 CarryO $end +$var wire 1 Q xor1 $end +$var wire 1 R and2 $end +$var wire 1 S and1 $end +$var wire 1 T Sum $end +$scope module h1 $end +$var wire 1 N A $end +$var wire 1 O B $end +$var wire 1 S Carry $end +$var wire 1 Q Sum $end +$upscope $end +$scope module h2 $end +$var wire 1 Q A $end +$var wire 1 P B $end +$var wire 1 R Carry $end +$var wire 1 T Sum $end +$upscope $end +$upscope $end +$scope module od1 $end +$var wire 4 U A [3:0] $end +$var wire 4 V B [3:0] $end +$var wire 1 5 CarryOUT $end +$var wire 4 W Y [3:0] $end +$var wire 1 X addOverflow $end +$var wire 1 Y detect1 $end +$var wire 1 Z detect2 $end +$var wire 1 [ opC $end +$var wire 2 \ opCode [1:0] $end +$var wire 1 ( overflowDetect $end +$var wire 1 ] sign1 $end +$var wire 1 ^ sign2 $end +$var wire 1 _ sign3 $end +$var wire 1 ` subOverflow $end +$upscope $end +$upscope $end +$scope module add1 $end +$var wire 4 a A [3:0] $end +$var wire 4 b B [3:0] $end +$var wire 1 c CarryIN $end +$var wire 1 ' overflow $end +$var wire 4 d Y [3:0] $end +$var wire 1 e CarryOUT $end +$var wire 4 f Carry4 [3:0] $end +$scope module f0 $end +$var wire 1 g A $end +$var wire 1 h B $end +$var wire 1 c Carry $end +$var wire 1 i CarryO $end +$var wire 1 j xor1 $end +$var wire 1 k and2 $end +$var wire 1 l and1 $end +$var wire 1 m Sum $end +$scope module h1 $end +$var wire 1 g A $end +$var wire 1 h B $end +$var wire 1 l Carry $end +$var wire 1 j Sum $end +$upscope $end +$scope module h2 $end +$var wire 1 j A $end +$var wire 1 c B $end +$var wire 1 k Carry $end +$var wire 1 m Sum $end +$upscope $end +$upscope $end +$scope module f1 $end +$var wire 1 n A $end +$var wire 1 o B $end +$var wire 1 p Carry $end +$var wire 1 q CarryO $end +$var wire 1 r xor1 $end +$var wire 1 s and2 $end +$var wire 1 t and1 $end +$var wire 1 u Sum $end +$scope module h1 $end +$var wire 1 n A $end +$var wire 1 o B $end +$var wire 1 t Carry $end +$var wire 1 r Sum $end +$upscope $end +$scope module h2 $end +$var wire 1 r A $end +$var wire 1 p B $end +$var wire 1 s Carry $end +$var wire 1 u Sum $end +$upscope $end +$upscope $end +$scope module f2 $end +$var wire 1 v A $end +$var wire 1 w B $end +$var wire 1 x Carry $end +$var wire 1 y CarryO $end +$var wire 1 z xor1 $end +$var wire 1 { and2 $end +$var wire 1 | and1 $end +$var wire 1 } Sum $end +$scope module h1 $end +$var wire 1 v A $end +$var wire 1 w B $end +$var wire 1 | Carry $end +$var wire 1 z Sum $end +$upscope $end +$scope module h2 $end +$var wire 1 z A $end +$var wire 1 x B $end +$var wire 1 { Carry $end +$var wire 1 } Sum $end +$upscope $end +$upscope $end +$scope module f3 $end +$var wire 1 ~ A $end +$var wire 1 !" B $end +$var wire 1 "" Carry $end +$var wire 1 e CarryO $end +$var wire 1 #" xor1 $end +$var wire 1 $" and2 $end +$var wire 1 %" and1 $end +$var wire 1 &" Sum $end +$scope module h1 $end +$var wire 1 ~ A $end +$var wire 1 !" B $end +$var wire 1 %" Carry $end +$var wire 1 #" Sum $end +$upscope $end +$scope module h2 $end +$var wire 1 #" A $end +$var wire 1 "" B $end +$var wire 1 $" Carry $end +$var wire 1 &" Sum $end +$upscope $end +$upscope $end +$scope module od1 $end +$var wire 4 '" A [3:0] $end +$var wire 4 (" B [3:0] $end +$var wire 1 e CarryOUT $end +$var wire 4 )" Y [3:0] $end +$var wire 1 *" addOverflow $end +$var wire 1 +" detect1 $end +$var wire 1 ," detect2 $end +$var wire 1 -" opC $end +$var wire 2 ." opCode [1:0] $end +$var wire 1 ' overflowDetect $end +$var wire 1 /" sign1 $end +$var wire 1 0" sign2 $end +$var wire 1 1" sign3 $end +$var wire 1 2" subOverflow $end +$upscope $end +$upscope $end +$scope module add2 $end +$var wire 4 3" A [3:0] $end +$var wire 4 4" B [3:0] $end +$var wire 1 5" CarryIN $end +$var wire 1 & overflow $end +$var wire 4 6" Y [3:0] $end +$var wire 1 7" CarryOUT $end +$var wire 4 8" Carry4 [3:0] $end +$scope module f0 $end +$var wire 1 9" A $end +$var wire 1 :" B $end +$var wire 1 5" Carry $end +$var wire 1 ;" CarryO $end +$var wire 1 <" xor1 $end +$var wire 1 =" and2 $end +$var wire 1 >" and1 $end +$var wire 1 ?" Sum $end +$scope module h1 $end +$var wire 1 9" A $end +$var wire 1 :" B $end +$var wire 1 >" Carry $end +$var wire 1 <" Sum $end +$upscope $end +$scope module h2 $end +$var wire 1 <" A $end +$var wire 1 5" B $end +$var wire 1 =" Carry $end +$var wire 1 ?" Sum $end +$upscope $end +$upscope $end +$scope module f1 $end +$var wire 1 @" A $end +$var wire 1 A" B $end +$var wire 1 B" Carry $end +$var wire 1 C" CarryO $end +$var wire 1 D" xor1 $end +$var wire 1 E" and2 $end +$var wire 1 F" and1 $end +$var wire 1 G" Sum $end +$scope module h1 $end +$var wire 1 @" A $end +$var wire 1 A" B $end +$var wire 1 F" Carry $end +$var wire 1 D" Sum $end +$upscope $end +$scope module h2 $end +$var wire 1 D" A $end +$var wire 1 B" B $end +$var wire 1 E" Carry $end +$var wire 1 G" Sum $end +$upscope $end +$upscope $end +$scope module f2 $end +$var wire 1 H" A $end +$var wire 1 I" B $end +$var wire 1 J" Carry $end +$var wire 1 K" CarryO $end +$var wire 1 L" xor1 $end +$var wire 1 M" and2 $end +$var wire 1 N" and1 $end +$var wire 1 O" Sum $end +$scope module h1 $end +$var wire 1 H" A $end +$var wire 1 I" B $end +$var wire 1 N" Carry $end +$var wire 1 L" Sum $end +$upscope $end +$scope module h2 $end +$var wire 1 L" A $end +$var wire 1 J" B $end +$var wire 1 M" Carry $end +$var wire 1 O" Sum $end +$upscope $end +$upscope $end +$scope module f3 $end +$var wire 1 P" A $end +$var wire 1 Q" B $end +$var wire 1 R" Carry $end +$var wire 1 7" CarryO $end +$var wire 1 S" xor1 $end +$var wire 1 T" and2 $end +$var wire 1 U" and1 $end +$var wire 1 V" Sum $end +$scope module h1 $end +$var wire 1 P" A $end +$var wire 1 Q" B $end +$var wire 1 U" Carry $end +$var wire 1 S" Sum $end +$upscope $end +$scope module h2 $end +$var wire 1 S" A $end +$var wire 1 R" B $end +$var wire 1 T" Carry $end +$var wire 1 V" Sum $end +$upscope $end +$upscope $end +$scope module od1 $end +$var wire 4 W" A [3:0] $end +$var wire 4 X" B [3:0] $end +$var wire 1 7" CarryOUT $end +$var wire 4 Y" Y [3:0] $end +$var wire 1 Z" addOverflow $end +$var wire 1 [" detect1 $end +$var wire 1 \" detect2 $end +$var wire 1 ]" opC $end +$var wire 2 ^" opCode [1:0] $end +$var wire 1 & overflowDetect $end +$var wire 1 _" sign1 $end +$var wire 1 `" sign2 $end +$var wire 1 a" sign3 $end +$var wire 1 b" subOverflow $end +$upscope $end +$upscope $end +$upscope $end +$upscope $end +$enddefinitions $end +#0 +$dumpvars +0b" +0a" +0`" +1_" +b1 ^" +1]" +0\" +1[" +1Z" +b0 Y" +b0 X" +b0 W" +0V" +0U" +0T" +0S" +0R" +0Q" +0P" +0O" +0N" +0M" +0L" +0K" +0J" +0I" +0H" +0G" +0F" +0E" +0D" +0C" +0B" +0A" +0@" +0?" +0>" +0=" +0<" +0;" +0:" +09" +bz000 8" +07" +b0 6" +05" +b0 4" +b0 3" +02" +01" +00" +1/" +b1 ." +1-" +0," +1+" +1*" +b0 )" +b0 (" +b0 '" +0&" +0%" +0$" +0#" +0"" +0!" +0~ +0} +0| +0{ +0z +0y +0x +0w +0v +0u +0t +0s +0r +0q +0p +0o +0n +0m +0l +0k +0j +0i +0h +0g +bz000 f +0e +b0 d +0c +b0 b +b0 a +0` +0_ +0^ +1] +b1 \ +1[ +0Z +1Y +1X +b0 W +b0 V +b0 U +0T +0S +0R +0Q +0P +0O +0N +0M +0L +0K +0J +0I +0H +0G +0F +0E +0D +0C +0B +0A +0@ +0? +0> +0= +0< +0; +0: +09 +08 +07 +bz000 6 +05 +b0 4 +03 +b0 2 +b0 1 +b0 0 +b0 / +b0 . +b0 - +b0 , +b0 + +b0 * +b0 ) +0( +0' +0& +b0 % +b0 $ +b0 # +b0 " +b0 ! +$end +#2 +b1000 # +b1000 % +#4 +b1000000 ! +b1000000 - +0[" +0& +b1000 . +b1000 6" +b1000 Y" +1V" +0Z" +0\" +1S" +0_" +1a" +0`" +1P" +b1000 * +b1000 3" +b1000 W" +b1000 " +b1000 $ +#6 +1' +1O" +1," +1L" +10" +1I" +1( +1&" +1Z +1| +1s +1"" +1^ +1w +1p +1y +1i +0{ +1T +1l +1x +1P +1h +bz111 f +1q +0?" +1G" +1I +0t +0<" +1D" +0& +1E +1K +0o +0:" +1A" +0\" +1@ +1H +b101 b +b101 (" +b110 4" +b110 X" +1[" +19 +bz111 6 +1A +b1010 0 +b1010 4 +b1010 W +0M +0m +0u +b1100 / +b1100 d +b1100 )" +1} +b110 . +b110 6" +b110 Y" +0V" +1Z" +1< +1D +1J +0j +1r +0z +0S" +1_" +0a" +0`" +18 +1? +17 +1> +1F +1g +1n +1v +0P" +b110001 ! +b110001 - +b11 ) +b11 2 +b11 V +b111 , +b111 1 +b111 U +b111 + +b111 a +b111 '" +b0 * +b0 3" +b0 W" +b111 # +b111 % +b111 " +b111 $ +#8 +1E" +1B" +1;" +1>" +1:" +0A" +1%" +0s +1u +1{ +0} +1U" +0M" +17" +1!" +1t +0r +0| +1z +1Q" +0T" +1o +0w +1I" +b11100001 ! +b11100001 - +1J" +1R" +15 +b1011 b +b1011 (" +0Y +0( +1e +b1101 4" +b1101 X" +1+" +0' +1[" +0& +0?" +1C" +0G" +bz111 8" +1K" +1O" +0K +1M +1R +b10110 0 +b110 4 +b110 W +0T +0X +0Z +0$" +b11010 / +b1010 d +b1010 )" +1&" +1*" +0," +b11100 . +b1100 6" +b1100 Y" +1V" +1Z" +0\" +0<" +0F" +1D" +1N" +0L" +1L +0J +1Q +0] +1_ +1^ +0#" +1/" +01" +00" +0S" +1_" +0a" +0`" +19" +1@" +1H" +1G +1N +1~ +1P" +b111 ) +b111 2 +b111 V +b1111 , +b1111 1 +b1111 U +b1111 + +b1111 a +b1111 '" +b1111 * +b1111 3" +b1111 W" +b1111 # +b1111 % +b1111 " +b1111 $ +#10 diff --git a/project0.2/multiplierTB.v b/project0.2/multiplierTB.v new file mode 100644 index 0000000..d45c10b --- /dev/null +++ b/project0.2/multiplierTB.v @@ -0,0 +1,22 @@ +module multiplierTB(); +reg [3:0] A, B; +wire [7:0] Y; + +multiplier uut( + .A(A), + .B(B), + .Y(Y) +); + +initial begin + $dumpfile("multiplier.vcd"); + $dumpvars; + A = 4'b0000; B = 4'b0000; #2; + A = 4'b0000; B = 4'b1000; #2; + A = 4'b1000; B = 4'b1000; #2; + A = 4'b0111; B = 4'b0111; #2; + A = 4'b1111; B = 4'b1111; #2; + $finish; +end + +endmodule diff --git a/project0.2/opCode b/project0.2/opCode new file mode 100644 index 0000000..e257f9f --- /dev/null +++ b/project0.2/opCode @@ -0,0 +1,111 @@ +#! /usr/bin/vvp +:ivl_version "11.0 (stable)"; +:ivl_delay_selection "TYPICAL"; +:vpi_time_precision + 0; +:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/system.vpi"; +:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/vhdl_sys.vpi"; +:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/vhdl_textio.vpi"; +:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/v2005_math.vpi"; +:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/va_math.vpi"; +S_0x5602ec702f00 .scope module, "opCodeTB" "opCodeTB" 2 1; + .timescale 0 0; +v0x5602ec71a9e0_0 .var "A", 2 0; +v0x5602ec71aaa0_0 .net "opCode", 7 0, L_0x5602ec71c020; 1 drivers +S_0x5602ec703090 .scope module, "uut" "opCode" 2 6, 3 1 0, S_0x5602ec702f00; + .timescale 0 0; + .port_info 0 /INPUT 3 "A"; + .port_info 1 /OUTPUT 8 "opCode"; +L_0x5602ec71ab70 .functor NOT 1, L_0x5602ec71ac40, C4<0>, C4<0>, C4<0>; +L_0x5602ec71ad30 .functor NOT 1, L_0x5602ec71adc0, C4<0>, C4<0>, C4<0>; +L_0x5602ec71aeb0 .functor NOT 1, L_0x5602ec71af50, C4<0>, C4<0>, C4<0>; +L_0x5602ec71b040 .functor AND 1, L_0x5602ec71b140, L_0x5602ec71b210, C4<1>, C4<1>; +L_0x5602ec71b300 .functor AND 1, L_0x5602ec71ab70, L_0x5602ec71b3c0, C4<1>, C4<1>; +L_0x5602ec71b4f0 .functor AND 1, L_0x5602ec71b5f0, L_0x5602ec71ad30, C4<1>, C4<1>; +L_0x5602ec71b6e0 .functor AND 1, L_0x5602ec71ab70, L_0x5602ec71ad30, C4<1>, C4<1>; +L_0x5602ec71b750 .functor AND 1, L_0x5602ec71b6e0, L_0x5602ec71aeb0, C4<1>, C4<1>; +L_0x5602ec71b8b0 .functor AND 1, L_0x5602ec71b6e0, L_0x5602ec71b920, C4<1>, C4<1>; +L_0x5602ec71ba60 .functor AND 1, L_0x5602ec71b300, L_0x5602ec71aeb0, C4<1>, C4<1>; +L_0x5602ec71bb80 .functor AND 1, L_0x5602ec71b300, L_0x5602ec71bbf0, C4<1>, C4<1>; +L_0x5602ec71bc90 .functor AND 1, L_0x5602ec71b4f0, L_0x5602ec71aeb0, C4<1>, C4<1>; +L_0x5602ec71bdc0 .functor AND 1, L_0x5602ec71b4f0, L_0x5602ec71be30, C4<1>, C4<1>; +L_0x5602ec71bf30 .functor AND 1, L_0x5602ec71b040, L_0x5602ec71aeb0, C4<1>, C4<1>; +L_0x5602ec71bd50 .functor AND 1, L_0x5602ec71b040, L_0x5602ec71c3e0, C4<1>, C4<1>; +v0x5602ec6ef910_0 .net "A", 2 0, v0x5602ec71a9e0_0; 1 drivers +v0x5602ec6ef0a0_0 .net *"_ivl_1", 0 0, L_0x5602ec71ac40; 1 drivers +v0x5602ec6eec60_0 .net *"_ivl_11", 0 0, L_0x5602ec71b3c0; 1 drivers +v0x5602ec6ee3f0_0 .net *"_ivl_13", 0 0, L_0x5602ec71b5f0; 1 drivers +v0x5602ec6edfc0_0 .net *"_ivl_14", 0 0, L_0x5602ec71b750; 1 drivers +v0x5602ec719640_0 .net *"_ivl_16", 0 0, L_0x5602ec71b8b0; 1 drivers +v0x5602ec719720_0 .net *"_ivl_19", 0 0, L_0x5602ec71b920; 1 drivers +v0x5602ec719800_0 .net *"_ivl_20", 0 0, L_0x5602ec71ba60; 1 drivers +v0x5602ec7198e0_0 .net *"_ivl_22", 0 0, L_0x5602ec71bb80; 1 drivers +v0x5602ec7199c0_0 .net *"_ivl_25", 0 0, L_0x5602ec71bbf0; 1 drivers +v0x5602ec719aa0_0 .net *"_ivl_26", 0 0, L_0x5602ec71bc90; 1 drivers +v0x5602ec719b80_0 .net *"_ivl_28", 0 0, L_0x5602ec71bdc0; 1 drivers +v0x5602ec719c60_0 .net *"_ivl_3", 0 0, L_0x5602ec71adc0; 1 drivers +v0x5602ec719d40_0 .net *"_ivl_31", 0 0, L_0x5602ec71be30; 1 drivers +v0x5602ec719e20_0 .net *"_ivl_32", 0 0, L_0x5602ec71bf30; 1 drivers +v0x5602ec719f00_0 .net *"_ivl_34", 0 0, L_0x5602ec71bd50; 1 drivers +v0x5602ec719fe0_0 .net *"_ivl_38", 0 0, L_0x5602ec71c3e0; 1 drivers +v0x5602ec71a0c0_0 .net *"_ivl_5", 0 0, L_0x5602ec71af50; 1 drivers +v0x5602ec71a1a0_0 .net *"_ivl_7", 0 0, L_0x5602ec71b140; 1 drivers +v0x5602ec71a280_0 .net *"_ivl_9", 0 0, L_0x5602ec71b210; 1 drivers +v0x5602ec71a360_0 .net "and1", 0 0, L_0x5602ec71b040; 1 drivers +v0x5602ec71a420_0 .net "and2", 0 0, L_0x5602ec71b300; 1 drivers +v0x5602ec71a4e0_0 .net "and3", 0 0, L_0x5602ec71b4f0; 1 drivers +v0x5602ec71a5a0_0 .net "and4", 0 0, L_0x5602ec71b6e0; 1 drivers +v0x5602ec71a660_0 .net "notA", 0 0, L_0x5602ec71ab70; 1 drivers +v0x5602ec71a720_0 .net "notB", 0 0, L_0x5602ec71ad30; 1 drivers +v0x5602ec71a7e0_0 .net "notC", 0 0, L_0x5602ec71aeb0; 1 drivers +v0x5602ec71a8a0_0 .net "opCode", 7 0, L_0x5602ec71c020; alias, 1 drivers +L_0x5602ec71ac40 .part v0x5602ec71a9e0_0, 2, 1; +L_0x5602ec71adc0 .part v0x5602ec71a9e0_0, 1, 1; +L_0x5602ec71af50 .part v0x5602ec71a9e0_0, 0, 1; +L_0x5602ec71b140 .part v0x5602ec71a9e0_0, 2, 1; +L_0x5602ec71b210 .part v0x5602ec71a9e0_0, 1, 1; +L_0x5602ec71b3c0 .part v0x5602ec71a9e0_0, 1, 1; +L_0x5602ec71b5f0 .part v0x5602ec71a9e0_0, 2, 1; +L_0x5602ec71b920 .part v0x5602ec71a9e0_0, 0, 1; +L_0x5602ec71bbf0 .part v0x5602ec71a9e0_0, 0, 1; +L_0x5602ec71be30 .part v0x5602ec71a9e0_0, 0, 1; +LS_0x5602ec71c020_0_0 .concat8 [ 1 1 1 1], L_0x5602ec71b750, L_0x5602ec71b8b0, L_0x5602ec71ba60, L_0x5602ec71bb80; +LS_0x5602ec71c020_0_4 .concat8 [ 1 1 1 1], L_0x5602ec71bc90, L_0x5602ec71bdc0, L_0x5602ec71bf30, L_0x5602ec71bd50; +L_0x5602ec71c020 .concat8 [ 4 4 0 0], LS_0x5602ec71c020_0_0, LS_0x5602ec71c020_0_4; +L_0x5602ec71c3e0 .part v0x5602ec71a9e0_0, 0, 1; + .scope S_0x5602ec702f00; +T_0 ; + %vpi_call 2 13 "$dumpfile", "opCode.vcd" {0 0 0}; + %vpi_call 2 14 "$dumpvars" {0 0 0}; + %pushi/vec4 0, 0, 3; + %store/vec4 v0x5602ec71a9e0_0, 0, 3; + %delay 3, 0; + %pushi/vec4 1, 0, 3; + %store/vec4 v0x5602ec71a9e0_0, 0, 3; + %delay 3, 0; + %pushi/vec4 2, 0, 3; + %store/vec4 v0x5602ec71a9e0_0, 0, 3; + %delay 3, 0; + %pushi/vec4 3, 0, 3; + %store/vec4 v0x5602ec71a9e0_0, 0, 3; + %delay 3, 0; + %pushi/vec4 4, 0, 3; + %store/vec4 v0x5602ec71a9e0_0, 0, 3; + %delay 3, 0; + %pushi/vec4 5, 0, 3; + %store/vec4 v0x5602ec71a9e0_0, 0, 3; + %delay 3, 0; + %pushi/vec4 6, 0, 3; + %store/vec4 v0x5602ec71a9e0_0, 0, 3; + %delay 3, 0; + %pushi/vec4 7, 0, 3; + %store/vec4 v0x5602ec71a9e0_0, 0, 3; + %delay 3, 0; + %vpi_call 2 23 "$finish" {0 0 0}; + %end; + .thread T_0; +# The file index is used to find the file name in the following table. +:file_names 4; + "N/A"; + ""; + "opCodeTB.v"; + "opCode.v"; diff --git a/project0.2/opCode.v b/project0.2/opCode.v new file mode 100644 index 0000000..f8e9e03 --- /dev/null +++ b/project0.2/opCode.v @@ -0,0 +1,25 @@ +module opCode ( + input [2:0] A, + output [7:0] opCode +); + wire and1, and2, and3, and4, notA, notB, notC; + + not n1(notA, A[2]); + not n2(notB, A[1]); + not n3(notC, A[0]); + + and a01(and1, A[2], A[1]); + and a02(and2, notA, A[1]); + and a03(and3, A[2], notB); + and a04(and4, notA, notB); + + and a1(opCode[0], and4, notC); + and a2(opCode[1], and4, A[0]); + and a3(opCode[2], and2, notC); + and a4(opCode[3], and2, A[0]); + and a5(opCode[4], and3, notC); + and a6(opCode[5], and3, A[0]); + and a7(opCode[6], and1, notC); + and a8(opCode[7], and1, A[0]); + +endmodule diff --git a/project0.2/opCode.vcd b/project0.2/opCode.vcd new file mode 100644 index 0000000..7132d3f --- /dev/null +++ b/project0.2/opCode.vcd @@ -0,0 +1,92 @@ +$date + Sun Dec 15 04:12:35 2024 +$end +$version + Icarus Verilog +$end +$timescale + 1s +$end +$scope module opCodeTB $end +$var wire 8 ! opCode [7:0] $end +$var reg 3 " A [2:0] $end +$scope module uut $end +$var wire 3 # A [2:0] $end +$var wire 1 $ and1 $end +$var wire 1 % and2 $end +$var wire 1 & and3 $end +$var wire 1 ' and4 $end +$var wire 1 ( notA $end +$var wire 1 ) notB $end +$var wire 1 * notC $end +$var wire 8 + opCode [7:0] $end +$upscope $end +$upscope $end +$enddefinitions $end +#0 +$dumpvars +b1 + +1* +1) +1( +1' +0& +0% +0$ +b0 # +b0 " +b1 ! +$end +#3 +0* +b10 ! +b10 + +b1 " +b1 # +#6 +0' +0) +1* +1% +b100 ! +b100 + +b10 " +b10 # +#9 +0* +b1000 ! +b1000 + +b11 " +b11 # +#12 +1& +0( +1) +1* +0% +b10000 ! +b10000 + +b100 " +b100 # +#15 +0* +b100000 ! +b100000 + +b101 " +b101 # +#18 +0& +0) +1* +1$ +b1000000 ! +b1000000 + +b110 " +b110 # +#21 +0* +b10000000 ! +b10000000 + +b111 " +b111 # +#24 diff --git a/project0.2/opCodeTB.v b/project0.2/opCodeTB.v new file mode 100644 index 0000000..67df050 --- /dev/null +++ b/project0.2/opCodeTB.v @@ -0,0 +1,26 @@ +module opCodeTB(); + +reg [2:0] A; +wire [7:0] opCode; + +opCode uut ( + .A(A), + + .opCode(opCode) +); + +initial begin + $dumpfile("opCode.vcd"); + $dumpvars; + A = 3'b000; #3; + A = 3'b001; #3; + A = 3'b010; #3; + A = 3'b011; #3; + A = 3'b100; #3; + A = 3'b101; #3; + A = 3'b110; #3; + A = 3'b111; #3; + $finish; +end + +endmodule diff --git a/project0.2/overflowDetect.v b/project0.2/overflowDetect.v new file mode 100644 index 0000000..267b1fa --- /dev/null +++ b/project0.2/overflowDetect.v @@ -0,0 +1,29 @@ +module overflowDetect ( + input [1:0] opCode, + input [3:0] A, B, + input [3:0] Y, + input CarryOUT, + output overflowDetect +); + +wire opC; +wire sign1, sign2, sign3, sign4; +wire addOverflow, subOverflow; +wire detect1, detect2; + +or o1 (opC, opCode[0], opCode[1]); //check add or sub + +xnor xno1 (sign1, A[3], B[3]); // A B same sign +xor xo2 (sign3, A[3], B[3]); // A and B opposite sign + +xor xo1 (sign2, Y[3], A[3]); // A and Sum opposite sign + +and a01 (addOverflow, sign1, opCode[0]); // A B same for add +and a02 (subOverflow, sign3, opCode[1]); // A B diff for sub + +or o2 (detect1, addOverflow, subOverflow); + +and a03(detect2, detect1, sign2); +and a04(overflowDetect, opC, detect2); + +endmodule diff --git a/project0.2/subtraction b/project0.2/subtraction new file mode 100644 index 0000000..64bfc14 --- /dev/null +++ b/project0.2/subtraction @@ -0,0 +1,331 @@ +#! /usr/bin/vvp +:ivl_version "11.0 (stable)"; +:ivl_delay_selection "TYPICAL"; +:vpi_time_precision + 0; +:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/system.vpi"; +:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/vhdl_sys.vpi"; +:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/vhdl_textio.vpi"; +:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/v2005_math.vpi"; +:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/va_math.vpi"; +S_0x55fdbe99f210 .scope module, "subtractionTB" "subtractionTB" 2 1; + .timescale 0 0; +v0x55fdbe9cae90_0 .var "A", 3 0; +v0x55fdbe9cafc0_0 .var "B", 3 0; +v0x55fdbe9cb0d0_0 .var "BorrowIN", 0 0; +v0x55fdbe9cb170_0 .net "BorrowOut", 0 0, L_0x55fdbe9cd610; 1 drivers +v0x55fdbe9cb210_0 .net "Y", 3 0, L_0x55fdbe9cdb40; 1 drivers +v0x55fdbe9cb350_0 .net "overflow", 0 0, L_0x55fdbe9ceb90; 1 drivers +S_0x55fdbe99f550 .scope module, "uut" "subtraction" 2 10, 3 1 0, S_0x55fdbe99f210; + .timescale 0 0; + .port_info 0 /INPUT 4 "A"; + .port_info 1 /INPUT 4 "B"; + .port_info 2 /INPUT 1 "BorrowIN"; + .port_info 3 /OUTPUT 4 "Y"; + .port_info 4 /OUTPUT 1 "BorrowOut"; + .port_info 5 /OUTPUT 1 "overflow"; +v0x55fdbe9ca770_0 .net "A", 3 0, v0x55fdbe9cae90_0; 1 drivers +v0x55fdbe9ca850_0 .net "B", 3 0, v0x55fdbe9cafc0_0; 1 drivers +v0x55fdbe9ca920_0 .net "BorrowIN", 0 0, v0x55fdbe9cb0d0_0; 1 drivers +v0x55fdbe9ca9f0_0 .net "BorrowOut", 0 0, L_0x55fdbe9cd610; alias, 1 drivers +v0x55fdbe9caae0_0 .net "Y", 3 0, L_0x55fdbe9cdb40; alias, 1 drivers +o0x7f3602c5f6c8 .functor BUFZ 1, C4; HiZ drive +; Elide local net with no drivers, v0x55fdbe9cabd0_0 name=_ivl_41 +v0x55fdbe9cac70_0 .net "overflow", 0 0, L_0x55fdbe9ceb90; alias, 1 drivers +v0x55fdbe9cad10_0 .net "tempB", 3 0, L_0x55fdbe9ceca0; 1 drivers +L_0x55fdbe9cba50 .part v0x55fdbe9cae90_0, 0, 1; +L_0x55fdbe9cbba0 .part v0x55fdbe9cafc0_0, 0, 1; +L_0x55fdbe9cc2e0 .part v0x55fdbe9cae90_0, 1, 1; +L_0x55fdbe9cc4a0 .part v0x55fdbe9cafc0_0, 1, 1; +L_0x55fdbe9cc660 .part L_0x55fdbe9ceca0, 0, 1; +L_0x55fdbe9ccc70 .part v0x55fdbe9cae90_0, 2, 1; +L_0x55fdbe9ccde0 .part v0x55fdbe9cafc0_0, 2, 1; +L_0x55fdbe9ccf10 .part L_0x55fdbe9ceca0, 1, 1; +L_0x55fdbe9cd750 .part v0x55fdbe9cae90_0, 3, 1; +L_0x55fdbe9cd880 .part v0x55fdbe9cafc0_0, 3, 1; +L_0x55fdbe9cda10 .part L_0x55fdbe9ceca0, 2, 1; +L_0x55fdbe9cdb40 .concat8 [ 1 1 1 1], L_0x55fdbe9cb730, L_0x55fdbe9cbf20, L_0x55fdbe9cc900, L_0x55fdbe9cd2e0; +L_0x55fdbe9ceca0 .concat [ 1 1 1 1], L_0x55fdbe9cb9c0, L_0x55fdbe9cc250, L_0x55fdbe9ccbe0, o0x7f3602c5f6c8; +S_0x55fdbe98a330 .scope module, "f0" "fullsubtraction" 3 12, 4 1 0, S_0x55fdbe99f550; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /INPUT 1 "BorrowIN"; + .port_info 3 /OUTPUT 1 "Difference"; + .port_info 4 /OUTPUT 1 "BorrowOut"; +L_0x55fdbe9cb9c0 .functor OR 1, L_0x55fdbe9cb620, L_0x55fdbe9cb950, C4<0>, C4<0>; +v0x55fdbe9c4400_0 .net "A", 0 0, L_0x55fdbe9cba50; 1 drivers +v0x55fdbe9c44c0_0 .net "B", 0 0, L_0x55fdbe9cbba0; 1 drivers +v0x55fdbe9c4590_0 .net "BorrowIN", 0 0, v0x55fdbe9cb0d0_0; alias, 1 drivers +v0x55fdbe9c4690_0 .net "BorrowOut", 0 0, L_0x55fdbe9cb9c0; 1 drivers +v0x55fdbe9c4730_0 .net "Difference", 0 0, L_0x55fdbe9cb730; 1 drivers +v0x55fdbe9c4820_0 .net "tempB1", 0 0, L_0x55fdbe9cb620; 1 drivers +v0x55fdbe9c48f0_0 .net "tempB2", 0 0, L_0x55fdbe9cb950; 1 drivers +v0x55fdbe9c49c0_0 .net "tempD", 0 0, L_0x55fdbe9cb440; 1 drivers +S_0x55fdbe996d90 .scope module, "hf1" "halfsubtraction" 4 8, 5 1 0, S_0x55fdbe98a330; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /OUTPUT 1 "Difference"; + .port_info 3 /OUTPUT 1 "Borrow"; +L_0x55fdbe9cb440 .functor XOR 1, L_0x55fdbe9cba50, L_0x55fdbe9cbba0, C4<0>, C4<0>; +L_0x55fdbe9cb590 .functor NOT 1, L_0x55fdbe9cba50, C4<0>, C4<0>, C4<0>; +L_0x55fdbe9cb620 .functor AND 1, L_0x55fdbe9cb590, L_0x55fdbe9cbba0, C4<1>, C4<1>; +v0x55fdbe99fb80_0 .net "A", 0 0, L_0x55fdbe9cba50; alias, 1 drivers +v0x55fdbe98c6e0_0 .net "B", 0 0, L_0x55fdbe9cbba0; alias, 1 drivers +v0x55fdbe98a9d0_0 .net "Borrow", 0 0, L_0x55fdbe9cb620; alias, 1 drivers +v0x55fdbe9c3b10_0 .net "Difference", 0 0, L_0x55fdbe9cb440; alias, 1 drivers +v0x55fdbe9c3bd0_0 .net "notA", 0 0, L_0x55fdbe9cb590; 1 drivers +S_0x55fdbe9c3d60 .scope module, "hf2" "halfsubtraction" 4 9, 5 1 0, S_0x55fdbe98a330; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /OUTPUT 1 "Difference"; + .port_info 3 /OUTPUT 1 "Borrow"; +L_0x55fdbe9cb730 .functor XOR 1, L_0x55fdbe9cb440, v0x55fdbe9cb0d0_0, C4<0>, C4<0>; +L_0x55fdbe9cb8c0 .functor NOT 1, L_0x55fdbe9cb440, C4<0>, C4<0>, C4<0>; +L_0x55fdbe9cb950 .functor AND 1, L_0x55fdbe9cb8c0, v0x55fdbe9cb0d0_0, C4<1>, C4<1>; +v0x55fdbe9c3fd0_0 .net "A", 0 0, L_0x55fdbe9cb440; alias, 1 drivers +v0x55fdbe9c4070_0 .net "B", 0 0, v0x55fdbe9cb0d0_0; alias, 1 drivers +v0x55fdbe9c4110_0 .net "Borrow", 0 0, L_0x55fdbe9cb950; alias, 1 drivers +v0x55fdbe9c41b0_0 .net "Difference", 0 0, L_0x55fdbe9cb730; alias, 1 drivers +v0x55fdbe9c4270_0 .net "notA", 0 0, L_0x55fdbe9cb8c0; 1 drivers +S_0x55fdbe9c4ab0 .scope module, "f1" "fullsubtraction" 3 13, 4 1 0, S_0x55fdbe99f550; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /INPUT 1 "BorrowIN"; + .port_info 3 /OUTPUT 1 "Difference"; + .port_info 4 /OUTPUT 1 "BorrowOut"; +L_0x55fdbe9cc250 .functor OR 1, L_0x55fdbe9cbe10, L_0x55fdbe9cc140, C4<0>, C4<0>; +v0x55fdbe9c5ad0_0 .net "A", 0 0, L_0x55fdbe9cc2e0; 1 drivers +v0x55fdbe9c5b90_0 .net "B", 0 0, L_0x55fdbe9cc4a0; 1 drivers +v0x55fdbe9c5c60_0 .net "BorrowIN", 0 0, L_0x55fdbe9cc660; 1 drivers +v0x55fdbe9c5d60_0 .net "BorrowOut", 0 0, L_0x55fdbe9cc250; 1 drivers +v0x55fdbe9c5e00_0 .net "Difference", 0 0, L_0x55fdbe9cbf20; 1 drivers +v0x55fdbe9c5ef0_0 .net "tempB1", 0 0, L_0x55fdbe9cbe10; 1 drivers +v0x55fdbe9c5fc0_0 .net "tempB2", 0 0, L_0x55fdbe9cc140; 1 drivers +v0x55fdbe9c6090_0 .net "tempD", 0 0, L_0x55fdbe9cbcd0; 1 drivers +S_0x55fdbe9c4c90 .scope module, "hf1" "halfsubtraction" 4 8, 5 1 0, S_0x55fdbe9c4ab0; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /OUTPUT 1 "Difference"; + .port_info 3 /OUTPUT 1 "Borrow"; +L_0x55fdbe9cbcd0 .functor XOR 1, L_0x55fdbe9cc2e0, L_0x55fdbe9cc4a0, C4<0>, C4<0>; +L_0x55fdbe9cbd80 .functor NOT 1, L_0x55fdbe9cc2e0, C4<0>, C4<0>, C4<0>; +L_0x55fdbe9cbe10 .functor AND 1, L_0x55fdbe9cbd80, L_0x55fdbe9cc4a0, C4<1>, C4<1>; +v0x55fdbe9c4f10_0 .net "A", 0 0, L_0x55fdbe9cc2e0; alias, 1 drivers +v0x55fdbe9c4ff0_0 .net "B", 0 0, L_0x55fdbe9cc4a0; alias, 1 drivers +v0x55fdbe9c50b0_0 .net "Borrow", 0 0, L_0x55fdbe9cbe10; alias, 1 drivers +v0x55fdbe9c5180_0 .net "Difference", 0 0, L_0x55fdbe9cbcd0; alias, 1 drivers +v0x55fdbe9c5240_0 .net "notA", 0 0, L_0x55fdbe9cbd80; 1 drivers +S_0x55fdbe9c53d0 .scope module, "hf2" "halfsubtraction" 4 9, 5 1 0, S_0x55fdbe9c4ab0; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /OUTPUT 1 "Difference"; + .port_info 3 /OUTPUT 1 "Borrow"; +L_0x55fdbe9cbf20 .functor XOR 1, L_0x55fdbe9cbcd0, L_0x55fdbe9cc660, C4<0>, C4<0>; +L_0x55fdbe9cc0b0 .functor NOT 1, L_0x55fdbe9cbcd0, C4<0>, C4<0>, C4<0>; +L_0x55fdbe9cc140 .functor AND 1, L_0x55fdbe9cc0b0, L_0x55fdbe9cc660, C4<1>, C4<1>; +v0x55fdbe9c5640_0 .net "A", 0 0, L_0x55fdbe9cbcd0; alias, 1 drivers +v0x55fdbe9c5710_0 .net "B", 0 0, L_0x55fdbe9cc660; alias, 1 drivers +v0x55fdbe9c57b0_0 .net "Borrow", 0 0, L_0x55fdbe9cc140; alias, 1 drivers +v0x55fdbe9c5880_0 .net "Difference", 0 0, L_0x55fdbe9cbf20; alias, 1 drivers +v0x55fdbe9c5940_0 .net "notA", 0 0, L_0x55fdbe9cc0b0; 1 drivers +S_0x55fdbe9c6180 .scope module, "f2" "fullsubtraction" 3 14, 4 1 0, S_0x55fdbe99f550; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /INPUT 1 "BorrowIN"; + .port_info 3 /OUTPUT 1 "Difference"; + .port_info 4 /OUTPUT 1 "BorrowOut"; +L_0x55fdbe9ccbe0 .functor OR 1, L_0x55fdbe9cc890, L_0x55fdbe9ccad0, C4<0>, C4<0>; +v0x55fdbe9c7230_0 .net "A", 0 0, L_0x55fdbe9ccc70; 1 drivers +v0x55fdbe9c72f0_0 .net "B", 0 0, L_0x55fdbe9ccde0; 1 drivers +v0x55fdbe9c73c0_0 .net "BorrowIN", 0 0, L_0x55fdbe9ccf10; 1 drivers +v0x55fdbe9c74c0_0 .net "BorrowOut", 0 0, L_0x55fdbe9ccbe0; 1 drivers +v0x55fdbe9c7560_0 .net "Difference", 0 0, L_0x55fdbe9cc900; 1 drivers +v0x55fdbe9c7650_0 .net "tempB1", 0 0, L_0x55fdbe9cc890; 1 drivers +v0x55fdbe9c7720_0 .net "tempB2", 0 0, L_0x55fdbe9ccad0; 1 drivers +v0x55fdbe9c77f0_0 .net "tempD", 0 0, L_0x55fdbe9cc790; 1 drivers +S_0x55fdbe9c6410 .scope module, "hf1" "halfsubtraction" 4 8, 5 1 0, S_0x55fdbe9c6180; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /OUTPUT 1 "Difference"; + .port_info 3 /OUTPUT 1 "Borrow"; +L_0x55fdbe9cc790 .functor XOR 1, L_0x55fdbe9ccc70, L_0x55fdbe9ccde0, C4<0>, C4<0>; +L_0x55fdbe9cc800 .functor NOT 1, L_0x55fdbe9ccc70, C4<0>, C4<0>, C4<0>; +L_0x55fdbe9cc890 .functor AND 1, L_0x55fdbe9cc800, L_0x55fdbe9ccde0, C4<1>, C4<1>; +v0x55fdbe9c6690_0 .net "A", 0 0, L_0x55fdbe9ccc70; alias, 1 drivers +v0x55fdbe9c6750_0 .net "B", 0 0, L_0x55fdbe9ccde0; alias, 1 drivers +v0x55fdbe9c6810_0 .net "Borrow", 0 0, L_0x55fdbe9cc890; alias, 1 drivers +v0x55fdbe9c68e0_0 .net "Difference", 0 0, L_0x55fdbe9cc790; alias, 1 drivers +v0x55fdbe9c69a0_0 .net "notA", 0 0, L_0x55fdbe9cc800; 1 drivers +S_0x55fdbe9c6b30 .scope module, "hf2" "halfsubtraction" 4 9, 5 1 0, S_0x55fdbe9c6180; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /OUTPUT 1 "Difference"; + .port_info 3 /OUTPUT 1 "Borrow"; +L_0x55fdbe9cc900 .functor XOR 1, L_0x55fdbe9cc790, L_0x55fdbe9ccf10, C4<0>, C4<0>; +L_0x55fdbe9cca40 .functor NOT 1, L_0x55fdbe9cc790, C4<0>, C4<0>, C4<0>; +L_0x55fdbe9ccad0 .functor AND 1, L_0x55fdbe9cca40, L_0x55fdbe9ccf10, C4<1>, C4<1>; +v0x55fdbe9c6da0_0 .net "A", 0 0, L_0x55fdbe9cc790; alias, 1 drivers +v0x55fdbe9c6e70_0 .net "B", 0 0, L_0x55fdbe9ccf10; alias, 1 drivers +v0x55fdbe9c6f10_0 .net "Borrow", 0 0, L_0x55fdbe9ccad0; alias, 1 drivers +v0x55fdbe9c6fe0_0 .net "Difference", 0 0, L_0x55fdbe9cc900; alias, 1 drivers +v0x55fdbe9c70a0_0 .net "notA", 0 0, L_0x55fdbe9cca40; 1 drivers +S_0x55fdbe9c78e0 .scope module, "f3" "fullsubtraction" 3 15, 4 1 0, S_0x55fdbe99f550; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /INPUT 1 "BorrowIN"; + .port_info 3 /OUTPUT 1 "Difference"; + .port_info 4 /OUTPUT 1 "BorrowOut"; +L_0x55fdbe9cd610 .functor OR 1, L_0x55fdbe9cd1d0, L_0x55fdbe9cd500, C4<0>, C4<0>; +v0x55fdbe9c8980_0 .net "A", 0 0, L_0x55fdbe9cd750; 1 drivers +v0x55fdbe9c8a40_0 .net "B", 0 0, L_0x55fdbe9cd880; 1 drivers +v0x55fdbe9c8b10_0 .net "BorrowIN", 0 0, L_0x55fdbe9cda10; 1 drivers +v0x55fdbe9c8c10_0 .net "BorrowOut", 0 0, L_0x55fdbe9cd610; alias, 1 drivers +v0x55fdbe9c8cb0_0 .net "Difference", 0 0, L_0x55fdbe9cd2e0; 1 drivers +v0x55fdbe9c8da0_0 .net "tempB1", 0 0, L_0x55fdbe9cd1d0; 1 drivers +v0x55fdbe9c8e70_0 .net "tempB2", 0 0, L_0x55fdbe9cd500; 1 drivers +v0x55fdbe9c8f40_0 .net "tempD", 0 0, L_0x55fdbe9cd090; 1 drivers +S_0x55fdbe9c7b40 .scope module, "hf1" "halfsubtraction" 4 8, 5 1 0, S_0x55fdbe9c78e0; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /OUTPUT 1 "Difference"; + .port_info 3 /OUTPUT 1 "Borrow"; +L_0x55fdbe9cd090 .functor XOR 1, L_0x55fdbe9cd750, L_0x55fdbe9cd880, C4<0>, C4<0>; +L_0x55fdbe9cd140 .functor NOT 1, L_0x55fdbe9cd750, C4<0>, C4<0>, C4<0>; +L_0x55fdbe9cd1d0 .functor AND 1, L_0x55fdbe9cd140, L_0x55fdbe9cd880, C4<1>, C4<1>; +v0x55fdbe9c7dc0_0 .net "A", 0 0, L_0x55fdbe9cd750; alias, 1 drivers +v0x55fdbe9c7ea0_0 .net "B", 0 0, L_0x55fdbe9cd880; alias, 1 drivers +v0x55fdbe9c7f60_0 .net "Borrow", 0 0, L_0x55fdbe9cd1d0; alias, 1 drivers +v0x55fdbe9c8030_0 .net "Difference", 0 0, L_0x55fdbe9cd090; alias, 1 drivers +v0x55fdbe9c80f0_0 .net "notA", 0 0, L_0x55fdbe9cd140; 1 drivers +S_0x55fdbe9c8280 .scope module, "hf2" "halfsubtraction" 4 9, 5 1 0, S_0x55fdbe9c78e0; + .timescale 0 0; + .port_info 0 /INPUT 1 "A"; + .port_info 1 /INPUT 1 "B"; + .port_info 2 /OUTPUT 1 "Difference"; + .port_info 3 /OUTPUT 1 "Borrow"; +L_0x55fdbe9cd2e0 .functor XOR 1, L_0x55fdbe9cd090, L_0x55fdbe9cda10, C4<0>, C4<0>; +L_0x55fdbe9cd470 .functor NOT 1, L_0x55fdbe9cd090, C4<0>, C4<0>, C4<0>; +L_0x55fdbe9cd500 .functor AND 1, L_0x55fdbe9cd470, L_0x55fdbe9cda10, C4<1>, C4<1>; +v0x55fdbe9c84f0_0 .net "A", 0 0, L_0x55fdbe9cd090; alias, 1 drivers +v0x55fdbe9c85c0_0 .net "B", 0 0, L_0x55fdbe9cda10; alias, 1 drivers +v0x55fdbe9c8660_0 .net "Borrow", 0 0, L_0x55fdbe9cd500; alias, 1 drivers +v0x55fdbe9c8730_0 .net "Difference", 0 0, L_0x55fdbe9cd2e0; alias, 1 drivers +v0x55fdbe9c87f0_0 .net "notA", 0 0, L_0x55fdbe9cd470; 1 drivers +S_0x55fdbe9c9030 .scope module, "od1" "overflowDetect" 3 18, 6 1 0, S_0x55fdbe99f550; + .timescale 0 0; + .port_info 0 /INPUT 2 "opCode"; + .port_info 1 /INPUT 4 "A"; + .port_info 2 /INPUT 4 "B"; + .port_info 3 /INPUT 4 "Y"; + .port_info 4 /INPUT 1 "CarryOUT"; + .port_info 5 /OUTPUT 1 "overflowDetect"; +L_0x55fdbe9cdc50 .functor OR 1, L_0x55fdbe9cdce0, L_0x55fdbe9cdd80, C4<0>, C4<0>; +L_0x55fdbe9cde20 .functor XNOR 1, L_0x55fdbe9cde90, L_0x55fdbe9cdf30, C4<0>, C4<0>; +L_0x55fdbe9cdfd0 .functor XOR 1, L_0x55fdbe9ce040, L_0x55fdbe9ce130, C4<0>, C4<0>; +L_0x55fdbe9ce370 .functor XOR 1, L_0x55fdbe9ce3e0, L_0x55fdbe9ce4d0, C4<0>, C4<0>; +L_0x55fdbe9ce5c0 .functor AND 1, L_0x55fdbe9cde20, L_0x55fdbe9ce680, C4<1>, C4<1>; +L_0x55fdbe9ce770 .functor AND 1, L_0x55fdbe9cdfd0, L_0x55fdbe9ce870, C4<1>, C4<1>; +L_0x55fdbe9ce9c0 .functor OR 1, L_0x55fdbe9ce5c0, L_0x55fdbe9ce770, C4<0>, C4<0>; +L_0x55fdbe9cea30 .functor AND 1, L_0x55fdbe9ce9c0, L_0x55fdbe9ce370, C4<1>, C4<1>; +L_0x55fdbe9ceb90 .functor AND 1, L_0x55fdbe9cdc50, L_0x55fdbe9cea30, C4<1>, C4<1>; +v0x55fdbe9c9300_0 .net "A", 3 0, v0x55fdbe9cae90_0; alias, 1 drivers +v0x55fdbe9c93e0_0 .net "B", 3 0, v0x55fdbe9cafc0_0; alias, 1 drivers +v0x55fdbe9c94c0_0 .net "CarryOUT", 0 0, L_0x55fdbe9cd610; alias, 1 drivers +v0x55fdbe9c9560_0 .net "Y", 3 0, L_0x55fdbe9cdb40; alias, 1 drivers +v0x55fdbe9c9600_0 .net *"_ivl_1", 0 0, L_0x55fdbe9cdce0; 1 drivers +v0x55fdbe9c9730_0 .net *"_ivl_11", 0 0, L_0x55fdbe9ce130; 1 drivers +v0x55fdbe9c9810_0 .net *"_ivl_13", 0 0, L_0x55fdbe9ce3e0; 1 drivers +v0x55fdbe9c98f0_0 .net *"_ivl_15", 0 0, L_0x55fdbe9ce4d0; 1 drivers +v0x55fdbe9c99d0_0 .net *"_ivl_17", 0 0, L_0x55fdbe9ce680; 1 drivers +v0x55fdbe9c9ab0_0 .net *"_ivl_19", 0 0, L_0x55fdbe9ce870; 1 drivers +v0x55fdbe9c9b90_0 .net *"_ivl_3", 0 0, L_0x55fdbe9cdd80; 1 drivers +v0x55fdbe9c9c70_0 .net *"_ivl_5", 0 0, L_0x55fdbe9cde90; 1 drivers +v0x55fdbe9c9d50_0 .net *"_ivl_7", 0 0, L_0x55fdbe9cdf30; 1 drivers +v0x55fdbe9c9e30_0 .net *"_ivl_9", 0 0, L_0x55fdbe9ce040; 1 drivers +v0x55fdbe9c9f10_0 .net "addOverflow", 0 0, L_0x55fdbe9ce5c0; 1 drivers +v0x55fdbe9c9fd0_0 .net "detect1", 0 0, L_0x55fdbe9ce9c0; 1 drivers +v0x55fdbe9ca090_0 .net "detect2", 0 0, L_0x55fdbe9cea30; 1 drivers +v0x55fdbe9ca150_0 .net "opC", 0 0, L_0x55fdbe9cdc50; 1 drivers +L_0x7f3602c15018 .functor BUFT 1, C4<10>, C4<0>, C4<0>, C4<0>; +v0x55fdbe9ca210_0 .net "opCode", 1 0, L_0x7f3602c15018; 1 drivers +v0x55fdbe9ca2f0_0 .net "overflowDetect", 0 0, L_0x55fdbe9ceb90; alias, 1 drivers +v0x55fdbe9ca3b0_0 .net "sign1", 0 0, L_0x55fdbe9cde20; 1 drivers +v0x55fdbe9ca470_0 .net "sign2", 0 0, L_0x55fdbe9ce370; 1 drivers +v0x55fdbe9ca530_0 .net "sign3", 0 0, L_0x55fdbe9cdfd0; 1 drivers +v0x55fdbe9ca5f0_0 .net "subOverflow", 0 0, L_0x55fdbe9ce770; 1 drivers +L_0x55fdbe9cdce0 .part L_0x7f3602c15018, 0, 1; +L_0x55fdbe9cdd80 .part L_0x7f3602c15018, 1, 1; +L_0x55fdbe9cde90 .part v0x55fdbe9cae90_0, 3, 1; +L_0x55fdbe9cdf30 .part v0x55fdbe9cafc0_0, 3, 1; +L_0x55fdbe9ce040 .part v0x55fdbe9cae90_0, 3, 1; +L_0x55fdbe9ce130 .part v0x55fdbe9cafc0_0, 3, 1; +L_0x55fdbe9ce3e0 .part L_0x55fdbe9cdb40, 3, 1; +L_0x55fdbe9ce4d0 .part v0x55fdbe9cae90_0, 3, 1; +L_0x55fdbe9ce680 .part L_0x7f3602c15018, 0, 1; +L_0x55fdbe9ce870 .part L_0x7f3602c15018, 1, 1; + .scope S_0x55fdbe99f210; +T_0 ; + %vpi_call 2 20 "$dumpfile", "subtraction.vcd" {0 0 0}; + %vpi_call 2 21 "$dumpvars" {0 0 0}; + %pushi/vec4 0, 0, 4; + %store/vec4 v0x55fdbe9cae90_0, 0, 4; + %pushi/vec4 0, 0, 4; + %store/vec4 v0x55fdbe9cafc0_0, 0, 4; + %pushi/vec4 0, 0, 1; + %store/vec4 v0x55fdbe9cb0d0_0, 0, 1; + %delay 10, 0; + %pushi/vec4 6, 0, 4; + %store/vec4 v0x55fdbe9cae90_0, 0, 4; + %pushi/vec4 2, 0, 4; + %store/vec4 v0x55fdbe9cafc0_0, 0, 4; + %pushi/vec4 0, 0, 1; + %store/vec4 v0x55fdbe9cb0d0_0, 0, 1; + %delay 10, 0; + %pushi/vec4 12, 0, 4; + %store/vec4 v0x55fdbe9cae90_0, 0, 4; + %pushi/vec4 4, 0, 4; + %store/vec4 v0x55fdbe9cafc0_0, 0, 4; + %pushi/vec4 0, 0, 1; + %store/vec4 v0x55fdbe9cb0d0_0, 0, 1; + %delay 10, 0; + %pushi/vec4 8, 0, 4; + %store/vec4 v0x55fdbe9cae90_0, 0, 4; + %pushi/vec4 8, 0, 4; + %store/vec4 v0x55fdbe9cafc0_0, 0, 4; + %pushi/vec4 0, 0, 1; + %store/vec4 v0x55fdbe9cb0d0_0, 0, 1; + %delay 10, 0; + %pushi/vec4 15, 0, 4; + %store/vec4 v0x55fdbe9cae90_0, 0, 4; + %pushi/vec4 1, 0, 4; + %store/vec4 v0x55fdbe9cafc0_0, 0, 4; + %pushi/vec4 1, 0, 1; + %store/vec4 v0x55fdbe9cb0d0_0, 0, 1; + %delay 10, 0; + %vpi_call 2 34 "$finish" {0 0 0}; + %end; + .thread T_0; + .scope S_0x55fdbe99f210; +T_1 ; + %vpi_call 2 39 "$monitor", "At time %t: A = %b, B = %b, Y = %b, BorrowOut = %b, overflow = %b", $time, v0x55fdbe9cae90_0, v0x55fdbe9cafc0_0, v0x55fdbe9cb210_0, v0x55fdbe9cb170_0, v0x55fdbe9cb350_0 {0 0 0}; + %end; + .thread T_1; +# The file index is used to find the file name in the following table. +:file_names 7; + "N/A"; + ""; + "subtractionTB.v"; + "subtraction.v"; + "fullsubtraction.v"; + "halfsubtraction.v"; + "overflowDetect.v"; diff --git a/project0.2/subtraction.v b/project0.2/subtraction.v new file mode 100644 index 0000000..3c1858a --- /dev/null +++ b/project0.2/subtraction.v @@ -0,0 +1,27 @@ +module subtraction ( + input [3:0] A, B, + input BorrowIN, + output [3:0] Y, + output BorrowOut, + output overflow +); + +wire [3:0] tempB; + +// Full Subtraction logic for each bit (borrow-in for each subsequent bit) +fullsubtraction f0 (.A(A[0]), .B(B[0]), .BorrowIN(BorrowIN), .Difference(Y[0]), .BorrowOut(tempB[0])); +fullsubtraction f1 (.A(A[1]), .B(B[1]), .BorrowIN(tempB[0]), .Difference(Y[1]), .BorrowOut(tempB[1])); +fullsubtraction f2 (.A(A[2]), .B(B[2]), .BorrowIN(tempB[1]), .Difference(Y[2]), .BorrowOut(tempB[2])); +fullsubtraction f3 (.A(A[3]), .B(B[3]), .BorrowIN(tempB[2]), .Difference(Y[3]), .BorrowOut(BorrowOut)); + +// Overflow detection logic as provided +overflowDetect od1 ( + .opCode(2'b10), + .A(A), + .B(B), + .Y(Y), + .CarryOUT(BorrowOut), + .overflowDetect(overflow) +); + +endmodule diff --git a/project0.2/subtraction.vcd b/project0.2/subtraction.vcd new file mode 100644 index 0000000..66b15b3 --- /dev/null +++ b/project0.2/subtraction.vcd @@ -0,0 +1,312 @@ +$date + Fri Dec 20 21:26:28 2024 +$end +$version + Icarus Verilog +$end +$timescale + 1s +$end +$scope module subtractionTB $end +$var wire 1 ! overflow $end +$var wire 4 " Y [3:0] $end +$var wire 1 # BorrowOut $end +$var reg 4 $ A [3:0] $end +$var reg 4 % B [3:0] $end +$var reg 1 & BorrowIN $end +$scope module uut $end +$var wire 4 ' A [3:0] $end +$var wire 4 ( B [3:0] $end +$var wire 1 & BorrowIN $end +$var wire 4 ) tempB [3:0] $end +$var wire 1 ! overflow $end +$var wire 4 * Y [3:0] $end +$var wire 1 # BorrowOut $end +$scope module f0 $end +$var wire 1 + A $end +$var wire 1 , B $end +$var wire 1 & BorrowIN $end +$var wire 1 - BorrowOut $end +$var wire 1 . tempD $end +$var wire 1 / tempB2 $end +$var wire 1 0 tempB1 $end +$var wire 1 1 Difference $end +$scope module hf1 $end +$var wire 1 + A $end +$var wire 1 , B $end +$var wire 1 0 Borrow $end +$var wire 1 . Difference $end +$var wire 1 2 notA $end +$upscope $end +$scope module hf2 $end +$var wire 1 . A $end +$var wire 1 & B $end +$var wire 1 / Borrow $end +$var wire 1 1 Difference $end +$var wire 1 3 notA $end +$upscope $end +$upscope $end +$scope module f1 $end +$var wire 1 4 A $end +$var wire 1 5 B $end +$var wire 1 6 BorrowIN $end +$var wire 1 7 BorrowOut $end +$var wire 1 8 tempD $end +$var wire 1 9 tempB2 $end +$var wire 1 : tempB1 $end +$var wire 1 ; Difference $end +$scope module hf1 $end +$var wire 1 4 A $end +$var wire 1 5 B $end +$var wire 1 : Borrow $end +$var wire 1 8 Difference $end +$var wire 1 < notA $end +$upscope $end +$scope module hf2 $end +$var wire 1 8 A $end +$var wire 1 6 B $end +$var wire 1 9 Borrow $end +$var wire 1 ; Difference $end +$var wire 1 = notA $end +$upscope $end +$upscope $end +$scope module f2 $end +$var wire 1 > A $end +$var wire 1 ? B $end +$var wire 1 @ BorrowIN $end +$var wire 1 A BorrowOut $end +$var wire 1 B tempD $end +$var wire 1 C tempB2 $end +$var wire 1 D tempB1 $end +$var wire 1 E Difference $end +$scope module hf1 $end +$var wire 1 > A $end +$var wire 1 ? B $end +$var wire 1 D Borrow $end +$var wire 1 B Difference $end +$var wire 1 F notA $end +$upscope $end +$scope module hf2 $end +$var wire 1 B A $end +$var wire 1 @ B $end +$var wire 1 C Borrow $end +$var wire 1 E Difference $end +$var wire 1 G notA $end +$upscope $end +$upscope $end +$scope module f3 $end +$var wire 1 H A $end +$var wire 1 I B $end +$var wire 1 J BorrowIN $end +$var wire 1 # BorrowOut $end +$var wire 1 K tempD $end +$var wire 1 L tempB2 $end +$var wire 1 M tempB1 $end +$var wire 1 N Difference $end +$scope module hf1 $end +$var wire 1 H A $end +$var wire 1 I B $end +$var wire 1 M Borrow $end +$var wire 1 K Difference $end +$var wire 1 O notA $end +$upscope $end +$scope module hf2 $end +$var wire 1 K A $end +$var wire 1 J B $end +$var wire 1 L Borrow $end +$var wire 1 N Difference $end +$var wire 1 P notA $end +$upscope $end +$upscope $end +$scope module od1 $end +$var wire 4 Q A [3:0] $end +$var wire 4 R B [3:0] $end +$var wire 1 # CarryOUT $end +$var wire 4 S Y [3:0] $end +$var wire 1 T addOverflow $end +$var wire 1 U detect1 $end +$var wire 1 V detect2 $end +$var wire 1 W opC $end +$var wire 2 X opCode [1:0] $end +$var wire 1 ! overflowDetect $end +$var wire 1 Y sign1 $end +$var wire 1 Z sign2 $end +$var wire 1 [ sign3 $end +$var wire 1 \ subOverflow $end +$upscope $end +$upscope $end +$upscope $end +$enddefinitions $end +#0 +$dumpvars +0\ +0[ +0Z +1Y +b10 X +1W +0V +0U +0T +b0 S +b0 R +b0 Q +1P +1O +0N +0M +0L +0K +0J +0I +0H +1G +1F +0E +0D +0C +0B +0A +0@ +0? +0> +1= +1< +0; +0: +09 +08 +07 +06 +05 +04 +13 +12 +01 +00 +0/ +0. +0- +0, +0+ +b0 * +bz000 ) +b0 ( +b0 ' +0& +b0 % +b0 $ +0# +b0 " +0! +$end +#10 +b100 " +b100 * +b100 S +1E +0G +0< +1B +0F +15 +14 +1> +b10 % +b10 ( +b10 R +b110 $ +b110 ' +b110 Q +#20 +0! +0V +1U +0E +1G +b1000 " +b1000 * +b1000 S +1N +0P +1\ +0B +1< +1K +0O +0Y +1[ +0Z +05 +1? +04 +1H +b100 % +b100 ( +b100 R +b1100 $ +b1100 ' +b1100 Q +#30 +1Z +0U +b0 " +b0 * +b0 S +0N +1P +0\ +0K +1Y +0[ +1F +0? +1I +0> +b1000 % +b1000 ( +b1000 R +b1000 $ +b1000 ' +b1000 Q +#40 +0! +0Z +0V +1U +16 +1N +0P +1\ +0; +0= +1E +0G +bz001 ) +1- +1K +0Y +1[ +02 +18 +0< +1B +0F +b1101 " +b1101 * +b1101 S +11 +1/ +1, +0I +1+ +14 +1> +1& +b1 % +b1 ( +b1 R +b1111 $ +b1111 ' +b1111 Q +#50 diff --git a/project0.2/subtractionTB.v b/project0.2/subtractionTB.v new file mode 100644 index 0000000..b04e6cd --- /dev/null +++ b/project0.2/subtractionTB.v @@ -0,0 +1,42 @@ +module subtractionTB; + +reg [3:0] A, B; +reg BorrowIN; +wire [3:0] Y; +wire BorrowOut; +wire overflow; + +// Instantiate the subtraction module +subtraction uut ( + .A(A), + .B(B), + .BorrowIN(BorrowIN), + .Y(Y), + .BorrowOut(BorrowOut), + .overflow(overflow) +); + +initial begin + $dumpfile("subtraction.vcd"); + $dumpvars; + // Initialize inputs + A = 4'b0000; // Set A to 0 + B = 4'b0000; // Set B to 0 + BorrowIN = 0; // No borrow input + + // Apply test cases + #10 A = 4'b0110; B = 4'b0010; BorrowIN = 0; // A = 6, B = 2 + #10 A = 4'b1100; B = 4'b0100; BorrowIN = 0; // A = -4, B = 4 + #10 A = 4'b1000; B = 4'b1000; BorrowIN = 0; // A = -8, B = -8 + #10 A = 4'b1111; B = 4'b0001; BorrowIN = 1; // A = -1, B = 1, with borrow input + + // Wait for the results + #10 $finish; +end + +initial begin + // Monitor the values of Y and overflow + $monitor("At time %t: A = %b, B = %b, Y = %b, BorrowOut = %b, overflow = %b", $time, A, B, Y, BorrowOut, overflow); +end + +endmodule diff --git a/tests/a.out b/tests/a.out deleted file mode 100644 index 8ebbc85..0000000 --- a/tests/a.out +++ /dev/null @@ -1,60 +0,0 @@ -#! /c/Source/iverilog-install/bin/vvp -:ivl_version "12.0 (devel)" "(s20150603-1539-g2693dd32b)"; -:ivl_delay_selection "TYPICAL"; -:vpi_time_precision + 0; -:vpi_module "C:\iverilog\lib\ivl\system.vpi"; -:vpi_module "C:\iverilog\lib\ivl\vhdl_sys.vpi"; -:vpi_module "C:\iverilog\lib\ivl\vhdl_textio.vpi"; -:vpi_module "C:\iverilog\lib\ivl\v2005_math.vpi"; -:vpi_module "C:\iverilog\lib\ivl\va_math.vpi"; -S_0000014670375350 .scope module, "hello" "hello" 2 1; - .timescale 0 0; - .port_info 0 /INPUT 1 "A"; - .port_info 1 /INPUT 1 "B"; - .port_info 2 /OUTPUT 1 "C"; - .port_info 3 /OUTPUT 1 "D"; -o0000014670376fd8 .functor BUFZ 1, C4; HiZ drive -o0000014670377008 .functor BUFZ 1, C4; HiZ drive -L_0000014670326ea0 .functor AND 1, o0000014670376fd8, o0000014670377008, C4<1>, C4<1>; -L_0000014670327320 .functor XOR 1, o0000014670376fd8, o0000014670377008, C4<0>, C4<0>; -v00000146703270e0_0 .net "A", 0 0, o0000014670376fd8; 0 drivers -v0000014670375670_0 .net "B", 0 0, o0000014670377008; 0 drivers -v0000014670375710_0 .net "C", 0 0, L_0000014670327320; 1 drivers -v000001467032ee60_0 .net "D", 0 0, L_0000014670326ea0; 1 drivers -S_00000146703754e0 .scope module, "hello_tb" "hello_tb" 3 1; - .timescale 0 0; -v000001467032ef00_0 .var "A", 0 0; -v000001467032b870_0 .var "B", 0 0; - .scope S_00000146703754e0; -T_0 ; - %vpi_call 3 8 "$dumpfile", "dmp.vcd" {0 0 0}; - %vpi_call 3 9 "$dumpvars" {0 0 0}; - %pushi/vec4 0, 0, 1; - %store/vec4 v000001467032ef00_0, 0, 1; - %pushi/vec4 0, 0, 1; - %store/vec4 v000001467032b870_0, 0, 1; - %delay 10, 0; - %pushi/vec4 0, 0, 1; - %store/vec4 v000001467032ef00_0, 0, 1; - %pushi/vec4 1, 0, 1; - %store/vec4 v000001467032b870_0, 0, 1; - %delay 10, 0; - %pushi/vec4 1, 0, 1; - %store/vec4 v000001467032ef00_0, 0, 1; - %pushi/vec4 0, 0, 1; - %store/vec4 v000001467032b870_0, 0, 1; - %delay 10, 0; - %pushi/vec4 1, 0, 1; - %store/vec4 v000001467032ef00_0, 0, 1; - %pushi/vec4 1, 0, 1; - %store/vec4 v000001467032b870_0, 0, 1; - %delay 10, 0; - %vpi_call 3 14 "$finish" {0 0 0}; - %end; - .thread T_0; -# The file index is used to find the file name in the following table. -:file_names 4; - "N/A"; - ""; - "hello.v"; - "hello_tb.v"; diff --git a/tests/dmp.vcd b/tests/dmp.vcd deleted file mode 100644 index aed2af3..0000000 --- a/tests/dmp.vcd +++ /dev/null @@ -1,40 +0,0 @@ -$date - Sat Apr 06 17:40:37 2024 -$end -$version - Icarus Verilog -$end -$timescale - 1s -$end -$scope module hello $end -$var wire 1 ! A $end -$var wire 1 " B $end -$var wire 1 # C $end -$var wire 1 $ D $end -$upscope $end -$scope module hello_tb $end -$var reg 1 % A $end -$var reg 1 & B $end -$upscope $end -$enddefinitions $end -$comment Show the parameter values. $end -$dumpall -$end -#0 -$dumpvars -0& -0% -x$ -x# -z" -z! -$end -#10 -1& -#20 -0& -1% -#30 -1& -#40 diff --git a/tests/hello.v b/tests/hello.v deleted file mode 100644 index 17f3450..0000000 --- a/tests/hello.v +++ /dev/null @@ -1,9 +0,0 @@ -module hello( - input wire A, B, - output wire C, D -); - -and(D, A, B); -xor(C, A, B); - -endmodule diff --git a/tests/hello_tb.v b/tests/hello_tb.v deleted file mode 100644 index 0a5586f..0000000 --- a/tests/hello_tb.v +++ /dev/null @@ -1,17 +0,0 @@ -module hello_tb(); - -reg A; -reg B; -wire C, D; - -initial begin - $dumpfile("dmp.vcd"); - $dumpvars; - A = 0; B = 0; #10; - A = 0; B = 1; #10; - A = 1; B = 0; #10; - A = 1; B = 1; #10; - $finish; -end - -endmodule diff --git a/tests/obj_dir/Vtest2.cpp b/tests/obj_dir/Vtest2.cpp deleted file mode 100644 index 79397e7..0000000 --- a/tests/obj_dir/Vtest2.cpp +++ /dev/null @@ -1,92 +0,0 @@ -// Verilated -*- C++ -*- -// DESCRIPTION: Verilator output: Model implementation (design independent parts) - -#include "Vtest2.h" -#include "Vtest2__Syms.h" - -//============================================================ -// Constructors - -Vtest2::Vtest2(VerilatedContext* _vcontextp__, const char* _vcname__) - : VerilatedModel{*_vcontextp__} - , vlSymsp{new Vtest2__Syms(contextp(), _vcname__, this)} - , rootp{&(vlSymsp->TOP)} -{ - // Register model with the context - contextp()->addModel(this); -} - -Vtest2::Vtest2(const char* _vcname__) - : Vtest2(Verilated::threadContextp(), _vcname__) -{ -} - -//============================================================ -// Destructor - -Vtest2::~Vtest2() { - delete vlSymsp; -} - -//============================================================ -// Evaluation function - -#ifdef VL_DEBUG -void Vtest2___024root___eval_debug_assertions(Vtest2___024root* vlSelf); -#endif // VL_DEBUG -void Vtest2___024root___eval_static(Vtest2___024root* vlSelf); -void Vtest2___024root___eval_initial(Vtest2___024root* vlSelf); -void Vtest2___024root___eval_settle(Vtest2___024root* vlSelf); -void Vtest2___024root___eval(Vtest2___024root* vlSelf); - -void Vtest2::eval_step() { - VL_DEBUG_IF(VL_DBG_MSGF("+++++TOP Evaluate Vtest2::eval_step\n"); ); -#ifdef VL_DEBUG - // Debug assertions - Vtest2___024root___eval_debug_assertions(&(vlSymsp->TOP)); -#endif // VL_DEBUG - if (VL_UNLIKELY(!vlSymsp->__Vm_didInit)) { - vlSymsp->__Vm_didInit = true; - VL_DEBUG_IF(VL_DBG_MSGF("+ Initial\n");); - Vtest2___024root___eval_static(&(vlSymsp->TOP)); - Vtest2___024root___eval_initial(&(vlSymsp->TOP)); - Vtest2___024root___eval_settle(&(vlSymsp->TOP)); - } - // MTask 0 start - VL_DEBUG_IF(VL_DBG_MSGF("MTask0 starting\n");); - Verilated::mtaskId(0); - VL_DEBUG_IF(VL_DBG_MSGF("+ Eval\n");); - Vtest2___024root___eval(&(vlSymsp->TOP)); - // Evaluate cleanup - Verilated::endOfThreadMTask(vlSymsp->__Vm_evalMsgQp); - Verilated::endOfEval(vlSymsp->__Vm_evalMsgQp); -} - -//============================================================ -// Events and timing -bool Vtest2::eventsPending() { return !vlSymsp->TOP.__VdlySched.empty(); } - -uint64_t Vtest2::nextTimeSlot() { return vlSymsp->TOP.__VdlySched.nextTimeSlot(); } - -//============================================================ -// Utilities - -const char* Vtest2::name() const { - return vlSymsp->name(); -} - -//============================================================ -// Invoke final blocks - -void Vtest2___024root___eval_final(Vtest2___024root* vlSelf); - -VL_ATTR_COLD void Vtest2::final() { - Vtest2___024root___eval_final(&(vlSymsp->TOP)); -} - -//============================================================ -// Implementations of abstract methods from VerilatedModel - -const char* Vtest2::hierName() const { return vlSymsp->name(); } -const char* Vtest2::modelName() const { return "Vtest2"; } -unsigned Vtest2::threads() const { return 1; } diff --git a/tests/obj_dir/Vtest2.h b/tests/obj_dir/Vtest2.h deleted file mode 100644 index e1d6187..0000000 --- a/tests/obj_dir/Vtest2.h +++ /dev/null @@ -1,72 +0,0 @@ -// Verilated -*- C++ -*- -// DESCRIPTION: Verilator output: Primary model header -// -// This header should be included by all source files instantiating the design. -// The class here is then constructed to instantiate the design. -// See the Verilator manual for examples. - -#ifndef VERILATED_VTEST2_H_ -#define VERILATED_VTEST2_H_ // guard - -#include "verilated.h" - -class Vtest2__Syms; -class Vtest2___024root; - -// This class is the main interface to the Verilated model -class Vtest2 VL_NOT_FINAL : public VerilatedModel { - private: - // Symbol table holding complete model state (owned by this class) - Vtest2__Syms* const vlSymsp; - - public: - - // PORTS - // The application code writes and reads these signals to - // propagate new values into/out from the Verilated model. - - // CELLS - // Public to allow access to /* verilator public */ items. - // Otherwise the application code can consider these internals. - - // Root instance pointer to allow access to model internals, - // including inlined /* verilator public_flat_* */ items. - Vtest2___024root* const rootp; - - // CONSTRUCTORS - /// Construct the model; called by application code - /// If contextp is null, then the model will use the default global context - /// If name is "", then makes a wrapper with a - /// single model invisible with respect to DPI scope names. - explicit Vtest2(VerilatedContext* contextp, const char* name = "TOP"); - explicit Vtest2(const char* name = "TOP"); - /// Destroy the model; called (often implicitly) by application code - virtual ~Vtest2(); - private: - VL_UNCOPYABLE(Vtest2); ///< Copying not allowed - - public: - // API METHODS - /// Evaluate the model. Application must call when inputs change. - void eval() { eval_step(); } - /// Evaluate when calling multiple units/models per time step. - void eval_step(); - /// Evaluate at end of a timestep for tracing, when using eval_step(). - /// Application must call after all eval() and before time changes. - void eval_end_step() {} - /// Simulation complete, run final blocks. Application must call on completion. - void final(); - /// Are there scheduled events to handle? - bool eventsPending(); - /// Returns time at next time slot. Aborts if !eventsPending() - uint64_t nextTimeSlot(); - /// Retrieve name of this model instance (as passed to constructor). - const char* name() const; - - // Abstract methods from VerilatedModel - const char* hierName() const override final; - const char* modelName() const override final; - unsigned threads() const override final; -} VL_ATTR_ALIGNED(VL_CACHE_LINE_BYTES); - -#endif // guard diff --git a/tests/obj_dir/Vtest2.mk b/tests/obj_dir/Vtest2.mk deleted file mode 100644 index 110621a..0000000 --- a/tests/obj_dir/Vtest2.mk +++ /dev/null @@ -1,65 +0,0 @@ -# Verilated -*- Makefile -*- -# DESCRIPTION: Verilator output: Makefile for building Verilated archive or executable -# -# Execute this makefile from the object directory: -# make -f Vtest2.mk - -default: Vtest2 - -### Constants... -# Perl executable (from $PERL) -PERL = perl -# Path to Verilator kit (from $VERILATOR_ROOT) -VERILATOR_ROOT = /usr/share/verilator -# SystemC include directory with systemc.h (from $SYSTEMC_INCLUDE) -SYSTEMC_INCLUDE ?= -# SystemC library directory with libsystemc.a (from $SYSTEMC_LIBDIR) -SYSTEMC_LIBDIR ?= - -### Switches... -# C++ code coverage 0/1 (from --prof-c) -VM_PROFC = 0 -# SystemC output mode? 0/1 (from --sc) -VM_SC = 0 -# Legacy or SystemC output mode? 0/1 (from --sc) -VM_SP_OR_SC = $(VM_SC) -# Deprecated -VM_PCLI = 1 -# Deprecated: SystemC architecture to find link library path (from $SYSTEMC_ARCH) -VM_SC_TARGET_ARCH = linux - -### Vars... -# Design prefix (from --prefix) -VM_PREFIX = Vtest2 -# Module prefix (from --prefix) -VM_MODPREFIX = Vtest2 -# User CFLAGS (from -CFLAGS on Verilator command line) -VM_USER_CFLAGS = \ - -DVL_TIME_CONTEXT \ - -# User LDLIBS (from -LDFLAGS on Verilator command line) -VM_USER_LDLIBS = \ - -# User .cpp files (from .cpp's on Verilator command line) -VM_USER_CLASSES = \ - -# User .cpp directories (from .cpp's on Verilator command line) -VM_USER_DIR = \ - - -### Default rules... -# Include list of all generated classes -include Vtest2_classes.mk -# Include global rules -include $(VERILATOR_ROOT)/include/verilated.mk - -### Executable rules... (from --exe) -VPATH += $(VM_USER_DIR) - - -### Link rules... (from --exe) -Vtest2: $(VK_USER_OBJS) $(VK_GLOBAL_OBJS) $(VM_PREFIX)__ALL.a $(VM_HIER_LIBS) - $(LINK) $(LDFLAGS) $^ $(LOADLIBES) $(LDLIBS) $(LIBS) $(SC_LIBS) -o $@ - - -# Verilated -*- Makefile -*- diff --git a/tests/obj_dir/Vtest2__Syms.cpp b/tests/obj_dir/Vtest2__Syms.cpp deleted file mode 100644 index bbaee8b..0000000 --- a/tests/obj_dir/Vtest2__Syms.cpp +++ /dev/null @@ -1,26 +0,0 @@ -// Verilated -*- C++ -*- -// DESCRIPTION: Verilator output: Symbol table implementation internals - -#include "Vtest2__Syms.h" -#include "Vtest2.h" -#include "Vtest2___024root.h" - -// FUNCTIONS -Vtest2__Syms::~Vtest2__Syms() -{ -} - -Vtest2__Syms::Vtest2__Syms(VerilatedContext* contextp, const char* namep, Vtest2* modelp) - : VerilatedSyms{contextp} - // Setup internal state of the Syms class - , __Vm_modelp{modelp} - // Setup module instances - , TOP{this, namep} -{ - // Configure time unit / time precision - _vm_contextp__->timeunit(-12); - _vm_contextp__->timeprecision(-12); - // Setup each module's pointers to their submodules - // Setup each module's pointer back to symbol table (for public functions) - TOP.__Vconfigure(true); -} diff --git a/tests/obj_dir/Vtest2__Syms.h b/tests/obj_dir/Vtest2__Syms.h deleted file mode 100644 index 87e7bc4..0000000 --- a/tests/obj_dir/Vtest2__Syms.h +++ /dev/null @@ -1,37 +0,0 @@ -// Verilated -*- C++ -*- -// DESCRIPTION: Verilator output: Symbol table internal header -// -// Internal details; most calling programs do not need this header, -// unless using verilator public meta comments. - -#ifndef VERILATED_VTEST2__SYMS_H_ -#define VERILATED_VTEST2__SYMS_H_ // guard - -#include "verilated.h" - -// INCLUDE MODEL CLASS - -#include "Vtest2.h" - -// INCLUDE MODULE CLASSES -#include "Vtest2___024root.h" - -// SYMS CLASS (contains all model state) -class Vtest2__Syms final : public VerilatedSyms { - public: - // INTERNAL STATE - Vtest2* const __Vm_modelp; - bool __Vm_didInit = false; - - // MODULE INSTANCE STATE - Vtest2___024root TOP; - - // CONSTRUCTORS - Vtest2__Syms(VerilatedContext* contextp, const char* namep, Vtest2* modelp); - ~Vtest2__Syms(); - - // METHODS - const char* name() { return TOP.name(); } -} VL_ATTR_ALIGNED(VL_CACHE_LINE_BYTES); - -#endif // guard diff --git a/tests/obj_dir/Vtest2___024root.h b/tests/obj_dir/Vtest2___024root.h deleted file mode 100644 index 6107749..0000000 --- a/tests/obj_dir/Vtest2___024root.h +++ /dev/null @@ -1,36 +0,0 @@ -// Verilated -*- C++ -*- -// DESCRIPTION: Verilator output: Design internal header -// See Vtest2.h for the primary calling header - -#ifndef VERILATED_VTEST2___024ROOT_H_ -#define VERILATED_VTEST2___024ROOT_H_ // guard - -#include "verilated.h" -#include "verilated_timing.h" - -class Vtest2__Syms; - -class Vtest2___024root final : public VerilatedModule { - public: - - // DESIGN SPECIFIC STATE - CData/*0:0*/ __VactContinue; - IData/*31:0*/ __VactIterCount; - VlDelayScheduler __VdlySched; - VlTriggerVec<1> __VactTriggered; - VlTriggerVec<1> __VnbaTriggered; - - // INTERNAL VARIABLES - Vtest2__Syms* const vlSymsp; - - // CONSTRUCTORS - Vtest2___024root(Vtest2__Syms* symsp, const char* v__name); - ~Vtest2___024root(); - VL_UNCOPYABLE(Vtest2___024root); - - // INTERNAL METHODS - void __Vconfigure(bool first); -} VL_ATTR_ALIGNED(VL_CACHE_LINE_BYTES); - - -#endif // guard diff --git a/tests/obj_dir/Vtest2___024root__DepSet_h3c5fcca7__0.cpp b/tests/obj_dir/Vtest2___024root__DepSet_h3c5fcca7__0.cpp deleted file mode 100644 index 69704df..0000000 --- a/tests/obj_dir/Vtest2___024root__DepSet_h3c5fcca7__0.cpp +++ /dev/null @@ -1,105 +0,0 @@ -// Verilated -*- C++ -*- -// DESCRIPTION: Verilator output: Design implementation internals -// See Vtest2.h for the primary calling header - -#include "verilated.h" - -#include "Vtest2___024root.h" - -VlCoroutine Vtest2___024root___eval_initial__TOP__0(Vtest2___024root* vlSelf); - -void Vtest2___024root___eval_initial(Vtest2___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - Vtest2__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ Vtest2___024root___eval_initial\n"); ); - // Body - Vtest2___024root___eval_initial__TOP__0(vlSelf); -} - -void Vtest2___024root___eval_act(Vtest2___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - Vtest2__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ Vtest2___024root___eval_act\n"); ); -} - -void Vtest2___024root___eval_nba(Vtest2___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - Vtest2__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ Vtest2___024root___eval_nba\n"); ); -} - -void Vtest2___024root___eval_triggers__act(Vtest2___024root* vlSelf); -#ifdef VL_DEBUG -VL_ATTR_COLD void Vtest2___024root___dump_triggers__act(Vtest2___024root* vlSelf); -#endif // VL_DEBUG -void Vtest2___024root___timing_resume(Vtest2___024root* vlSelf); -#ifdef VL_DEBUG -VL_ATTR_COLD void Vtest2___024root___dump_triggers__nba(Vtest2___024root* vlSelf); -#endif // VL_DEBUG - -void Vtest2___024root___eval(Vtest2___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - Vtest2__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ Vtest2___024root___eval\n"); ); - // Init - VlTriggerVec<1> __VpreTriggered; - IData/*31:0*/ __VnbaIterCount; - CData/*0:0*/ __VnbaContinue; - // Body - __VnbaIterCount = 0U; - __VnbaContinue = 1U; - while (__VnbaContinue) { - __VnbaContinue = 0U; - vlSelf->__VnbaTriggered.clear(); - vlSelf->__VactIterCount = 0U; - vlSelf->__VactContinue = 1U; - while (vlSelf->__VactContinue) { - vlSelf->__VactContinue = 0U; - Vtest2___024root___eval_triggers__act(vlSelf); - if (vlSelf->__VactTriggered.any()) { - vlSelf->__VactContinue = 1U; - if (VL_UNLIKELY((0x64U < vlSelf->__VactIterCount))) { -#ifdef VL_DEBUG - Vtest2___024root___dump_triggers__act(vlSelf); -#endif - VL_FATAL_MT("test2Tb.v", 1, "", "Active region did not converge."); - } - vlSelf->__VactIterCount = ((IData)(1U) - + vlSelf->__VactIterCount); - __VpreTriggered.andNot(vlSelf->__VactTriggered, vlSelf->__VnbaTriggered); - vlSelf->__VnbaTriggered.set(vlSelf->__VactTriggered); - Vtest2___024root___timing_resume(vlSelf); - Vtest2___024root___eval_act(vlSelf); - } - } - if (vlSelf->__VnbaTriggered.any()) { - __VnbaContinue = 1U; - if (VL_UNLIKELY((0x64U < __VnbaIterCount))) { -#ifdef VL_DEBUG - Vtest2___024root___dump_triggers__nba(vlSelf); -#endif - VL_FATAL_MT("test2Tb.v", 1, "", "NBA region did not converge."); - } - __VnbaIterCount = ((IData)(1U) + __VnbaIterCount); - Vtest2___024root___eval_nba(vlSelf); - } - } -} - -void Vtest2___024root___timing_resume(Vtest2___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - Vtest2__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ Vtest2___024root___timing_resume\n"); ); - // Body - if (vlSelf->__VactTriggered.at(0U)) { - vlSelf->__VdlySched.resume(); - } -} - -#ifdef VL_DEBUG -void Vtest2___024root___eval_debug_assertions(Vtest2___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - Vtest2__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ Vtest2___024root___eval_debug_assertions\n"); ); -} -#endif // VL_DEBUG diff --git a/tests/obj_dir/Vtest2___024root__DepSet_h3c5fcca7__0__Slow.cpp b/tests/obj_dir/Vtest2___024root__DepSet_h3c5fcca7__0__Slow.cpp deleted file mode 100644 index f9026e2..0000000 --- a/tests/obj_dir/Vtest2___024root__DepSet_h3c5fcca7__0__Slow.cpp +++ /dev/null @@ -1,62 +0,0 @@ -// Verilated -*- C++ -*- -// DESCRIPTION: Verilator output: Design implementation internals -// See Vtest2.h for the primary calling header - -#include "verilated.h" - -#include "Vtest2___024root.h" - -VL_ATTR_COLD void Vtest2___024root___eval_static(Vtest2___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - Vtest2__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ Vtest2___024root___eval_static\n"); ); -} - -VL_ATTR_COLD void Vtest2___024root___eval_final(Vtest2___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - Vtest2__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ Vtest2___024root___eval_final\n"); ); -} - -VL_ATTR_COLD void Vtest2___024root___eval_settle(Vtest2___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - Vtest2__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ Vtest2___024root___eval_settle\n"); ); -} - -#ifdef VL_DEBUG -VL_ATTR_COLD void Vtest2___024root___dump_triggers__act(Vtest2___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - Vtest2__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ Vtest2___024root___dump_triggers__act\n"); ); - // Body - if ((1U & (~ (IData)(vlSelf->__VactTriggered.any())))) { - VL_DBG_MSGF(" No triggers active\n"); - } - if (vlSelf->__VactTriggered.at(0U)) { - VL_DBG_MSGF(" 'act' region trigger index 0 is active: @([true] __VdlySched.awaitingCurrentTime())\n"); - } -} -#endif // VL_DEBUG - -#ifdef VL_DEBUG -VL_ATTR_COLD void Vtest2___024root___dump_triggers__nba(Vtest2___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - Vtest2__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ Vtest2___024root___dump_triggers__nba\n"); ); - // Body - if ((1U & (~ (IData)(vlSelf->__VnbaTriggered.any())))) { - VL_DBG_MSGF(" No triggers active\n"); - } - if (vlSelf->__VnbaTriggered.at(0U)) { - VL_DBG_MSGF(" 'nba' region trigger index 0 is active: @([true] __VdlySched.awaitingCurrentTime())\n"); - } -} -#endif // VL_DEBUG - -VL_ATTR_COLD void Vtest2___024root___ctor_var_reset(Vtest2___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - Vtest2__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ Vtest2___024root___ctor_var_reset\n"); ); - // Body - } diff --git a/tests/obj_dir/Vtest2___024root__DepSet_hef21559d__0.cpp b/tests/obj_dir/Vtest2___024root__DepSet_hef21559d__0.cpp deleted file mode 100644 index 42a01d9..0000000 --- a/tests/obj_dir/Vtest2___024root__DepSet_hef21559d__0.cpp +++ /dev/null @@ -1,43 +0,0 @@ -// Verilated -*- C++ -*- -// DESCRIPTION: Verilator output: Design implementation internals -// See Vtest2.h for the primary calling header - -#include "verilated.h" - -#include "Vtest2__Syms.h" -#include "Vtest2___024root.h" - -VL_INLINE_OPT VlCoroutine Vtest2___024root___eval_initial__TOP__0(Vtest2___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - Vtest2__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ Vtest2___024root___eval_initial__TOP__0\n"); ); - // Init - VlWide<3>/*95:0*/ __Vtemp_h8200ba1e__0; - // Body - __Vtemp_h8200ba1e__0[0U] = 0x2e766364U; - __Vtemp_h8200ba1e__0[1U] = 0x73743276U; - __Vtemp_h8200ba1e__0[2U] = 0x7465U; - vlSymsp->_vm_contextp__->dumpfile(VL_CVT_PACK_STR_NW(3, __Vtemp_h8200ba1e__0)); - VL_PRINTF_MT("-Info: test2Tb.v:10: $dumpvar ignored, as Verilated without --trace\n"); - VL_WRITEF("Success!\n"); - co_await vlSelf->__VdlySched.delay(0xaU, "test2Tb.v", - 12); - VL_FINISH_MT("test2Tb.v", 13, ""); -} - -#ifdef VL_DEBUG -VL_ATTR_COLD void Vtest2___024root___dump_triggers__act(Vtest2___024root* vlSelf); -#endif // VL_DEBUG - -void Vtest2___024root___eval_triggers__act(Vtest2___024root* vlSelf) { - if (false && vlSelf) {} // Prevent unused - Vtest2__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; - VL_DEBUG_IF(VL_DBG_MSGF("+ Vtest2___024root___eval_triggers__act\n"); ); - // Body - vlSelf->__VactTriggered.at(0U) = vlSelf->__VdlySched.awaitingCurrentTime(); -#ifdef VL_DEBUG - if (VL_UNLIKELY(vlSymsp->_vm_contextp__->debug())) { - Vtest2___024root___dump_triggers__act(vlSelf); - } -#endif -} diff --git a/tests/obj_dir/Vtest2___024root__Slow.cpp b/tests/obj_dir/Vtest2___024root__Slow.cpp deleted file mode 100644 index 2f0c337..0000000 --- a/tests/obj_dir/Vtest2___024root__Slow.cpp +++ /dev/null @@ -1,26 +0,0 @@ -// Verilated -*- C++ -*- -// DESCRIPTION: Verilator output: Design implementation internals -// See Vtest2.h for the primary calling header - -#include "verilated.h" - -#include "Vtest2__Syms.h" -#include "Vtest2___024root.h" - -void Vtest2___024root___ctor_var_reset(Vtest2___024root* vlSelf); - -Vtest2___024root::Vtest2___024root(Vtest2__Syms* symsp, const char* v__name) - : VerilatedModule{v__name} - , __VdlySched{*symsp->_vm_contextp__} - , vlSymsp{symsp} - { - // Reset structure values - Vtest2___024root___ctor_var_reset(this); -} - -void Vtest2___024root::__Vconfigure(bool first) { - if (false && first) {} // Prevent unused -} - -Vtest2___024root::~Vtest2___024root() { -} diff --git a/tests/obj_dir/Vtest2__main.cpp b/tests/obj_dir/Vtest2__main.cpp deleted file mode 100644 index 393f470..0000000 --- a/tests/obj_dir/Vtest2__main.cpp +++ /dev/null @@ -1,34 +0,0 @@ -// Verilated -*- C++ -*- -// DESCRIPTION: main() calling loop, created with Verilator --main - -#include "verilated.h" -#include "Vtest2.h" - -//====================== - -int main(int argc, char** argv, char**) { - // Setup context, defaults, and parse command line - Verilated::debug(0); - const std::unique_ptr contextp{new VerilatedContext}; - contextp->commandArgs(argc, argv); - - // Construct the Verilated model, from Vtop.h generated from Verilating - const std::unique_ptr topp{new Vtest2{contextp.get()}}; - - // Simulate until $finish - while (!contextp->gotFinish()) { - // Evaluate model - topp->eval(); - // Advance time - if (!topp->eventsPending()) break; - contextp->time(topp->nextTimeSlot()); - } - - if (!contextp->gotFinish()) { - VL_DEBUG_IF(VL_PRINTF("+ Exiting without $finish; no events left\n");); - } - - // Final model cleanup - topp->final(); - return 0; -} diff --git a/tests/obj_dir/Vtest2__ver.d b/tests/obj_dir/Vtest2__ver.d deleted file mode 100644 index 39f87e5..0000000 --- a/tests/obj_dir/Vtest2__ver.d +++ /dev/null @@ -1 +0,0 @@ -obj_dir/Vtest2.cpp obj_dir/Vtest2.h obj_dir/Vtest2.mk obj_dir/Vtest2__Syms.cpp obj_dir/Vtest2__Syms.h obj_dir/Vtest2___024root.h obj_dir/Vtest2___024root__DepSet_h3c5fcca7__0.cpp obj_dir/Vtest2___024root__DepSet_h3c5fcca7__0__Slow.cpp obj_dir/Vtest2___024root__DepSet_hef21559d__0.cpp obj_dir/Vtest2___024root__Slow.cpp obj_dir/Vtest2__main.cpp obj_dir/Vtest2__ver.d obj_dir/Vtest2_classes.mk : /usr/bin/verilator_bin /usr/bin/verilator_bin test2.v test2Tb.v diff --git a/tests/obj_dir/Vtest2__verFiles.dat b/tests/obj_dir/Vtest2__verFiles.dat deleted file mode 100644 index 9936bf5..0000000 --- a/tests/obj_dir/Vtest2__verFiles.dat +++ /dev/null @@ -1,19 +0,0 @@ -# DESCRIPTION: Verilator output: Timestamp data for --skip-identical. Delete at will. -C "--binary test2.v test2Tb.v" -S 12244816 28045 1719496600 881980186 1680199511 0 "/usr/bin/verilator_bin" -T 2951 45746 1720543752 100522297 1720543752 100522297 "obj_dir/Vtest2.cpp" -T 2664 45745 1720543752 100522297 1720543752 100522297 "obj_dir/Vtest2.h" -T 1740 45754 1720543752 100522297 1720543752 100522297 "obj_dir/Vtest2.mk" -T 754 45743 1720543752 100522297 1720543752 100522297 "obj_dir/Vtest2__Syms.cpp" -T 911 45744 1720543752 100522297 1720543752 100522297 "obj_dir/Vtest2__Syms.h" -T 890 45747 1720543752 100522297 1720543752 100522297 "obj_dir/Vtest2___024root.h" -T 4152 45751 1720543752 100522297 1720543752 100522297 "obj_dir/Vtest2___024root__DepSet_h3c5fcca7__0.cpp" -T 2575 45749 1720543752 100522297 1720543752 100522297 "obj_dir/Vtest2___024root__DepSet_h3c5fcca7__0__Slow.cpp" -T 1695 45750 1720543752 100522297 1720543752 100522297 "obj_dir/Vtest2___024root__DepSet_hef21559d__0.cpp" -T 680 45748 1720543752 100522297 1720543752 100522297 "obj_dir/Vtest2___024root__Slow.cpp" -T 964 45752 1720543752 100522297 1720543752 100522297 "obj_dir/Vtest2__main.cpp" -T 461 45755 1720543752 100522297 1720543752 100522297 "obj_dir/Vtest2__ver.d" -T 0 0 1720543752 100522297 1720543752 100522297 "obj_dir/Vtest2__verFiles.dat" -T 1626 45753 1720543752 100522297 1720543752 100522297 "obj_dir/Vtest2_classes.mk" -S 99 45716 1720540105 686454811 1720540105 686454811 "test2.v" -S 203 45721 1720543725 320527164 1720543725 320527164 "test2Tb.v" diff --git a/tests/obj_dir/Vtest2_classes.mk b/tests/obj_dir/Vtest2_classes.mk deleted file mode 100644 index 8464c73..0000000 --- a/tests/obj_dir/Vtest2_classes.mk +++ /dev/null @@ -1,53 +0,0 @@ -# Verilated -*- Makefile -*- -# DESCRIPTION: Verilator output: Make include file with class lists -# -# This file lists generated Verilated files, for including in higher level makefiles. -# See Vtest2.mk for the caller. - -### Switches... -# C11 constructs required? 0/1 (always on now) -VM_C11 = 1 -# Timing enabled? 0/1 -VM_TIMING = 1 -# Coverage output mode? 0/1 (from --coverage) -VM_COVERAGE = 0 -# Parallel builds? 0/1 (from --output-split) -VM_PARALLEL_BUILDS = 0 -# Tracing output mode? 0/1 (from --trace/--trace-fst) -VM_TRACE = 0 -# Tracing output mode in VCD format? 0/1 (from --trace) -VM_TRACE_VCD = 0 -# Tracing output mode in FST format? 0/1 (from --trace-fst) -VM_TRACE_FST = 0 - -### Object file lists... -# Generated module classes, fast-path, compile with highest optimization -VM_CLASSES_FAST += \ - Vtest2 \ - Vtest2___024root__DepSet_hef21559d__0 \ - Vtest2___024root__DepSet_h3c5fcca7__0 \ - Vtest2__main \ - -# Generated module classes, non-fast-path, compile with low/medium optimization -VM_CLASSES_SLOW += \ - Vtest2___024root__Slow \ - Vtest2___024root__DepSet_h3c5fcca7__0__Slow \ - -# Generated support classes, fast-path, compile with highest optimization -VM_SUPPORT_FAST += \ - -# Generated support classes, non-fast-path, compile with low/medium optimization -VM_SUPPORT_SLOW += \ - Vtest2__Syms \ - -# Global classes, need linked once per executable, fast-path, compile with highest optimization -VM_GLOBAL_FAST += \ - verilated \ - verilated_timing \ - verilated_threads \ - -# Global classes, need linked once per executable, non-fast-path, compile with low/medium optimization -VM_GLOBAL_SLOW += \ - - -# Verilated -*- Makefile -*- diff --git a/tests/test/a.out b/tests/test/a.out deleted file mode 100644 index 34b232c..0000000 --- a/tests/test/a.out +++ /dev/null @@ -1,65 +0,0 @@ -#! /c/Source/iverilog-install/bin/vvp -:ivl_version "12.0 (devel)" "(s20150603-1539-g2693dd32b)"; -:ivl_delay_selection "TYPICAL"; -:vpi_time_precision + 0; -:vpi_module "C:\iverilog\lib\ivl\system.vpi"; -:vpi_module "C:\iverilog\lib\ivl\vhdl_sys.vpi"; -:vpi_module "C:\iverilog\lib\ivl\vhdl_textio.vpi"; -:vpi_module "C:\iverilog\lib\ivl\v2005_math.vpi"; -:vpi_module "C:\iverilog\lib\ivl\va_math.vpi"; -S_000001c04a3a6760 .scope module, "tb" "tb" 2 1; - .timescale 0 0; -v000001c04a3a6b20_0 .var "r1", 0 0; -v000001c04a51ba60_0 .var "r2", 0 0; -v000001c04a51bb00_0 .net "w1", 0 0, L_000001c04a518b00; 1 drivers -v000001c04a51bba0_0 .net "w2", 0 0, L_000001c04a518d50; 1 drivers -v000001c04a51bc40_0 .net "w3", 0 0, L_000001c04a517170; 1 drivers -S_000001c04a3a68f0 .scope module, "uut" "test" 2 6, 3 1 0, S_000001c04a3a6760; - .timescale 0 0; - .port_info 0 /INPUT 1 "A"; - .port_info 1 /INPUT 1 "B"; - .port_info 2 /OUTPUT 1 "LED1"; - .port_info 3 /OUTPUT 1 "LED2"; - .port_info 4 /OUTPUT 1 "LED3"; -L_000001c04a518b00 .functor BUFZ 1, v000001c04a3a6b20_0, C4<0>, C4<0>, C4<0>; -L_000001c04a518d50 .functor BUFZ 1, v000001c04a51ba60_0, C4<0>, C4<0>, C4<0>; -L_000001c04a517170 .functor OR 1, v000001c04a3a6b20_0, v000001c04a51ba60_0, C4<0>, C4<0>; -v000001c04a519860_0 .net "A", 0 0, v000001c04a3a6b20_0; 1 drivers -v000001c04a516ec0_0 .net "B", 0 0, v000001c04a51ba60_0; 1 drivers -v000001c04a518cb0_0 .net "LED1", 0 0, L_000001c04a518b00; alias, 1 drivers -v000001c04a518a60_0 .net "LED2", 0 0, L_000001c04a518d50; alias, 1 drivers -v000001c04a3a6a80_0 .net "LED3", 0 0, L_000001c04a517170; alias, 1 drivers - .scope S_000001c04a3a6760; -T_0 ; - %vpi_call 2 17 "$dumpfile", "dmp.vcd" {0 0 0}; - %vpi_call 2 18 "$dumpvars" {0 0 0}; - %pushi/vec4 0, 0, 1; - %store/vec4 v000001c04a3a6b20_0, 0, 1; - %pushi/vec4 0, 0, 1; - %store/vec4 v000001c04a51ba60_0, 0, 1; - %delay 10, 0; - %pushi/vec4 0, 0, 1; - %store/vec4 v000001c04a3a6b20_0, 0, 1; - %pushi/vec4 1, 0, 1; - %store/vec4 v000001c04a51ba60_0, 0, 1; - %delay 10, 0; - %pushi/vec4 1, 0, 1; - %store/vec4 v000001c04a3a6b20_0, 0, 1; - %pushi/vec4 0, 0, 1; - %store/vec4 v000001c04a51ba60_0, 0, 1; - %delay 10, 0; - %vpi_call 2 22 "$display", v000001c04a51bc40_0 {0 0 0}; - %pushi/vec4 1, 0, 1; - %store/vec4 v000001c04a3a6b20_0, 0, 1; - %pushi/vec4 1, 0, 1; - %store/vec4 v000001c04a51ba60_0, 0, 1; - %delay 10, 0; - %vpi_call 2 24 "$display", v000001c04a51bc40_0 {0 0 0}; - %end; - .thread T_0; -# The file index is used to find the file name in the following table. -:file_names 4; - "N/A"; - ""; - "tb.v"; - "test.v"; diff --git a/tests/test/dmp.vcd b/tests/test/dmp.vcd deleted file mode 100644 index a57f53d..0000000 --- a/tests/test/dmp.vcd +++ /dev/null @@ -1,48 +0,0 @@ -$date - Sat Apr 06 17:45:47 2024 -$end -$version - Icarus Verilog -$end -$timescale - 1s -$end -$scope module tb $end -$var wire 1 ! w3 $end -$var wire 1 " w2 $end -$var wire 1 # w1 $end -$var reg 1 $ r1 $end -$var reg 1 % r2 $end -$scope module uut $end -$var wire 1 $ A $end -$var wire 1 % B $end -$var wire 1 # LED1 $end -$var wire 1 " LED2 $end -$var wire 1 ! LED3 $end -$upscope $end -$upscope $end -$enddefinitions $end -$comment Show the parameter values. $end -$dumpall -$end -#0 -$dumpvars -0% -0$ -0# -0" -0! -$end -#10 -1! -1" -1% -#20 -0" -0% -1# -1$ -#30 -1" -1% -#40 diff --git a/tests/test/tb.v b/tests/test/tb.v deleted file mode 100644 index d54e603..0000000 --- a/tests/test/tb.v +++ /dev/null @@ -1,29 +0,0 @@ -module tb(); - -reg r1, r2; -wire w1, w2, w3; - -test uut( - .A(r1), - .B(r2), - .LED1(w1), - .LED2(w2), - .LED3(w3) -); - -// test uut(r1, r2, w1, w2, w3); - -initial begin - $dumpfile("dmp.vcd"); - $dumpvars; - r1 = 0; r2 = 0; #10; - r1 = 0; r2 = 1; #10; - r1 = 1; r2 = 0; #10; - $display(w3); - r1 = 1; r2 = 1; #10; - $display(w3); -end - - - -endmodule \ No newline at end of file diff --git a/tests/test/test.v b/tests/test/test.v deleted file mode 100644 index bcc997b..0000000 --- a/tests/test/test.v +++ /dev/null @@ -1,20 +0,0 @@ -module test( - input A, - input B, - output LED1, - output LED2, - output LED3 -); - - -assign LED1 = A; -assign LED2 = B; -assign LED3 = A | B; - -/* -buf(LED1, A); -buf(LED2, B); -and(LED3, A, B); -*/ - -endmodule \ No newline at end of file diff --git a/tests/test2 b/tests/test2 deleted file mode 100644 index 71a6df2..0000000 --- a/tests/test2 +++ /dev/null @@ -1,51 +0,0 @@ -#! /usr/bin/vvp -:ivl_version "11.0 (stable)"; -:ivl_delay_selection "TYPICAL"; -:vpi_time_precision + 0; -:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/system.vpi"; -:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/vhdl_sys.vpi"; -:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/vhdl_textio.vpi"; -:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/v2005_math.vpi"; -:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/va_math.vpi"; -S_0x55b1a99faed0 .scope module, "test2Tb" "test2Tb" 2 1; - .timescale 0 0; -v0x55b1a9a0cbd0_0 .var "a", 3 0; -v0x55b1a9a0cc90_0 .net "b", 6 0, L_0x55b1a9a1d1d0; 1 drivers -S_0x55b1a99fb060 .scope module, "uut" "test2" 2 5, 3 1 0, S_0x55b1a99faed0; - .timescale 0 0; - .port_info 0 /INPUT 4 "a"; - .port_info 1 /OUTPUT 7 "b"; -L_0x7f3e40949018 .functor BUFT 1, C4<0000001>, C4<0>, C4<0>, C4<0>; -v0x55b1a99c1cf0_0 .net/2s *"_ivl_0", 6 0, L_0x7f3e40949018; 1 drivers -v0x55b1a9a0c440_0 .net *"_ivl_10", 6 0, L_0x55b1a9a1d090; 1 drivers -L_0x7f3e409490f0 .functor BUFT 1, C4<0000010>, C4<0>, C4<0>, C4<0>; -v0x55b1a9a0c520_0 .net/2s *"_ivl_12", 6 0, L_0x7f3e409490f0; 1 drivers -v0x55b1a9a0c5e0_0 .net *"_ivl_2", 31 0, L_0x55b1a9a0cd90; 1 drivers -L_0x7f3e40949060 .functor BUFT 1, C4<0000000000000000000000000000>, C4<0>, C4<0>, C4<0>; -v0x55b1a9a0c6c0_0 .net *"_ivl_5", 27 0, L_0x7f3e40949060; 1 drivers -L_0x7f3e409490a8 .functor BUFT 1, C4<00000000000000000000000000000001>, C4<0>, C4<0>, C4<0>; -v0x55b1a9a0c7f0_0 .net/2u *"_ivl_6", 31 0, L_0x7f3e409490a8; 1 drivers -v0x55b1a9a0c8d0_0 .net *"_ivl_8", 31 0, L_0x55b1a9a1cf20; 1 drivers -v0x55b1a9a0c9b0_0 .net "a", 3 0, v0x55b1a9a0cbd0_0; 1 drivers -v0x55b1a9a0ca90_0 .net "b", 6 0, L_0x55b1a9a1d1d0; alias, 1 drivers -L_0x55b1a9a0cd90 .concat [ 4 28 0 0], v0x55b1a9a0cbd0_0, L_0x7f3e40949060; -L_0x55b1a9a1cf20 .arith/sum 32, L_0x55b1a9a0cd90, L_0x7f3e409490a8; -L_0x55b1a9a1d090 .shift/l 7, L_0x7f3e40949018, L_0x55b1a9a1cf20; -L_0x55b1a9a1d1d0 .arith/sub 7, L_0x55b1a9a1d090, L_0x7f3e409490f0; - .scope S_0x55b1a99faed0; -T_0 ; - %vpi_call 2 9 "$dumpfile", "test2v.vcd" {0 0 0}; - %vpi_call 2 10 "$dumpvars" {0 0 0}; - %vpi_call 2 11 "$display", "Success!" {0 0 0}; - %pushi/vec4 5, 0, 4; - %store/vec4 v0x55b1a9a0cbd0_0, 0, 4; - %delay 10, 0; - %vpi_call 2 13 "$finish" {0 0 0}; - %end; - .thread T_0; -# The file index is used to find the file name in the following table. -:file_names 4; - "N/A"; - ""; - "test2Tb.v"; - "test2.v"; diff --git a/tests/test2.v b/tests/test2.v deleted file mode 100644 index 928fe99..0000000 --- a/tests/test2.v +++ /dev/null @@ -1,8 +0,0 @@ -module test2 ( - input [3:0] a, - output [6:0] b -); - -assign b = (1 << (a + 1)) - 2; - -endmodule \ No newline at end of file diff --git a/tests/test2Tb.v b/tests/test2Tb.v deleted file mode 100644 index 41827fc..0000000 --- a/tests/test2Tb.v +++ /dev/null @@ -1,16 +0,0 @@ -module test2Tb(); - reg [3:0] a; - wire [6:0] b; - -test2 uut(a,b); - -initial begin - - $dumpfile("test2v.vcd"); - $dumpvars; - $display("Success!"); - a = 4'd5; #10; - $finish; -end - -endmodule \ No newline at end of file diff --git a/tests/test2v.vcd b/tests/test2v.vcd deleted file mode 100644 index 2906377..0000000 --- a/tests/test2v.vcd +++ /dev/null @@ -1,26 +0,0 @@ -$date - Tue Jul 9 19:50:51 2024 -$end -$version - Icarus Verilog -$end -$timescale - 1s -$end -$scope module test2Tb $end -$var wire 7 ! b [6:0] $end -$var reg 4 " a [3:0] $end -$scope module uut $end -$var wire 4 # a [3:0] $end -$var wire 7 $ b [6:0] $end -$upscope $end -$upscope $end -$enddefinitions $end -#0 -$dumpvars -b111110 $ -b101 # -b101 " -b111110 ! -$end -#10
- -
-

Synthesis Messages

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Report TitleGowinSynthesis Report
Design FileC:\cygwin64\home\koray\verilog\lab2\src\BitM.v
-
GowinSynthesis Constraints File---
Tool VersionV1.9.9.02
Part NumberGW2A-LV18PG256C8/I7
DeviceGW2A-18
Device VersionC
Created TimeThu Apr 11 07:46:56 2024 -
Legal AnnouncementCopyright (C)2014-2024 Gowin Semiconductor Corporation. ALL rights reserved.
-

Synthesis Details

- - - - - - - - - - - - - -
Top Level ModuleBitM
Synthesis ProcessRunning parser:
    CPU time = 0h 0m 0.015s, Elapsed time = 0h 0m 0.088s, Peak memory usage = 181.887MB
Running netlist conversion:
    CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0s, Peak memory usage = 0MB
Running device independent optimization:
    Optimizing Phase 0: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0s, Peak memory usage = 181.887MB
    Optimizing Phase 1: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0s, Peak memory usage = 181.887MB
    Optimizing Phase 2: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0s, Peak memory usage = 181.887MB
Running inference:
    Inferring Phase 0: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0s, Peak memory usage = 181.887MB
    Inferring Phase 1: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0s, Peak memory usage = 181.887MB
    Inferring Phase 2: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0s, Peak memory usage = 181.887MB
    Inferring Phase 3: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0s, Peak memory usage = 181.887MB
Running technical mapping:
    Tech-Mapping Phase 0: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0s, Peak memory usage = 181.887MB
    Tech-Mapping Phase 1: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0s, Peak memory usage = 181.887MB
    Tech-Mapping Phase 2: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0s, Peak memory usage = 181.887MB
    Tech-Mapping Phase 3: CPU time = 0h 0m 0.093s, Elapsed time = 0h 0m 0.132s, Peak memory usage = 181.887MB
    Tech-Mapping Phase 4: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0s, Peak memory usage = 181.887MB
Generate output files:
    CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0.001s, Peak memory usage = 181.887MB
Total Time and Memory UsageCPU time = 0h 0m 0.108s, Elapsed time = 0h 0m 0.221s, Peak memory usage = 181.887MB
-

Resource

-

Resource Usage Summary

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ResourceUsage
I/O Port 5
I/O Buf 5
    IBUF2
    OBUF3
LUT 3
    LUT23
-

Resource Utilization Summary

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ResourceUsageUtilization
Logic3(3 LUT, 0 ALU) / 20736<1%
Register0 / 161730%
  --Register as Latch0 / 161730%
  --Register as FF0 / 161730%
BSRAM0 / 460%
-
-