[xiph-commits] r13820 - in trunk/theora-fpga: . reconrefframes
reconrefframes/golden
andre.lnc at svn.xiph.org
andre.lnc at svn.xiph.org
Sat Sep 15 16:10:57 PDT 2007
Author: andre.lnc
Date: 2007-09-15 16:10:55 -0700 (Sat, 15 Sep 2007)
New Revision: 13820
Added:
trunk/theora-fpga/reconrefframes/
trunk/theora-fpga/reconrefframes/Makefile
trunk/theora-fpga/reconrefframes/UpdateUMV.vhd
trunk/theora-fpga/reconrefframes/casca_avalon.vhd
trunk/theora-fpga/reconrefframes/clamp.vhd
trunk/theora-fpga/reconrefframes/copyrecon.vhd
trunk/theora-fpga/reconrefframes/databuffer.vhd
trunk/theora-fpga/reconrefframes/divider.vhd
trunk/theora-fpga/reconrefframes/dual_syncram.vhd
trunk/theora-fpga/reconrefframes/expandblock.vhd
trunk/theora-fpga/reconrefframes/golden/
trunk/theora-fpga/reconrefframes/golden/OUT.EXPECTED.TB
trunk/theora-fpga/reconrefframes/golden/in.tb
trunk/theora-fpga/reconrefframes/idctslow.vhd
trunk/theora-fpga/reconrefframes/lflimits.vhd
trunk/theora-fpga/reconrefframes/loopfilter.vhd
trunk/theora-fpga/reconrefframes/reconframes.vhd
trunk/theora-fpga/reconrefframes/reconpixelindex.vhd
trunk/theora-fpga/reconrefframes/reconrefframes.vhd
trunk/theora-fpga/reconrefframes/syncram.vhd
trunk/theora-fpga/reconrefframes/tb_reconrefframes.vhd
Log:
Path struct
Added: trunk/theora-fpga/reconrefframes/Makefile
===================================================================
--- trunk/theora-fpga/reconrefframes/Makefile (rev 0)
+++ trunk/theora-fpga/reconrefframes/Makefile 2007-09-15 23:10:55 UTC (rev 13820)
@@ -0,0 +1,82 @@
+
+all: clean elaborate
+ @echo "PLEASE, DO: make run"
+
+clamp.o:
+ ghdl -a --ieee=synopsys clamp.vhd
+
+divider.o:
+ ghdl -a --ieee=synopsys divider.vhd
+
+reconpixelindex.o:
+ ghdl -a --ieee=synopsys reconpixelindex.vhd
+
+dual_syncram.o:
+ ghdl -a --ieee=synopsys dual_syncram.vhd
+
+idctslow.o:
+ ghdl -a --ieee=synopsys idctslow.vhd
+
+syncram.o:
+ ghdl -a --ieee=synopsys syncram.vhd
+
+databuffer.o:
+ ghdl -a --ieee=synopsys databuffer.vhd
+
+expandblock.o:
+ ghdl -a --ieee=synopsys expandblock.vhd
+
+reconframes.o:
+ ghdl -a --ieee=synopsys reconframes.vhd
+
+copyrecon.o:
+ ghdl -a --ieee=synopsys copyrecon.vhd
+
+lflimits.o:
+ ghdl -a --ieee=synopsys lflimits.vhd
+
+loopfilter.o:
+ ghdl -a --ieee=synopsys loopfilter.vhd
+
+UpdateUMV.o:
+ ghdl -a --ieee=synopsys UpdateUMV.vhd
+
+reconrefframes.o: reconrefframes.vhd
+ ghdl -a --ieee=synopsys reconrefframes.vhd
+
+tb_reconrefframes.o: tb_reconrefframes.vhd
+ ghdl -a --ieee=synopsys tb_reconrefframes.vhd
+
+elaborate: clamp.o divider.o reconpixelindex.o dual_syncram.o idctslow.o syncram.o databuffer.o expandblock.o reconframes.o copyrecon.o lflimits.o loopfilter.o UpdateUMV.o reconrefframes.o tb_reconrefframes.o
+ ghdl -e --ieee=synopsys tb_reconrefframes
+
+
+run: tb_reconrefframes
+ @echo "Running... wait some minutes"
+ @echo "Remember to do: make compare"
+ ghdl -r tb_reconrefframes
+
+compare:
+ @if diff OUT.DUV golden/OUT.EXPECTED.TB ; then \
+ echo -e "\033[32;1m *** Simulation PASSED *** \033[0m"; \
+ else \
+ echo -e "\033[31;1m!!!!!!!!! Simulation FAILED !!!!!!!!!\033[0m"; \
+ fi
+
+
+runvcd: elaborate
+ @echo "Running... wait some minutes"
+ ghdl -r tb_reconrefframes --vcd=dump.vcd
+
+ @echo "VCD File wrote: dump.vcd"
+
+runwave: elaborate
+ @echo "Running... wait some minutes"
+ ghdl -r tb_reconrefframes --wave=dump.ghw
+
+ @echo "GHW File wrote: dump.ghw"
+
+
+clean:
+ $(RM) OUT.DUV *.o *~ tb_reconrefframes *.cf \#*
+ @echo "done"
Added: trunk/theora-fpga/reconrefframes/UpdateUMV.vhd
===================================================================
--- trunk/theora-fpga/reconrefframes/UpdateUMV.vhd (rev 0)
+++ trunk/theora-fpga/reconrefframes/UpdateUMV.vhd 2007-09-15 23:10:55 UTC (rev 13820)
@@ -0,0 +1,648 @@
+library std;
+library ieee;
+use ieee.std_logic_1164.all;
+use ieee.numeric_std.all;
+--ordem this last gold
+entity UpdateUMV is
+
+ port (Clk,
+ Reset_n : in std_logic;
+ Enable : in std_logic;
+
+ in_request : out std_logic;
+ in_valid : in std_logic;
+ in_data : in signed(31 downto 0);
+
+ in_sem_request : out std_logic;
+ in_sem_valid : in std_logic;
+ in_sem_addr : out unsigned(19 downto 0);
+ in_sem_data : in signed(31 downto 0);
+
+ out_sem_requested : in std_logic;
+ out_sem_valid : out std_logic;
+ out_sem_addr : out unsigned(19 downto 0);
+ out_sem_data : out signed(31 downto 0);
+
+ out_done : out std_logic
+ );
+end UpdateUMV;
+
+
+architecture a_UpdateUMV of UpdateUMV is
+ component ReconPixelIndex
+ port (Clk,
+ Reset_n : in std_logic;
+
+ in_request : out std_logic;
+ in_valid : in std_logic;
+ in_data : in signed(31 downto 0);
+
+ out_requested : in std_logic;
+ out_valid : out std_logic;
+ out_data : out signed(31 downto 0)
+ );
+ end component;
+
+
+ -- We are using 1024 as the maximum width and height size
+ -- = ceil(log2(Maximum Size))
+ constant LG_MAX_SIZE : natural := 10;
+ constant MEM_ADDR_WIDTH : natural := 20;
+
+-------------------------------------------------------------------------------
+-- Signals that must be read at the beginning
+-------------------------------------------------------------------------------
+ signal HFragments : unsigned(LG_MAX_SIZE-3 downto 0);
+ signal VFragments : unsigned(LG_MAX_SIZE-3 downto 0);
+ signal YStride : unsigned(LG_MAX_SIZE+1 downto 0);
+ signal UVStride : unsigned(LG_MAX_SIZE downto 0);
+ signal YPlaneFragments : unsigned(LG_MAX_SIZE*2 downto 0);
+ signal UVPlaneFragments : unsigned(LG_MAX_SIZE*2-2 downto 0);
+ signal ReconYDataOffset : unsigned(MEM_ADDR_WIDTH-1 downto 0);
+ signal ReconUDataOffset : unsigned(MEM_ADDR_WIDTH-1 downto 0);
+ signal ReconVDataOffset : unsigned(MEM_ADDR_WIDTH-1 downto 0);
+ signal info_height : unsigned(LG_MAX_SIZE-1 downto 0);
+
+
+-------------------------------------------------------------------------------
+-- Signal that must be read for all frames
+-------------------------------------------------------------------------------
+ signal FrameOfs : unsigned(MEM_ADDR_WIDTH-1 downto 0);
+
+-------------------------------------------------------------------------------
+-- ReconPixelIndex signal
+-------------------------------------------------------------------------------
+ constant RPI_DATA_WIDTH : positive := 32;
+ constant RPI_POS_WIDTH : positive := 17;
+ signal rpi_position : unsigned(RPI_POS_WIDTH-1 downto 0);
+ signal rpi_value : signed(RPI_DATA_WIDTH-1 downto 0);
+
+ signal s_rpi_in_request : std_logic;
+ signal s_rpi_in_valid : std_logic;
+ signal s_rpi_in_data : signed(31 downto 0);
+
+ signal s_rpi_out_requested : std_logic;
+ signal s_rpi_out_valid : std_logic;
+ signal s_rpi_out_data : signed(31 downto 0);
+
+-------------------------------------------------------------------------------
+-- Internal Signals
+-------------------------------------------------------------------------------
+ signal count : integer range 0 to 4095;
+ signal count2 : unsigned(4 downto 0);
+
+ -- VERIFICAR OS TIPOS
+ signal PlaneStride : unsigned(LG_MAX_SIZE+1 downto 0);
+ signal PlaneBorderWidth : unsigned(4 downto 0);
+ signal LineFragments : unsigned(LG_MAX_SIZE-3 downto 0);
+ signal PlaneHeight : unsigned(LG_MAX_SIZE-1 downto 0);
+ signal BlockVStep : unsigned(LG_MAX_SIZE+5 downto 0);
+ signal PlaneFragments : unsigned(LG_MAX_SIZE*2 downto 0);
+ signal position : unsigned(LG_MAX_SIZE*2 downto 0);
+ signal SrcPtr1 : unsigned(MEM_ADDR_WIDTH-1 downto 0);
+ signal DestPtr1 : unsigned(MEM_ADDR_WIDTH-1 downto 0);
+ signal DestPtr1_i : unsigned(MEM_ADDR_WIDTH-1 downto 0);
+ signal SrcPtr2 : unsigned(MEM_ADDR_WIDTH-1 downto 0);
+ signal DestPtr2 : unsigned(MEM_ADDR_WIDTH-1 downto 0);
+ signal DestPtr2_i : unsigned(MEM_ADDR_WIDTH-1 downto 0);
+
+ signal copy1 : signed(31 downto 0);
+ signal copy2 : signed(31 downto 0);
+
+
+-------------------------------------------------------------------------------
+-- States and sub-states
+-------------------------------------------------------------------------------
+
+ type layer_t is (stt_Y, stt_U, stt_V);
+ signal layer : layer_t;
+
+ type state_t is (stt_readin, stt_Calc_RPI_Value,
+ stt_Ver, stt_Hor,
+ stt_done, stt_ReadMem,
+ stt_WriteMem);
+ signal state : state_t;
+ signal save_state : state_t;
+
+ type read_state_t is (stt_read_HFragments,
+ stt_read_YPlaneFragments,
+ stt_read_YStride,
+ stt_read_UVPlaneFragments,
+ stt_read_UVStride,
+ stt_read_VFragments,
+ stt_read_ReconYDataOffset,
+ stt_read_ReconUDataOffset,
+ stt_read_ReconVDataOffset,
+ stt_read_info,
+ stt_read_offset);
+ signal read_state : read_state_t;
+
+ type calc_rpi_state_t is (stt_calc_rpi1, stt_calc_rpi2);
+ signal calc_rpi_state : calc_rpi_state_t;
+
+ type update_state_t is (stt_1, stt_2, stt_3, stt_4, stt_5);
+ signal update_state : update_state_t;
+
+ type update_int_state_t is (stt_read1, stt_read2, stt_wait, stt_write1, stt_write2);
+ signal update_int_state : update_int_state_t;
+
+-------------------------------------------------------------------------------
+-- Constants
+-------------------------------------------------------------------------------
+
+ constant UMV_BORDER : unsigned(4 downto 0) := "10000";
+ constant HFRAGPIXELS : unsigned(3 downto 0) := "1000";
+ constant VFRAGPIXELS : unsigned(3 downto 0) := "1000";
+
+
+ signal s_in_request : std_logic;
+
+ signal s_out_done : std_logic;
+
+ signal s_in_sem_request : std_logic;
+ signal s_out_sem_valid : std_logic;
+
+-- Memories Signals
+ signal mem_rd_data : signed(31 downto 0);
+
+
+begin
+
+ in_request <= s_in_request;
+ in_sem_request <= s_in_sem_request;
+ out_sem_valid <= s_out_sem_valid;
+ out_done <= s_out_done;
+
+
+
+ rpi0: reconpixelindex
+ port map (Clk => Clk,
+ Reset_n => Reset_n,
+ in_request => s_rpi_out_requested,
+ in_valid => s_rpi_out_valid,
+ in_data => s_rpi_out_data,
+
+ out_requested => s_rpi_in_request,
+ out_valid => s_rpi_in_valid,
+ out_data => s_rpi_in_data);
+
+ RPI_HandShake: process (in_data, in_valid,
+ state, read_state,
+ calc_rpi_state,
+ rpi_position,
+ s_in_request)
+ begin -- process RPI_HandShake
+ s_rpi_out_data <= x"00000000";
+ s_rpi_out_valid <= '0';
+ if (s_in_request = '1') then
+ if (state = stt_readIn and
+ read_state /= stt_read_info and
+ read_state /= stt_read_offset) then
+ s_rpi_out_data <= in_data;
+ s_rpi_out_valid <= in_valid;
+ end if;
+ else
+ if (state = stt_Calc_RPI_Value and
+ calc_rpi_state = stt_calc_rpi1) then
+ s_rpi_out_data <= resize(signed('0'&rpi_position), 32);
+ s_rpi_out_valid <= '1';
+ end if;
+ end if;
+ end process RPI_HandShake;
+
+
+ process (clk)
+
+ procedure ReadIn is
+ begin
+ s_in_request <= '1';
+ s_out_sem_valid <= '0';
+ s_in_sem_request <= '0';
+ if (s_in_request = '1' and in_valid = '1') then
+ case read_state is
+ when stt_read_HFragments =>
+ HFragments <= unsigned(in_data(LG_MAX_SIZE-3 downto 0));
+ read_state <= stt_read_YPlaneFragments;
+
+
+ when stt_read_YPlaneFragments =>
+ YPlaneFragments <= unsigned(in_data(LG_MAX_SIZE*2 downto 0));
+ read_state <= stt_read_YStride;
+
+
+ when stt_read_YStride =>
+ YStride <= unsigned(in_data(LG_MAX_SIZE+1 downto 0));
+ read_state <= stt_read_UVPlaneFragments;
+
+
+ when stt_read_UVPlaneFragments =>
+ UVPlaneFragments <= unsigned(in_data(LG_MAX_SIZE*2-2 downto 0));
+ read_state <= stt_read_UVStride;
+
+
+ when stt_read_UVStride =>
+ UVStride <= unsigned(in_data(LG_MAX_SIZE downto 0));
+ read_state <= stt_read_VFragments;
+
+
+ when stt_read_VFragments =>
+ VFragments <= unsigned(in_data(LG_MAX_SIZE-3 downto 0));
+ read_state <= stt_read_ReconYDataOffset;
+
+
+ when stt_read_ReconYDataOffset =>
+ ReconYDataOffset <= unsigned(in_data(MEM_ADDR_WIDTH-1 downto 0));
+ read_state <= stt_read_ReconUDataOffset;
+
+
+ when stt_read_ReconUDataOffset =>
+ ReconUDataOffset <= unsigned(in_data(MEM_ADDR_WIDTH-1 downto 0));
+ read_state <= stt_read_ReconVDataOffset;
+
+
+ when stt_read_ReconVDataOffset =>
+ ReconVDataOffset <= unsigned(in_data(MEM_ADDR_WIDTH-1 downto 0));
+ read_state <= stt_read_info;
+
+
+ when stt_read_info =>
+ info_height <= unsigned(in_data(LG_MAX_SIZE-1 downto 0));
+ read_state <= stt_read_offset;
+
+
+ when others => -- when stt_offset
+ state <= stt_Ver;
+ s_in_request <= '0';
+ FrameOfs <= unsigned(in_data(MEM_ADDR_WIDTH-1 downto 0));
+ count2 <= "00000";
+ count <= 0;
+ end case;
+ end if;
+ end procedure ReadIn;
+
+ procedure CalcRPIValue is
+ begin
+ case calc_rpi_state is
+ when stt_calc_rpi1 =>
+ -- Wait until ReconPixelIndex can receive the data
+ if (s_rpi_out_requested = '1') then
+ calc_rpi_state <= stt_calc_rpi2;
+ end if;
+
+
+ when others =>
+ -- Wait until ReconPixelIndex returns the value
+ s_rpi_in_request <= '1';
+ if (s_rpi_in_request = '1' and s_rpi_in_valid = '1') then
+ rpi_value <= s_rpi_in_data;
+ state <= save_state;
+ end if;
+ end case;
+ end procedure CalcRPIValue;
+
+
+ procedure Vert is
+ begin
+ case update_state is
+ when stt_1 =>
+ update_state <= stt_2;
+ case layer is
+ when stt_Y =>
+ PlaneStride <= YStride;
+-- assert FrameOfs = 15360 report "LastFrame";
+-- assert FrameOfs = 7680 report "--------------------GoldFrame";
+ PlaneBorderWidth <= UMV_BORDER;
+ LineFragments <= HFragments;
+ PlaneHeight <= info_height;
+
+ rpi_position <= resize("00", RPI_POS_WIDTH);
+ state <= stt_Calc_RPI_Value;
+ calc_rpi_state <= stt_calc_rpi1;
+ save_state <= stt_Ver;
+
+ position <= resize("00", LG_MAX_SIZE*2+1);
+ when stt_U =>
+ PlaneStride <= '0' & UVStride;
+ PlaneBorderWidth <= SHIFT_RIGHT(UMV_BORDER, 1);
+ LineFragments <= SHIFT_RIGHT(HFragments, 1);
+ PlaneHeight <= SHIFT_RIGHT(info_height, 1);
+
+ rpi_position <= resize(YPlaneFragments, RPI_POS_WIDTH);
+ state <= stt_Calc_RPI_Value;
+ calc_rpi_state <= stt_calc_rpi1;
+ save_state <= stt_Ver;
+
+ position <= YPlaneFragments;
+ when others => -- when stt_V =>
+ PlaneStride <= '0' & UVStride;
+ PlaneBorderWidth <= SHIFT_RIGHT(UMV_BORDER, 1);
+ LineFragments <= SHIFT_RIGHT(HFragments, 1);
+ PlaneHeight <= SHIFT_RIGHT(info_height, 1);
+
+ rpi_position <= resize(YPlaneFragments + UVPlaneFragments, RPI_POS_WIDTH);
+ state <= stt_Calc_RPI_Value;
+ calc_rpi_state <= stt_calc_rpi1;
+ save_state <= stt_Ver;
+
+ position <= YPlaneFragments + UVPlaneFragments;
+ end case;
+
+ when stt_2 =>
+ update_state <= stt_3;
+ SrcPtr1 <= resize(FrameOfs + ('0' & unsigned(rpi_value)), MEM_ADDR_WIDTH);
+ DestPtr1 <= resize(FrameOfs + ('0' & unsigned(rpi_value)) - PlaneBorderWidth, MEM_ADDR_WIDTH);
+
+ when stt_3 =>
+ update_state <= stt_4;
+
+ rpi_position <= resize(position + LineFragments - 1, RPI_POS_WIDTH);
+ state <= stt_Calc_RPI_Value;
+ calc_rpi_state <= stt_calc_rpi1;
+ save_state <= stt_Ver;
+
+ when stt_4 =>
+ update_state <= stt_5;
+ SrcPtr2 <= resize(FrameOfs + ('0' & unsigned(rpi_value)) + HFRAGPIXELS - 1, MEM_ADDR_WIDTH);
+ DestPtr2 <= resize(FrameOfs + ('0' & unsigned(rpi_value)) + HFRAGPIXELS, MEM_ADDR_WIDTH);
+ when others => -- when stt_5 =>
+ if (count = PlaneHeight) then
+ count <= 0;
+ count2 <= "00000";
+ update_state <= stt_1;
+ case layer is
+ when stt_Y =>
+ layer <= stt_U;
+ when stt_U =>
+ layer <= stt_V;
+ when others => -- when stt_V =>
+ layer <= stt_Y;
+ state <= stt_Hor;
+ end case;
+ else
+ save_state <= state;
+ case update_int_state is
+ when stt_read1 =>
+ update_int_state <= stt_read2;
+ state <= stt_ReadMem;
+ in_sem_addr <= SHIFT_RIGHT(SrcPtr1, 2);
+ s_in_sem_request <= '1';
+
+ when stt_read2 =>
+ update_int_state <= stt_wait;
+ state <= stt_ReadMem;
+ in_sem_addr <= SHIFT_RIGHT(SrcPtr2, 2);
+ s_in_sem_request <= '1';
+ copy1 <= mem_rd_data(31 downto 24) &
+ mem_rd_data(31 downto 24) &
+ mem_rd_data(31 downto 24) &
+ mem_rd_data(31 downto 24);
+
+ when stt_wait =>
+ update_int_state <= stt_write1;
+ copy2 <= mem_rd_data(7 downto 0) &
+ mem_rd_data(7 downto 0) &
+ mem_rd_data(7 downto 0) &
+ mem_rd_data(7 downto 0);
+
+ when stt_write1 =>
+ if (count2 = PlaneBorderWidth) then
+ count2 <= "00000";
+ count <= count + 1;
+ update_int_state <= stt_read1;
+ SrcPtr1 <= SrcPtr1 + PlaneStride;
+ SrcPtr2 <= SrcPtr2 + PlaneStride;
+ DestPtr1 <= DestPtr1 + PlaneStride;
+ DestPtr2 <= DestPtr2 + PlaneStride;
+ else
+ update_int_state <= stt_write2;
+ out_sem_addr <= SHIFT_RIGHT(DestPtr1 + count2, 2);
+ out_sem_data <= copy1;
+ s_out_sem_valid <= '1';
+ state <= stt_WriteMem;
+ end if;
+
+ when others => -- when stt_write2 =>
+ update_int_state <= stt_write1;
+ out_sem_addr <= SHIFT_RIGHT(DestPtr2 + count2, 2);
+ count2 <= count2 + 4;
+ out_sem_data <= copy2;
+ s_out_sem_valid <= '1';
+ state <= stt_WriteMem;
+ end case;
+ end if;
+ end case;
+ end procedure Vert;
+
+ procedure Horz is
+ begin
+ case update_state is
+ when stt_1 =>
+ update_state <= stt_2;
+ case layer is
+ when stt_Y =>
+ BlockVStep <= YStride * (VFRAGPIXELS - 1);
+ PlaneStride <= YStride;
+ PlaneBorderWidth <= UMV_BORDER;
+ PlaneFragments <= YPlaneFragments;
+ LineFragments <= HFragments;
+
+ rpi_position <= resize("00", RPI_POS_WIDTH);
+ state <= stt_Calc_RPI_Value;
+ calc_rpi_state <= stt_calc_rpi1;
+ save_state <= stt_Hor;
+
+
+ position <= resize("00", LG_MAX_SIZE*2+1);
+ when stt_U =>
+ BlockVStep <= ('0' & UVStride) * (VFRAGPIXELS - 1);
+ PlaneStride <= '0' & UVStride;
+ PlaneBorderWidth <= SHIFT_RIGHT(UMV_BORDER, 1) ;
+ PlaneFragments <= "00" & UVPlaneFragments;
+ LineFragments <= SHIFT_RIGHT(HFragments, 1);
+
+ rpi_position <= resize(YPlaneFragments, RPI_POS_WIDTH);
+ state <= stt_Calc_RPI_Value;
+ calc_rpi_state <= stt_calc_rpi1;
+ save_state <= stt_Hor;
+
+ position <= YPlaneFragments;
+ when others => -- when stt_V =>
+ BlockVStep <= ('0' & UVStride) * (VFRAGPIXELS - 1);
+ PlaneStride <= '0' & UVStride;
+ PlaneBorderWidth <= SHIFT_RIGHT(UMV_BORDER,1) ;
+ PlaneFragments <= "00" & UVPlaneFragments;
+ LineFragments <= SHIFT_RIGHT(HFragments,1);
+
+ rpi_position <= resize(YPlaneFragments + UVPlaneFragments, RPI_POS_WIDTH);
+ state <= stt_Calc_RPI_Value;
+ calc_rpi_state <= stt_calc_rpi1;
+ save_state <= stt_Hor;
+
+ position <= YPlaneFragments + UVPlaneFragments;
+ end case;
+ when stt_2 =>
+ update_state <= stt_3;
+ SrcPtr1 <= resize(FrameOfs + ('0' & unsigned(rpi_value)) - PlaneBorderWidth, MEM_ADDR_WIDTH);
+ DestPtr1 <= resize(FrameOfs + ('0' & unsigned(rpi_value)) - PlaneBorderWidth*(PlaneStride + 1), MEM_ADDR_WIDTH);
+ when stt_3 =>
+ update_state <= stt_4;
+
+ rpi_position <= resize(position + PlaneFragments - LineFragments, RPI_POS_WIDTH);
+ state <= stt_Calc_RPI_Value;
+ calc_rpi_state <= stt_calc_rpi1;
+ save_state <= stt_Hor;
+
+ when stt_4 =>
+ update_state <= stt_5;
+ SrcPtr2 <= resize(FrameOfs + ('0' & unsigned(rpi_value)) + BlockVStep - PlaneBorderWidth, MEM_ADDR_WIDTH);
+ DestPtr2 <= resize(FrameOfs + ('0' & unsigned(rpi_value)) + BlockVStep - PlaneBorderWidth + PlaneStride, MEM_ADDR_WIDTH);
+ when others => -- when stt_5 =>
+ if (count = PlaneStride) then
+ count <= 0;
+ count2 <= "00000";
+ update_state <= stt_1;
+ case layer is
+ when stt_Y =>
+ layer <= stt_U;
+ when stt_U =>
+ layer <= stt_V;
+ when others => -- when stt_V =>
+ layer <= stt_Y;
+ state <= stt_Done;
+ end case;
+ else
+ save_state <= state;
+ case update_int_state is
+ when stt_read1 =>
+ DestPtr1_i <= DestPtr1 + count;
+ DestPtr2_i <= DestPtr2 + count;
+
+ update_int_state <= stt_read2;
+ state <= stt_ReadMem;
+ in_sem_addr <= SHIFT_RIGHT(SrcPtr1, 2);
+ s_in_sem_request <= '1';
+
+ when stt_read2 =>
+ update_int_state <= stt_wait;
+ state <= stt_ReadMem;
+ in_sem_addr <= SHIFT_RIGHT(SrcPtr2, 2);
+ s_in_sem_request <= '1';
+ copy1 <= mem_rd_data;
+
+ when stt_wait =>
+ update_int_state <= stt_write1;
+ copy2 <= mem_rd_data;
+
+ when stt_write1 =>
+ if (count2 = PlaneBorderWidth) then
+ count2 <= "00000";
+ count <= count + 4;
+ update_int_state <= stt_read1;
+ SrcPtr1 <= SrcPtr1 + 4;
+ SrcPtr2 <= SrcPtr2 + 4;
+ else
+ update_int_state <= stt_write2;
+ out_sem_addr <= SHIFT_RIGHT(DestPtr1_i, 2);
+ out_sem_data <= copy1;
+ s_out_sem_valid <= '1';
+ state <= stt_WriteMem;
+ end if;
+
+ when others => -- when stt_write2 =>
+ update_int_state <= stt_write1;
+ out_sem_addr <= SHIFT_RIGHT(DestPtr2_i, 2);
+ count2 <= count2 + 1;
+ DestPtr1_i <= DestPtr1_i + PlaneStride;
+ DestPtr2_i <= DestPtr2_i + PlaneStride;
+ out_sem_data <= copy2;
+ s_out_sem_valid <= '1';
+ state <= stt_WriteMem;
+ end case;
+ end if;
+ end case;
+ end procedure Horz;
+
+ procedure Done is
+ begin
+ if (count = 0) then
+ s_out_done <= '1';
+ count <= count+1;
+ elsif (count = 1) then
+ s_out_done <= '0';
+ count <= count+1;
+ else
+ assert false report "UpdateUMV is done" severity note;
+ state <= stt_readin;
+ read_state <= stt_read_offset;
+ count <= 0;
+ end if;
+ end procedure Done;
+
+ procedure ReadMemory is
+ begin
+ s_in_sem_request <= '1';
+ if (s_in_sem_request = '1' and in_sem_valid = '1') then
+ mem_rd_data <= in_sem_data;
+ s_in_sem_request <= '0';
+ state <= save_state;
+ end if;
+ end procedure ReadMemory;
+
+
+
+ procedure WriteMemory is
+ begin
+ if (out_sem_requested = '1') then
+ s_out_sem_valid <= '0';
+ state <= save_state;
+ end if;
+ end procedure WriteMemory;
+
+
+
+ begin -- process
+ if (clk'event and clk = '1') then
+ if (Reset_n = '0') then
+ s_out_done <= '0';
+ s_in_request <= '0';
+ layer <= stt_Y;
+ read_state <= stt_read_HFragments;
+ state <= stt_readin;
+ update_int_state <= stt_read1;
+ update_state <= stt_1;
+ count <= 0;
+ count2 <= "00000";
+ s_in_sem_request <= '0';
+ s_out_sem_valid <= '0';
+ rpi_position <= '0' & x"0000";
+ s_rpi_in_request <= '0';
+ calc_rpi_state <= stt_calc_rpi1;
+
+ HFragments <= x"11";
+ VFragments <= x"00";
+ YStride <= x"000";
+ UVStride <= "000" & x"00";
+ YPlaneFragments <= '0' & x"00000";
+ UVPlaneFragments <= "000" & x"0000";
+ ReconYDataOffset <= x"00000";
+ ReconUDataOffset <= x"00000";
+ ReconVDataOffset <= x"00000";
+ info_height <= resize("00", LG_MAX_SIZE);
+ else
+ if (Enable = '1') then
+ case state is
+ when stt_readin => ReadIn;
+ when stt_Calc_RPI_Value => CalcRPIValue;
+ when stt_Ver => Vert;
+ when stt_Hor => Horz;
+ when stt_Done => Done;
+ when stt_WriteMem => WriteMemory;
+ when stt_ReadMem => ReadMemory;
+ when others => ReadIn; state <= stt_readin;
+ end case;
+ end if;
+ end if;
+ end if;
+ end process;
+
+end a_UpdateUMV;
Added: trunk/theora-fpga/reconrefframes/casca_avalon.vhd
===================================================================
--- trunk/theora-fpga/reconrefframes/casca_avalon.vhd (rev 0)
+++ trunk/theora-fpga/reconrefframes/casca_avalon.vhd 2007-09-15 23:10:55 UTC (rev 13820)
@@ -0,0 +1,111 @@
+library std;
+library ieee;
+library work;
+
+use ieee.std_logic_1164.all;
+use ieee.numeric_std.all;
+--use ieee.std_logic_arith.all;
+--use ieee.std_logic_unsigned.all;
+--use ieee.std_logic_signed.all;
+use work.all;
+
+
+
+entity casca_avalon is
+ port (clk,
+ reset_n : in std_logic;
+ address : in std_logic_vector(1 downto 0);
+
+ read : in std_logic;
+ write : in std_logic;
+
+ writedata : in std_logic_vector(31 downto 0);
+ readdata : out std_logic_vector(31 downto 0);
+
+ chipselect : in std_logic
+
+
+
+ );
+
+end entity casca_avalon;
+
+
+
+
+architecture rtl of casca_avalon is
+ component ReconRefFrames
+ port (Clk,
+ Reset_n : in std_logic;
+
+ in_request : out std_logic;
+ in_valid : in std_logic;
+ in_data : in signed(31 downto 0);
+
+ out_requested : in std_logic;
+ out_valid : out std_logic;
+ out_data : out signed(31 downto 0)
+
+ );
+ end component;
+
+ signal in_request : std_logic;
+ signal in_valid : std_logic;
+ signal in_data : signed(31 downto 0);
+
+ signal out_requested : std_logic;
+ signal out_valid : std_logic;
+ signal out_data : signed(31 downto 0);
+
+begin
+
+ recon1 : ReconRefFrames
+ port map ( clk, Reset_n, in_request, in_valid, in_data, out_requested, out_valid, out_data);
+
+ process(chipselect, read, address, in_request, out_valid, out_data)
+ begin
+-- out_requested <= '0';
+ readdata <= "00000000000000000000000000000000";
+
+ out_requested <= '0';
+
+ if (chipselect = '1') then
+ if (read = '1') then
+ case address is
+ when "00" => -- Can software write data to IDCT Module ?
+ readdata <= "0000000000000000000000000000000"&in_request;
+
+ when "01" => -- Can software read data from IDCT Module ?
+ readdata <= "0000000000000000000000000000000"&out_valid;
+
+ when others => -- Read data from IDCT Module ?
+ out_requested <= '1';
+ readdata <= std_logic_vector(out_data);
+ end case;
+ end if;
+ end if;
+
+ if (Reset_n = '0') then
+ readdata <= "00000000000000000000000000000000";
+ out_requested <= '0';
+ end if;
+ end process;
+
+
+ process(Reset_n, chipselect, write, writedata)
+ begin
+
+ in_valid <= '0';
+ in_data <= "00000000000000000000000000000000";
+ if (chipselect = '1') then
+ if (write = '1') then
+ in_data <= signed(writedata(31 downto 0));
+ in_valid <= '1';
+ end if;
+ end if;
+ if (Reset_n = '0') then
+ in_valid <= '0';
+ in_data <= "00000000000000000000000000000000";
+ end if;
+ end process;
+end rtl;
Added: trunk/theora-fpga/reconrefframes/clamp.vhd
===================================================================
--- trunk/theora-fpga/reconrefframes/clamp.vhd (rev 0)
+++ trunk/theora-fpga/reconrefframes/clamp.vhd 2007-09-15 23:10:55 UTC (rev 13820)
@@ -0,0 +1,29 @@
+-------------------------------------------------------------------------------
+-- Description: If x < 0 then sat receives 0.
+-- If x > 255 then sat receives 255
+-- Else sat receives the eights low-order bits.
+-------------------------------------------------------------------------------
+
+library std;
+library IEEE;
+use IEEE.numeric_std.all;
+use IEEE.std_logic_1164.all;
+
+entity clamp is
+
+ port (
+ x : in SIGNED(16 downto 0);
+ sat : out UNSIGNED(7 downto 0));
+
+ -- purpose: saturate the number in x to an unsigned number till 255
+end clamp;
+
+architecture a_clamp of clamp is
+begin -- a_clamp
+
+ sat <= "00000000" WHEN (x < 0) ELSE
+ "11111111" WHEN (x > 255) ELSE
+ unsigned(x(7 downto 0));
+
+
+end a_clamp;
Added: trunk/theora-fpga/reconrefframes/copyrecon.vhd
===================================================================
--- trunk/theora-fpga/reconrefframes/copyrecon.vhd (rev 0)
+++ trunk/theora-fpga/reconrefframes/copyrecon.vhd 2007-09-15 23:10:55 UTC (rev 13820)
@@ -0,0 +1,525 @@
+-------------------------------------------------------------------------------
+-- Description: This file implements the CopyRecon.
+-- It copies the visible fragments of the source pointer
+-- to the equivalent pointed by destination pointer.
+-------------------------------------------------------------------------------
+
+library std;
+library ieee;
+library work;
+
+use ieee.std_logic_1164.all;
+use ieee.numeric_std.all;
+use work.all;
+
+entity CopyRecon is
+ port (Clk,
+ Reset_n : in std_logic;
+ Enable : in std_logic;
+
+ in_request : out std_logic;
+ in_valid : in std_logic;
+ in_data : in signed(31 downto 0);
+
+ in_sem_request : out std_logic;
+ in_sem_valid : in std_logic;
+ in_sem_addr : out unsigned(19 downto 0);
+ in_sem_data : in signed(31 downto 0);
+
+ out_sem_requested : in std_logic;
+ out_sem_valid : out std_logic;
+ out_sem_addr : out unsigned(19 downto 0);
+ out_sem_data : out signed(31 downto 0);
+
+ out_done : out std_logic
+ );
+end entity CopyRecon;
+
+
+architecture a_copyrecon of CopyRecon is
+ component syncram
+ generic (
+ DEPTH : positive := 64; -- How many slots
+ DATA_WIDTH : positive := 16; -- How many bits per slot
+ ADDR_WIDTH : positive := 6 -- = ceil(log2(DEPTH))
+ );
+ port (
+ clk : in std_logic;
+ wr_e : in std_logic;
+ wr_addr : in unsigned(ADDR_WIDTH-1 downto 0);
+ wr_data : in signed(DATA_WIDTH-1 downto 0);
+ rd_addr : in unsigned(ADDR_WIDTH-1 downto 0);
+ rd_data : out signed(DATA_WIDTH-1 downto 0)
+ );
+ end component;
+
+
+ component ReconPixelIndex
+ port (Clk,
+ Reset_n : in std_logic;
+
+ in_request : out std_logic;
+ in_valid : in std_logic;
+ in_data : in signed(31 downto 0);
+
+ out_requested : in std_logic;
+ out_valid : out std_logic;
+ out_data : out signed(31 downto 0)
+ );
+ end component;
+
+
+ -- We are using 1024 as the maximum width and height size
+ -- = ceil(log2(Maximum Size))
+ constant LG_MAX_SIZE : natural := 10;
+ constant MEM_ADDR_WIDTH : natural := 20;
+-------------------------------------------------------------------------------
+-- Signals that must be read at the beginning
+-------------------------------------------------------------------------------
+ signal HFragments : unsigned(LG_MAX_SIZE-3 downto 0);
+ signal VFragments : unsigned(LG_MAX_SIZE-3 downto 0);
+ signal YStride : unsigned(LG_MAX_SIZE+1 downto 0);
+ signal UVStride : unsigned(LG_MAX_SIZE downto 0);
+ signal YPlaneFragments : unsigned(LG_MAX_SIZE*2 downto 0);
+ signal UVPlaneFragments : unsigned(LG_MAX_SIZE*2-2 downto 0);
+ signal ReconYDataOffset : unsigned(MEM_ADDR_WIDTH-1 downto 0);
+ signal ReconUDataOffset : unsigned(MEM_ADDR_WIDTH-1 downto 0);
+ signal ReconVDataOffset : unsigned(MEM_ADDR_WIDTH-1 downto 0);
+ signal UnitFragmets : unsigned(LG_MAX_SIZE*2 downto 0);
+
+-------------------------------------------------------------------------------
+-- Signal that must be read for all frames
+-------------------------------------------------------------------------------
+ signal OffSetSrcPtr : unsigned(MEM_ADDR_WIDTH-1 downto 0);
+ signal OffSetDestPtr : unsigned(MEM_ADDR_WIDTH-1 downto 0);
+
+-------------------------------------------------------------------------------
+-- Internal Signals
+-------------------------------------------------------------------------------
+ signal count : integer range 0 to 2097151;
+
+ signal BlockCount : unsigned(2 downto 0);
+ signal SlotCount : unsigned(2 downto 0);
+
+ signal ValueCount : unsigned(LG_MAX_SIZE*2 downto 0);
+ signal EndValue : unsigned(LG_MAX_SIZE*2 downto 0);
+
+ signal PlaneLineStep : unsigned(LG_MAX_SIZE+1 downto 0);
+
+ signal s_in_request : std_logic;
+
+ signal mem_rd_data : signed(31 downto 0);
+ signal MaxDPFCount : unsigned(LG_MAX_SIZE*2 downto 0);
+
+ signal SrcPtr : unsigned(MEM_ADDR_WIDTH-1 downto 0);
+ signal DestPtr : unsigned(MEM_ADDR_WIDTH-1 downto 0);
+
+-------------------------------------------------------------------------------
+-- ReconPixelIndex signals and constants
+-------------------------------------------------------------------------------
+ constant RPI_DATA_WIDTH : positive := 32;
+ constant RPI_POS_WIDTH : positive := 17;
+ signal rpi_position : unsigned(RPI_POS_WIDTH-1 downto 0);
+ signal rpi_value : signed(RPI_DATA_WIDTH-1 downto 0);
+
+ signal s_rpi_in_request : std_logic;
+ signal s_rpi_in_valid : std_logic;
+ signal s_rpi_in_data : signed(31 downto 0);
+
+ signal s_rpi_out_requested : std_logic;
+ signal s_rpi_out_valid : std_logic;
+ signal s_rpi_out_data : signed(31 downto 0);
+
+
+
+-------------------------------------------------------------------------------
+-- display_fragment signals and constants
+-------------------------------------------------------------------------------
+ constant DPF_DEPTH : positive := 57;
+ constant DPF_DATA_WIDTH : positive := 32;
+ constant DPF_ADDR_WIDTH : positive := 6;
+
+ signal dpf_wr_e : std_logic;
+ signal dpf_wr_addr : unsigned(DPF_ADDR_WIDTH-1 downto 0);
+ signal dpf_wr_data : signed(DPF_DATA_WIDTH-1 downto 0);
+ signal dpf_rd_addr : unsigned(DPF_ADDR_WIDTH-1 downto 0);
+ signal dpf_rd_data : signed(DPF_DATA_WIDTH-1 downto 0);
+
+-------------------------------------------------------------------------------
+-- States and sub-states
+-------------------------------------------------------------------------------
+ type state_t is (stt_ReadIn, stt_Proc, stt_CopyBlock, stt_ReadMemory,
+ stt_WriteMemory, stt_EndProc);
+ signal state : state_t;
+
+ type read_state_t is (stt_32bitsData, stt_DispFrag,
+ stt_ReadOffset);
+ signal read_state : read_state_t;
+
+ type proc_state_t is (stt_proc1, stt_proc2, stt_proc3,
+ stt_proc4, stt_proc5, stt_proc6,
+ stt_proc7, stt_proc8, stt_proc9,
+ stt_proc10);
+ signal proc_state : proc_state_t;
+
+ type copy_block_state_t is (stt_CopyBlk1, stt_CopyBlk2, stt_CopyBlk3);
+ signal copy_block_state : copy_block_state_t;
+
+
+-------------------------------------------------------------------------------
+-- HandShake
+-------------------------------------------------------------------------------
+ signal s_in_sem_request : std_logic;
+ signal s_out_sem_valid : std_logic;
+
+begin -- a_copyrecon
+
+ in_request <= s_in_request;
+ in_sem_request <= s_in_sem_request;
+ out_sem_valid <= s_out_sem_valid;
+
+
+ mem_disp_frag: syncram
+ generic map (DPF_DEPTH, DPF_DATA_WIDTH, DPF_ADDR_WIDTH)
+ port map (clk, dpf_wr_e, dpf_wr_addr, dpf_wr_data, dpf_rd_addr, dpf_rd_data);
+
+
+ rpi0: reconpixelindex
+ port map (Clk => Clk,
+ Reset_n => Reset_n,
+ in_request => s_rpi_out_requested,
+ in_valid => s_rpi_out_valid,
+ in_data => s_rpi_out_data,
+
+ out_requested => s_rpi_in_request,
+ out_valid => s_rpi_in_valid,
+ out_data => s_rpi_in_data);
+
+
+ RPI_HandShake: process (count, in_data, in_valid,
+ state, read_state, proc_state,
+ rpi_position, s_in_request)
+ begin -- process RPI_HandShake
+ s_rpi_out_data <= x"00000000";
+ s_rpi_out_valid <= '0';
+ if (s_in_request = '1') then
+ if (read_state = stt_32bitsData) then
+ if (count >=0 and count <=8) then
+ s_rpi_out_data <= in_data;
+ s_rpi_out_valid <= in_valid;
+ end if;
+ end if;
+ else
+ if (state = stt_Proc and
+ proc_state = stt_proc7) then
+ s_rpi_out_data <= resize(signed('0'&rpi_position), 32);
+ s_rpi_out_valid <= '1';
+ end if;
+ end if;
+ end process RPI_HandShake;
+
+
+
+ process (clk)
+-------------------------------------------------------------------------------
+-- Procedures called when state is readIn
+-------------------------------------------------------------------------------
+ procedure Read32bitsData is
+ begin
+ if (count = 0) then
+ HFragments <= unsigned(in_data(LG_MAX_SIZE-3 downto 0));
+ count <= count + 1;
+ elsif (count = 1) then
+ YPlaneFragments <= unsigned(in_data(LG_MAX_SIZE*2 downto 0));
+ count <= count + 1;
+ elsif (count = 2) then
+ YStride <= unsigned(in_data(LG_MAX_SIZE+1 downto 0));
+ count <= count + 1;
+ elsif (count = 3) then
+ UVPlaneFragments <= unsigned(in_data(LG_MAX_SIZE*2-2 downto 0));
+ count <= count + 1;
+ elsif (count = 4) then
+ UVStride <= unsigned(in_data(LG_MAX_SIZE downto 0));
+ count <= count + 1;
+ elsif (count = 5) then
+ VFragments <= unsigned(in_data(LG_MAX_SIZE-3 downto 0));
+ count <= count + 1;
+ elsif (count = 6) then
+ ReconYDataOffset <= unsigned(in_data(MEM_ADDR_WIDTH-1 downto 0));
+ count <= count + 1;
+ elsif (count = 7) then
+ ReconUDataOffset <= unsigned(in_data(MEM_ADDR_WIDTH-1 downto 0));
+ count <= count + 1;
+ elsif (count = 8) then
+ ReconVDataOffset <= unsigned(in_data(MEM_ADDR_WIDTH-1 downto 0));
+ count <= count + 1;
+ else
+ UnitFragmets <= unsigned(in_data(LG_MAX_SIZE*2 downto 0));
+
+ MaxDPFCount <= SHIFT_RIGHT(
+ unsigned(in_data(LG_MAX_SIZE*2 downto 0)), 5) + 1;
+ if (in_data(4 downto 0) = "00000") then
+ MaxDPFCount <= SHIFT_RIGHT(
+ unsigned(in_data(LG_MAX_SIZE*2 downto 0)), 5);
+ end if;
+ read_state <= stt_DispFrag;
+ count <= 0;
+ end if;
+ end procedure Read32bitsData;
+
+ procedure ReadDispFrag is
+ begin
+-- assert false report "DispFrag Count = "&integer'image(count) severity note;
+ dpf_wr_e <= '1';
+ dpf_wr_data <= in_data;
+ dpf_wr_addr <= dpf_wr_addr + 1;
+ if (count = 0) then
+ dpf_wr_addr <= "000000";
+ count <= 1;
+ elsif (count = MaxDPFCount - 1) then
+ read_state <= stt_ReadOffset;
+ count <= 0;
+ else
+ count <= count + 1;
+ end if;
+ end procedure ReadDispFrag;
+
+
+ procedure ReadOffsets is
+ begin
+ dpf_wr_e <= '0';
+ if (count = 0) then
+ OffSetSrcPtr <= unsigned(in_data(MEM_ADDR_WIDTH-1 downto 0));
+ count <= count + 1;
+ else
+ s_in_request <= '0';
+ OffSetDestPtr <= unsigned(in_data(MEM_ADDR_WIDTH-1 downto 0));
+ count <= 0;
+ state <= stt_Proc;
+ read_state <= stt_DispFrag;
+ end if;
+ end procedure ReadOffsets;
+
+ procedure ReadIn is
+ begin
+ s_in_request <= '1';
+ if (s_in_request = '1' and in_valid = '1') then
+ case read_state is
+ when stt_32bitsData => Read32bitsData;
+ when stt_DispFrag => ReadDispFrag;
+ when others => ReadOffsets;
+ end case;
+ end if;
+ end procedure ReadIn;
+
+
+-------------------------------------------------------------------------------
+-- Preparing the copy
+-------------------------------------------------------------------------------
+ procedure Proc is
+ begin
+-- assert false report "proc_state = "&proc_state_t'image(proc_state) severity note;
+ case proc_state is
+ when stt_proc1 =>
+ PlaneLineStep <= YStride;
+ ValueCount <= to_unsigned(0, LG_MAX_SIZE*2+1);
+ EndValue <= YPlaneFragments;
+ proc_state <= stt_proc3;
+
+
+ when stt_proc2 =>
+ PlaneLineStep <= '0' & UVStride;
+ ValueCount <= YPlaneFragments;
+ EndValue <= UnitFragmets;
+ proc_state <= stt_proc3;
+
+
+ when stt_proc3 =>
+ dpf_rd_addr <= resize(SHIFT_RIGHT(ValueCount, 5), DPF_ADDR_WIDTH);
+ proc_state <= stt_proc4;
+
+ when stt_proc4 =>
+ -- Wait for the memory access
+ proc_state <= stt_proc5;
+
+ when stt_proc5 =>
+ proc_state <= stt_proc10;
+ -- Now we have 32 display_fragments values
+ if (dpf_rd_data(31 - to_integer(ValueCount(4 downto 0))) = '1') then
+ proc_state <= stt_proc6;
+ end if;
+
+ when stt_proc6 =>
+ -- Requet the recon_pixel_index position
+ rpi_position <= resize(ValueCount, RPI_POS_WIDTH);
+ -- Wait for the memory access
+ proc_state <= stt_proc7;
+
+ when stt_proc7 =>
+ -- Wait until ReconPixelIndex can receive the data
+ if (s_rpi_out_requested = '1') then
+ proc_state <= stt_proc8;
+ end if;
+
+ when stt_proc8 =>
+ -- Wait until ReconPixelIndex returns the value
+ s_rpi_in_request <= '1';
+ if (s_rpi_in_request = '1' and s_rpi_in_valid = '1') then
+ rpi_value <= s_rpi_in_data;
+ s_rpi_in_request <= '0';
+ proc_state <= stt_proc9;
+ end if;
+
+
+ when stt_proc9 =>
+ -- Copying the blocks
+ SrcPtr <= OffSetSrcPtr + to_integer(rpi_value);
+ DestPtr <= OffSetDestPtr + to_integer(rpi_value);
+ state <= stt_CopyBlock;
+ proc_state <= stt_proc10;
+
+
+ when stt_proc10 =>
+ proc_state <= stt_proc5;
+-- assert false report "ValueCount = "&integer'image(to_integer(ValueCount)) severity note;
+ if (ValueCount = EndValue - 1) then
+ proc_state <= stt_proc2;
+ if (ValueCount = UnitFragmets - 1) then
+ -- All done
+ out_done <= '1';
+ state <= stt_EndProc;
+ proc_state <= stt_proc1;
+ end if;
+ elsif (ValueCount(4 downto 0) = "11111") then
+ -- If we have checked all display_fragments bits
+ -- then we need to read the next display_fragment's
+ -- memory slot
+ proc_state <= stt_proc3;
+ end if;
+ ValueCount <= ValueCount + 1;
+
+ end case;
+
+ end procedure Proc;
+
+
+-------------------------------------------------------------------------------
+-- This procedure do the main job
+-------------------------------------------------------------------------------
+ procedure CopyBlock is
+ begin
+ case copy_block_state is
+ when stt_CopyBlk1 =>
+ s_in_sem_request <= '1';
+ in_sem_addr <= SHIFT_RIGHT(SrcPtr + SlotCount, 2);
+ state <= stt_ReadMemory;
+ copy_block_state <= stt_CopyBlk2;
+
+
+ when stt_CopyBlk2 =>
+ out_sem_addr <= SHIFT_RIGHT(DestPtr + SlotCount, 2);
+ out_sem_data <= mem_rd_data;
+ s_out_sem_valid <= '1';
+ state <= stt_WriteMemory;
+
+ SlotCount <= SlotCount + 4;
+ copy_block_state <= stt_CopyBlk1;
+ if (SlotCount = 4) then
+ copy_block_state <= stt_CopyBlk3;
+ SlotCount <= "000";
+ end if;
+
+
+ when stt_CopyBlk3 =>
+ SrcPtr <= SrcPtr + PlaneLineStep;
+ DestPtr <= DestPtr + PlaneLineStep;
+ BlockCount <= BlockCount + 1;
+ copy_block_state <= stt_CopyBlk1;
+ if (BlockCount = 7) then
+ BlockCount <= "000";
+ state <= stt_Proc;
+ end if;
+
+ end case;
+ end procedure CopyBlock;
+
+ procedure ReadMemory is
+ begin
+ s_in_sem_request <= '1';
+ if (s_in_sem_request = '1' and in_sem_valid = '1') then
+ mem_rd_data <= in_sem_data;
+ s_in_sem_request <= '0';
+ state <= stt_CopyBlock;
+ end if;
+ end procedure ReadMemory;
+
+
+ procedure WriteMemory is
+ begin
+ if (out_sem_requested = '1') then
+ state <= stt_CopyBlock;
+ s_out_sem_valid <= '0';
+ end if;
+ end procedure WriteMemory;
+
+-------------------------------------------------------------------------------
+-- Procedures called when state is stt_EndProc
+-------------------------------------------------------------------------------
+ procedure EndProc is
+ begin
+-- assert false report "Writing Data" severity note;
+ count <= 0;
+ out_done <= '0';
+ state <= stt_readIn;
+ end procedure EndProc;
+
+
+ begin -- process
+ if (clk'event and clk = '1') then
+ if (Reset_n = '0') then
+ state <= stt_ReadIn;
+ read_state <= stt_32bitsData;
+ proc_state <= stt_proc1;
+ copy_block_state <= stt_CopyBlk1;
+ BlockCount <= "000";
+ count <= 0;
+ SlotCount <= "000";
+
+ s_in_request <= '0';
+ s_in_request <= '0';
+ s_out_sem_valid <= '0';
+ out_done <= '0';
+
+ rpi_position <= '0' & x"0000";
+ HFragments <= x"11";
+ VFragments <= x"00";
+ YStride <= x"000";
+ UVStride <= "000" & x"00";
+ YPlaneFragments <= '0' & x"00000";
+ UVPlaneFragments <= "000" & x"0000";
+ ReconYDataOffset <= x"00000";
+ ReconUDataOffset <= x"00000";
+ ReconVDataOffset <= x"00000";
+
+ s_rpi_in_request <= '0';
+ dpf_wr_e <= '0';
+ dpf_wr_addr <= to_unsigned(0, DPF_ADDR_WIDTH);
+ dpf_wr_data <= x"00000000";
+ dpf_rd_addr <= to_unsigned(0, DPF_ADDR_WIDTH);
+ else
+ s_in_request <= '0';
+ if (Enable = '1') then
+ case state is
+ when stt_ReadIn => ReadIn;
+ when stt_Proc => Proc;
+ when stt_CopyBlock => CopyBlock;
+ when stt_ReadMemory => ReadMemory;
+ when stt_WriteMemory => WriteMemory;
+ when others => EndProc;
+ end case;
+ end if;
+ end if;
+ end if;
+ end process;
+
+end a_copyrecon;
Added: trunk/theora-fpga/reconrefframes/databuffer.vhd
===================================================================
--- trunk/theora-fpga/reconrefframes/databuffer.vhd (rev 0)
+++ trunk/theora-fpga/reconrefframes/databuffer.vhd 2007-09-15 23:10:55 UTC (rev 13820)
@@ -0,0 +1,117 @@
+-------------------------------------------------------------------------------
+-- Description: This file implements a big buffer to keep
+-- the roconstructed frames (This, Golden and Last)
+-------------------------------------------------------------------------------
+
+library std;
+library ieee;
+library work;
+
+use ieee.std_logic_1164.all;
+use ieee.numeric_std.all;
+use work.all;
+
+entity DataBuffer is
+
+ port (Clk,
+ Reset_n : in std_logic;
+
+ in_request : out std_logic;
+ in_valid : in std_logic;
+ in_addr : in unsigned(19 downto 0);
+ in_data : in signed(31 downto 0);
+
+
+ out_requested : in std_logic;
+ out_valid : out std_logic;
+ out_addr : in unsigned(19 downto 0);
+ out_data : out signed(31 downto 0)
+ );
+end DataBuffer;
+
+
+architecture a_DataBuffer of DataBuffer is
+ component syncram
+ generic (
+ DEPTH : positive := 64; -- How many slots
+ DATA_WIDTH : positive := 16; -- How many bits per slot
+ ADDR_WIDTH : positive := 6 -- = ceil(log2(DEPTH))
+ );
+ port (
+ clk : in std_logic;
+ wr_e : in std_logic;
+ wr_addr : in unsigned(ADDR_WIDTH-1 downto 0);
+ wr_data : in signed(DATA_WIDTH-1 downto 0);
+ rd_addr : in unsigned(ADDR_WIDTH-1 downto 0);
+ rd_data : out signed(DATA_WIDTH-1 downto 0)
+ );
+ end component;
+
+
+ signal count : integer;
+-- Handshake
+ signal s_in_request : std_logic;
+ signal s_out_valid : std_logic;
+
+ constant MEM_DEPTH : natural := 16384;
+ constant MEM_DATA_WIDTH : natural := 32;
+ constant MEM_ADDR_WIDTH : natural := 20;
+
+ signal mem_wr_e : std_logic;
+ signal mem_wr_addr : unsigned(MEM_ADDR_WIDTH-1 downto 0);
+ signal mem_wr_data : signed(MEM_DATA_WIDTH-1 downto 0);
+ signal mem_rd_addr : unsigned(MEM_ADDR_WIDTH-1 downto 0);
+ signal mem_rd_data : signed(MEM_DATA_WIDTH-1 downto 0);
+
+begin -- a_DataBuffer
+ in_request <= s_in_request;
+ out_valid <= s_out_valid;
+
+ mem_int32: syncram
+ generic map (MEM_DEPTH, MEM_DATA_WIDTH, MEM_ADDR_WIDTH)
+ port map (clk, mem_wr_e, mem_wr_addr, mem_wr_data,
+ mem_rd_addr, mem_rd_data);
+
+ process (clk)
+
+ begin -- process
+
+ if (clk'event and clk = '1') then
+ if (Reset_n = '0') then
+ s_in_request <= '0';
+ s_out_valid <= '0';
+
+ count <= 0;
+--memory's signals
+ mem_wr_e <= '0';
+ mem_wr_addr <= x"00000";
+ mem_wr_data <= x"00000000";
+ mem_rd_addr <= x"00000";
+ else
+
+ s_out_valid <= '0';
+ s_in_request <= '1';
+ mem_wr_e <= '0';
+ if (s_in_request = '1' and in_valid = '1') then
+ mem_wr_e <= '1';
+ mem_wr_data <= in_data;
+ mem_wr_addr <= in_addr;
+ end if;
+ count <= 0;
+ if (out_requested = '1' and s_out_valid = '0') then
+ if (count = 0) then
+ mem_rd_addr <= out_addr;
+ count <= count + 1;
+ elsif (count = 1) then
+ count <= count + 1;
+ else
+ out_data <= mem_rd_data;
+ s_out_valid <= '1';
+ count <= 0;
+ end if;
+ end if;
+ end if;
+ end if;
+ end process;
+
+end a_DataBuffer;
Added: trunk/theora-fpga/reconrefframes/divider.vhd
===================================================================
--- trunk/theora-fpga/reconrefframes/divider.vhd (rev 0)
+++ trunk/theora-fpga/reconrefframes/divider.vhd 2007-09-15 23:10:55 UTC (rev 13820)
@@ -0,0 +1,118 @@
+library std;
+library ieee;
+library work;
+
+use ieee.std_logic_1164.all;
+use ieee.numeric_std.all;
+use work.all;
+
+
+entity divider is
+ generic (
+ WIDTH : positive := 32);
+ port (Clk,
+ Reset_n : in std_logic;
+
+ in_request : out std_logic;
+ in_valid : in std_logic;
+ dividend : in unsigned(WIDTH-1 downto 0);
+ divisor : in unsigned(WIDTH-1 downto 0);
+
+ out_requested : in std_logic;
+ out_valid : out std_logic;
+ quotient : out unsigned(WIDTH-1 downto 0);
+ remainder : out unsigned(WIDTH-1 downto 0)
+ );
+end entity divider;
+
+architecture a_divider of divider is
+ type state_t is (stt_readIn, stt_divide, stt_writeOut);
+ signal state : state_t;
+
+ type divide_state_t is (stt_divide1, stt_divide2, stt_divide3);
+ signal divide_state : divide_state_t;
+
+ signal s_dividend : unsigned(WIDTH-1 downto 0);
+ signal s_divisor : unsigned(WIDTH*2-1 downto 0);
+ signal s_quotient : unsigned(WIDTH-1 downto 0);
+ signal s_remainder : unsigned(WIDTH*2-1 downto 0);
+
+ signal s_in_request : std_logic;
+ signal s_out_valid : std_logic;
+ signal s_repetition : integer range 0 to WIDTH+1;
+
+begin -- a_divider
+
+ in_request <= s_in_request;
+ out_valid <= s_out_valid;
+
+ process (clk)
+
+ procedure ReadIn is
+ begin
+ s_out_valid <= '0'; -- came from WriteOut, out_valid must be 0
+ s_in_request <= '1';
+ if( s_in_request = '1' and in_valid = '1' )then
+ s_dividend <= dividend;
+ s_remainder <= resize("00", WIDTH) & dividend;
+ s_divisor <= divisor & resize("00", WIDTH);
+ s_quotient <= resize("00", WIDTH);
+ s_repetition <= 0;
+ s_in_request <= '0';
+ state <= stt_divide;
+ end if;
+ end procedure ReadIn;
+
+ procedure Divide is
+ variable v_subtractor : unsigned(WIDTH*2-1 downto 0);
+ begin
+ v_subtractor := s_remainder - s_divisor;
+
+ s_divisor <= SHIFT_RIGHT(s_divisor, 1);
+ s_quotient <= SHIFT_LEFT(s_quotient, 1);
+ if (v_subtractor(WIDTH*2-1) = '0') then -- positive
+ s_quotient(0) <= '1';
+ s_remainder <= v_subtractor;
+ else
+ s_quotient(0) <= '0';
+ end if;
+ s_repetition <= s_repetition + 1;
+ if (s_repetition = WIDTH) then
+ state <= stt_writeOut;
+ s_repetition <= 0;
+ end if;
+ end procedure Divide;
+
+
+ procedure WriteOut is
+ begin
+ s_out_valid <= '1';
+ quotient <= s_quotient;
+ remainder <= s_remainder(WIDTH-1 downto 0);
+ if (out_requested = '1') then
+ state <= stt_readIn;
+ end if;
+ end procedure WriteOut;
+
+ begin
+ if (clk'event and clk = '1') then
+ if (Reset_n = '0') then
+ s_in_request <= '0';
+ s_out_valid <= '0';
+
+ s_repetition <= 0;
+ divide_state <= stt_divide1;
+ state <= stt_readIn;
+
+ else
+ case state is
+ when stt_readIn => ReadIn;
+ when stt_divide => Divide;
+ when stt_writeOut => WriteOut;
+ when others => ReadIn; state <= stt_readIn;
+ end case;
+ end if;
+ end if;
+ end process;
+
+end a_divider;
Added: trunk/theora-fpga/reconrefframes/dual_syncram.vhd
===================================================================
--- trunk/theora-fpga/reconrefframes/dual_syncram.vhd (rev 0)
+++ trunk/theora-fpga/reconrefframes/dual_syncram.vhd 2007-09-15 23:10:55 UTC (rev 13820)
@@ -0,0 +1,49 @@
+-------------------------------------------------------------------------------
+-- Description: This file implements a dual-SRAM
+-------------------------------------------------------------------------------
+
+library IEEE;
+use IEEE.std_logic_1164.all;
+use IEEE.numeric_std.all;
+
+
+-- This entity will infferr two identical block rams
+-- to permit two reads in the same clock cicle.
+
+entity dual_syncram is
+ generic (
+ DEPTH : positive := 64; -- How many slots
+ DATA_WIDTH : positive := 16; -- How many bits per slot
+ ADDR_WIDTH : positive := 6 -- = ceil(log2(DEPTH))
+ );
+ port (
+ clk : in std_logic;
+ wr_e : in std_logic;
+ wr_addr : in unsigned(ADDR_WIDTH-1 downto 0);
+ wr_data : in signed(DATA_WIDTH-1 downto 0);
+ rd1_addr : in unsigned(ADDR_WIDTH-1 downto 0);
+ rd1_data : out signed(DATA_WIDTH-1 downto 0);
+ rd2_addr : in unsigned(ADDR_WIDTH-1 downto 0);
+ rd2_data : out signed(DATA_WIDTH-1 downto 0)
+ );
+end entity dual_syncram;
+
+architecture rtl of dual_syncram is
+
+ type MEM_TYPE is array(0 to DEPTH-1) of
+ signed(DATA_WIDTH-1 downto 0);
+ signal memory : MEM_TYPE;
+begin
+
+ process( clk )
+ begin
+ if ( rising_edge(clk) ) then
+ if ( wr_e = '1' ) then
+ memory( to_integer(wr_addr) ) <= wr_data;
+ end if;
+ rd1_data <= memory( to_integer(rd1_addr) );
+ rd2_data <= memory( to_integer(rd2_addr) );
+ end if;
+ end process;
+
+end rtl;
Added: trunk/theora-fpga/reconrefframes/expandblock.vhd
===================================================================
--- trunk/theora-fpga/reconrefframes/expandblock.vhd (rev 0)
+++ trunk/theora-fpga/reconrefframes/expandblock.vhd 2007-09-15 23:10:55 UTC (rev 13820)
@@ -0,0 +1,1300 @@
+library std;
+library ieee;
+library work;
+
+use ieee.std_logic_1164.all;
+use ieee.numeric_std.all;
+use work.all;
+
+entity ExpandBlock is
+
+ port (
+ Clk,
+ Reset_n : in std_logic;
+ Enable : in std_logic;
+
+ in_request : out std_logic;
+ in_valid : in std_logic;
+ in_data : in signed(31 downto 0);
+
+ in_sem_request : out std_logic;
+ in_sem_valid : in std_logic;
+ in_sem_addr : out unsigned(19 downto 0);
+ in_sem_data : in signed(31 downto 0);
+
+ out_sem_requested : in std_logic;
+ out_sem_valid : out std_logic;
+ out_sem_addr : out unsigned(19 downto 0);
+ out_sem_data : out signed(31 downto 0);
+
+ in_newframe : in std_logic;
+ out_done : out std_logic);
+
+end ExpandBlock;
+
+architecture a_ExpandBlock of ExpandBlock is
+ component syncram
+ generic (
+ DEPTH : positive := 64; -- How many slots
+ DATA_WIDTH : positive := 16; -- How many bits per slot
+ ADDR_WIDTH : positive := 6 -- = ceil(log2(DEPTH))
+ );
+ port (
+ clk : in std_logic;
+ wr_e : in std_logic;
+ wr_addr : in unsigned(ADDR_WIDTH-1 downto 0);
+ wr_data : in signed(DATA_WIDTH-1 downto 0);
+ rd_addr : in unsigned(ADDR_WIDTH-1 downto 0);
+ rd_data : out signed(DATA_WIDTH-1 downto 0)
+ );
+ end component;
+
+ component ReconPixelIndex
+ port (Clk,
+ Reset_n : in std_logic;
+
+ in_request : out std_logic;
+ in_valid : in std_logic;
+ in_data : in signed(31 downto 0);
+
+ out_requested : in std_logic;
+ out_valid : out std_logic;
+ out_data : out signed(31 downto 0)
+ );
+ end component;
+
+ component clamp
+ port (
+ x : in SIGNED(16 downto 0);
+ sat : out UNSIGNED(7 downto 0));
+ end component;
+
+ component IDctSlow
+ port (Clk,
+ Reset_n : in std_logic;
+
+ in_request : out std_logic;
+ in_valid : in std_logic;
+ in_data : in signed(15 downto 0);
+ in_quantmat : in signed(15 downto 0);
+
+ out_requested : in std_logic;
+ out_valid : out std_logic;
+ out_data : out signed(15 downto 0)
+ );
+ end component;
+
+ -- We are using 1024 as the maximum width and height size
+ -- = ceil(log2(Maximum Size))
+ constant LG_MAX_SIZE : natural := 10;
+ constant MEM_ADDR_WIDTH : natural := 20;
+
+-------------------------------------------------------------------------------
+-- Signals that must be read at the beginning
+-------------------------------------------------------------------------------
+ signal HFragments : unsigned(LG_MAX_SIZE-3 downto 0);
+ signal VFragments : unsigned(LG_MAX_SIZE-3 downto 0);
+ signal YStride : unsigned(LG_MAX_SIZE+1 downto 0);
+ signal UVStride : unsigned(LG_MAX_SIZE downto 0);
+ signal YPlaneFragments : unsigned(LG_MAX_SIZE*2 downto 0);
+ signal UVPlaneFragments : unsigned(LG_MAX_SIZE*2-2 downto 0);
+ signal ReconYDataOffset : unsigned(MEM_ADDR_WIDTH-1 downto 0);
+ signal ReconUDataOffset : unsigned(MEM_ADDR_WIDTH-1 downto 0);
+ signal ReconVDataOffset : unsigned(MEM_ADDR_WIDTH-1 downto 0);
+
+
+-------------------------------------------------------------------------------
+-- Signal that must be read for all frames
+-------------------------------------------------------------------------------
+ signal FragCodMeth_FragNumber : unsigned(2 downto 0);
+ signal FragCoefEOB_FragNumber : unsigned(31 downto 0);
+ signal FragMVect_FragNumber_x : signed(31 downto 0);
+ signal FragMVect_FragNumber_y : signed(31 downto 0);
+ signal FragmentNumber : unsigned(31 downto 0);
+ signal FrameType : unsigned(7 downto 0);
+
+ signal GoldenFrameOfs : unsigned(MEM_ADDR_WIDTH-1 downto 0);
+ signal ThisFrameReconOfs : unsigned(MEM_ADDR_WIDTH-1 downto 0);
+ signal LastFrameReconOfs : unsigned(MEM_ADDR_WIDTH-1 downto 0);
+
+
+-------------------------------------------------------------------------------
+-- Internal Signals
+-------------------------------------------------------------------------------
+ signal CodingMode : unsigned(2 downto 0);
+ signal ReconPixelsPerLine : unsigned(MEM_ADDR_WIDTH-1 downto 0);
+ signal MvShift : unsigned(1 downto 0);
+ signal MvModMask : unsigned(31 downto 0);
+ signal dequant_coeffs_Ofs : unsigned(8 downto 0);
+ signal MVOffset : signed(31 downto 0);
+ signal LastFrameRecPtr : unsigned(MEM_ADDR_WIDTH-1 downto 0);
+ signal LastFrameRecPtr2 : unsigned(MEM_ADDR_WIDTH-1 downto 0);
+ signal ReconPtr2Offset : signed(31 downto 0);
+
+ signal s_in_request : std_logic;
+
+ signal count : integer range 0 to 511;
+-------------------------------------------------------------------------------
+-- dequant_coeffs Offsets
+-------------------------------------------------------------------------------
+ constant Y_COEFFS_OFS : unsigned(8 downto 0) := "000000000";
+ constant U_COEFFS_OFS : unsigned(8 downto 0) := "001000000";
+ constant V_COEFFS_OFS : unsigned(8 downto 0) := "010000000";
+ constant INTERY_COEFFS_OFS : unsigned(8 downto 0) := "011000000";
+ constant INTERU_COEFFS_OFS : unsigned(8 downto 0) := "100000000";
+ constant INTERV_COEFFS_OFS : unsigned(8 downto 0) := "101000000";
+
+
+-------------------------------------------------------------------------------
+-- CodingMode constants
+-------------------------------------------------------------------------------
+ constant CODE_INTER_NO_MV :
+ unsigned(2 downto 0) := "000"; -- INTER prediction, (0,0) motion vector implied.
+ constant CODE_INTRA :
+ unsigned(2 downto 0) := "001"; -- INTRA i.e. no prediction.
+ constant CODE_INTER_PLUS_MV :
+ unsigned(2 downto 0) := "010"; -- INTER prediction, non zero motion vector.
+ constant CODE_INTER_LAST_MV :
+ unsigned(2 downto 0) := "011"; -- Use Last Motion vector
+ constant CODE_INTER_PRIOR_LAST :
+ unsigned(2 downto 0) := "100"; -- Prior last motion vector
+ constant CODE_USING_GOLDEN :
+ unsigned(2 downto 0) := "101"; -- 'Golden frame' prediction (no MV).
+ constant CODE_GOLDEN_MV :
+ unsigned(2 downto 0) := "110"; -- 'Golden frame' prediction plus MV.
+ constant CODE_INTER_FOURMV :
+ unsigned(2 downto 0) := "111"; -- Inter prediction 4MV per macro block.
+
+
+-------------------------------------------------------------------------------
+-- ReconPixelIndex signal
+-------------------------------------------------------------------------------
+ constant RPI_DATA_WIDTH : positive := 32;
+ constant RPI_POS_WIDTH : positive := 17;
+ signal rpi_position : unsigned(RPI_POS_WIDTH-1 downto 0);
+ signal rpi_value : signed(RPI_DATA_WIDTH-1 downto 0);
+
+ signal s_rpi_in_request : std_logic;
+ signal s_rpi_in_valid : std_logic;
+ signal s_rpi_in_data : signed(31 downto 0);
+
+ signal s_rpi_out_requested : std_logic;
+ signal s_rpi_out_valid : std_logic;
+ signal s_rpi_out_data : signed(31 downto 0);
+
+
+-------------------------------------------------------------------------------
+-- Constants
+-------------------------------------------------------------------------------
+ constant KEY_FRAME : unsigned(7 downto 0) := "00000000";
+ type ModeUsesMC_t is array (0 to 7) of std_logic;
+ constant ModeUsesMC : ModeUsesMC_t := ('0','0','1','1','1','0','1','1');
+
+ constant ZERO_M_VECTOR : signed(31 downto 0) := x"00000000";
+
+
+-------------------------------------------------------------------------------
+-- States and sub-states
+-------------------------------------------------------------------------------
+
+ type state_t is (stt_readIn, stt_PreRecon, stt_Recon, stt_EndProc);
+ signal state : state_t;
+
+ type read_state_t is (stt_read1, stt_read_uniq_frame_data,
+ stt_read_dqc, stt_read_qtl, stt_read2);
+ signal read_state : read_state_t;
+
+ type pre_recon_state_t is (stt_PrepIDct, stt_CallIDct, stt_RecIDct,
+ stt_Calc_RPI_Value, stt_SelectRecons);
+ signal pre_recon_state : pre_recon_state_t;
+
+ type calc_rpi_state_t is (stt_calc_rpi1, stt_calc_rpi2);
+ signal calc_rpi_state : calc_rpi_state_t;
+
+
+ type select_recons_state_t is (stt_SelectRecons_1, stt_SelectRecons_2,
+ stt_SelectRecons_3, stt_SelectRecons_4,
+ stt_SelectRecons_5, stt_SelectRecons_6);
+ signal select_recons_state : select_recons_state_t;
+
+
+ type recon_state_t is (stt_Calculate_ReconIntra,
+ stt_ReadPixels,
+ stt_Calculate_ReconInter,
+ stt_Calculate_ReconInterHalf, stt_WriteOut_Recon,
+ stt_ReadMemory, stt_WriteMemory);
+ signal recon_state, gotostate, gotostate2 : recon_state_t;
+
+ type recon_calc_state_t is (stt_CalcRecon1, stt_CalcRecon2,
+ stt_CalcRecon3, stt_CalcRecon4,
+ stt_CalcRecon5, stt_CalcRecon6,
+ stt_CalcRecon7, stt_CalcRecon8);
+ signal recon_calc_state : recon_calc_state_t;
+
+
+ type read_pixel_state_t is (stt_ReadPixels1, stt_ReadPixels2,
+ stt_ReadPixels3, stt_ReadPixels4,
+ stt_ReadPixels5, stt_ReadPixels6);
+ signal read_pixel_state : read_pixel_state_t;
+
+
+ type write_recon_state_t is (stt_WriteRecon1, stt_WriteRecon2,
+ stt_WriteReconLast);
+ signal write_recon_state : write_recon_state_t;
+
+-------------------------------------------------------------------------------
+-- IDct signals
+-------------------------------------------------------------------------------
+ signal out_idct_requested : std_logic;
+ signal out_idct_valid : std_logic := '0';
+ signal out_idct_data : signed(15 downto 0);
+ signal out_idct_quantmat : signed(15 downto 0);
+
+ signal in_idct_request : std_logic := '0';
+ signal in_idct_valid : std_logic;
+ signal in_idct_data : signed(15 downto 0);
+
+ -----------------------------------------------------------------------------
+ -- IDct's handshake signals
+ -----------------------------------------------------------------------------
+ signal s_out_idct_valid : std_logic;
+ signal s_in_idct_request : std_logic;
+
+-------------------------------------------------------------------------------
+-- Memories signals and constants
+-------------------------------------------------------------------------------
+
+ -----------------------------------------------------------------------------
+ -- Quantized list
+ -----------------------------------------------------------------------------
+ signal qtl_wr_e : std_logic;
+ signal qtl_wr_addr : unsigned(5 downto 0);
+ signal qtl_wr_data : signed(15 downto 0);
+ signal qtl_rd_addr : unsigned(5 downto 0);
+ signal qtl_rd_data : signed(15 downto 0);
+
+ -----------------------------------------------------------------------------
+ -- Dequantizer coefficients
+ -----------------------------------------------------------------------------
+ signal dqc_wr_e : std_logic;
+ signal dqc_wr_addr : unsigned(8 downto 0);
+ signal dqc_wr_data : signed(15 downto 0);
+ signal dqc_rd_addr : unsigned(8 downto 0);
+ signal dqc_rd_data : signed(15 downto 0);
+
+ -----------------------------------------------------------------------------
+ -- Recon Data Buffer
+ -----------------------------------------------------------------------------
+ signal rdb_wr_e : std_logic;
+ signal rdb_wr_addr : unsigned(5 downto 0);
+ signal rdb_wr_data : signed(15 downto 0);
+ signal rdb_rd_addr : unsigned(5 downto 0);
+ signal rdb_rd_data : signed(15 downto 0);
+
+
+-------------------------------------------------------------------------------
+-- Reconstruct signals, constants and types
+-------------------------------------------------------------------------------
+ subtype ogg_int_17_t is signed(16 downto 0);
+ subtype ogg_int_16_t is signed(15 downto 0);
+ subtype ogg_uint_16_t is unsigned(15 downto 0);
+ subtype ogg_uint_8_t is unsigned(7 downto 0);
+ subtype ogg_int_8_t is signed(7 downto 0);
+ subtype ogg_uint_32_t is unsigned(31 downto 0);
+
+ subtype tiny_int is integer range 0 to 255;
+
+ signal sum : ogg_int_17_t;
+ signal sat : ogg_uint_8_t;
+ shared variable auxs17b : ogg_int_17_t;
+
+-- Handshake
+
+ constant dC128 : ogg_int_17_t := "00000000010000000";
+
+ signal s_in_sem_request : std_logic;
+ signal s_out_sem_valid : std_logic;
+
+ signal colcount : tiny_int := 0;
+ signal offset_RefPtr : unsigned(MEM_ADDR_WIDTH-1 downto 0);
+ signal offset_RefPtr2 : unsigned(MEM_ADDR_WIDTH-1 downto 0);
+ signal offset_ReconPtr : unsigned(MEM_ADDR_WIDTH-1 downto 0); --buffer
+
+ type mem_8_8bits_t is array (0 to 7) of ogg_uint_8_t;
+ signal Pixel : mem_8_8bits_t;
+ signal Pixel1 : mem_8_8bits_t;
+
+-- Memories Signals
+ signal mem_rd_data : signed(31 downto 0);
+
+ signal dbgSelRecon1 : std_logic;
+begin -- a_ExpandBlock
+
+ in_request <= s_in_request;
+ in_sem_request <= s_in_sem_request;
+ out_sem_valid <= s_out_sem_valid;
+
+ clamp255_0: clamp port map (sum, sat);
+
+ syncram_384_16: syncram
+ generic map (DEPTH => 384, DATA_WIDTH => 16, ADDR_WIDTH => 9)
+ port map (clk, dqc_wr_e, dqc_wr_addr, dqc_wr_data,
+ dqc_rd_addr, dqc_rd_data);
+
+ syncram_64_16: syncram
+ generic map (DEPTH => 64, DATA_WIDTH => 16, ADDR_WIDTH => 6)
+ port map (clk, rdb_wr_e, rdb_wr_addr, rdb_wr_data,
+ rdb_rd_addr, rdb_rd_data);
+
+
+ mem_64_int16: syncram
+ generic map (64, 16, 6)
+ port map (clk, qtl_wr_e, qtl_wr_addr, qtl_wr_data,
+ qtl_rd_addr, qtl_rd_data);
+
+ rpi0: reconpixelindex
+ port map (Clk => Clk,
+ Reset_n => Reset_n,
+ in_request => s_rpi_out_requested,
+ in_valid => s_rpi_out_valid,
+ in_data => s_rpi_out_data,
+
+ out_requested => s_rpi_in_request,
+ out_valid => s_rpi_in_valid,
+ out_data => s_rpi_in_data);
+
+ idctslow0: IDctSlow
+ port map(clk, Reset_n,
+ out_idct_requested, out_idct_valid, out_idct_data,
+ out_idct_quantmat,
+ in_idct_request, in_idct_valid, in_idct_data);
+
+
+ in_idct_request <= s_in_idct_request;
+ out_idct_valid <= s_out_idct_valid;
+
+
+ RPI_HandShake: process (in_data, in_valid,
+ state, read_state, pre_recon_state,
+ calc_rpi_state, rpi_position,
+ s_in_request)
+ begin -- process RPI_HandShake
+ s_rpi_out_data <= x"00000000";
+ s_rpi_out_valid <= '0';
+ if (s_in_request = '1') then
+ if (state = stt_readIn and read_state = stt_read1) then
+ s_rpi_out_data <= in_data;
+ s_rpi_out_valid <= in_valid;
+ end if;
+ else
+ if (state = stt_PreRecon and
+ pre_recon_state = stt_Calc_RPI_Value and
+ calc_rpi_state = stt_calc_rpi1) then
+ s_rpi_out_data <= resize(signed('0'&rpi_position), 32);
+ s_rpi_out_valid <= '1';
+ end if;
+ end if;
+ end process RPI_HandShake;
+
+
+
+ process (clk)
+-------------------------------------------------------------------------------
+-- Procedures called when state is stt_readIn
+-------------------------------------------------------------------------------
+ ---------------------------------------------------------------------------
+ -- Select the procedure called according the read_state
+ ---------------------------------------------------------------------------
+ procedure read1 is
+ begin
+ if (count = 0) then
+ HFragments <= unsigned(in_data(LG_MAX_SIZE-3 downto 0));
+ count <= count + 1;
+ elsif (count = 1) then
+ YPlaneFragments <= unsigned(in_data(LG_MAX_SIZE*2 downto 0));
+ count <= count + 1;
+ elsif (count = 2) then
+ YStride <= unsigned(in_data(LG_MAX_SIZE+1 downto 0));
+ count <= count + 1;
+ elsif (count = 3) then
+ UVPlaneFragments <= unsigned(in_data(LG_MAX_SIZE*2-2 downto 0));
+ count <= count + 1;
+ elsif (count = 4) then
+ UVStride <= unsigned(in_data(LG_MAX_SIZE downto 0));
+ count <= count + 1;
+ elsif (count = 5) then
+ VFragments <= unsigned(in_data(LG_MAX_SIZE-3 downto 0));
+ count <= count + 1;
+ elsif (count = 6) then
+ ReconYDataOffset <= unsigned(in_data(MEM_ADDR_WIDTH-1 downto 0));
+ count <= count + 1;
+ elsif (count = 7) then
+ ReconUDataOffset <= unsigned(in_data(MEM_ADDR_WIDTH-1 downto 0));
+ count <= count + 1;
+ --elsif (count = 8) then
+ else
+ ReconVDataOffset <= unsigned(in_data(MEM_ADDR_WIDTH-1 downto 0));
+ count <= 0;
+ read_state <= stt_read_dqc;
+ end if;
+ end procedure read1;
+
+ procedure read_dqc is
+ begin
+ dqc_wr_e <= '1';
+ dqc_wr_data <= signed(in_data(15 downto 0));
+ dqc_wr_addr <= dqc_wr_addr + 1;
+
+ if (count = 0) then
+ dqc_wr_addr <= Y_COEFFS_OFS;
+ count <= count + 1;
+ elsif (count = 383) then
+ count <= 0;
+ read_state <= stt_read_uniq_frame_data;
+ else
+ count <= count + 1;
+ end if;
+ end procedure read_dqc;
+
+ ---------------------------------------------------------------------------
+ -- Procedure that read the parameters sent one time per frame
+ ---------------------------------------------------------------------------
+ procedure ReadUniqFrameData is
+ begin
+
+ count <= count + 1;
+ if (count = 0) then
+ FrameType <= unsigned(in_data(7 downto 0));
+ elsif (count = 1) then
+ GoldenFrameOfs <= unsigned(in_data(MEM_ADDR_WIDTH-1 downto 0));
+ elsif (count = 2) then
+ LastFrameReconOfs <= unsigned(in_data(MEM_ADDR_WIDTH-1 downto 0));
+ --elsif (count = 3) then
+ else
+ ThisFrameReconOfs <= unsigned(in_data(MEM_ADDR_WIDTH-1 downto 0));
+ count <= 0;
+ read_state <= stt_read_qtl;
+ end if;
+ end procedure ReadUniqFrameData;
+
+ procedure read_qtl is
+ begin
+ dqc_wr_e <= '0';
+
+ qtl_wr_e <= '1';
+ qtl_wr_data <= signed(in_data(15 downto 0));
+ qtl_wr_addr <= qtl_wr_addr + 1;
+
+ if (count = 0) then
+ qtl_wr_addr <= "000000";
+ count <= count + 1;
+ elsif (count = 63) then
+ count <= 0;
+ read_state <= stt_read2;
+ else
+ count <= count + 1;
+ end if;
+ end procedure read_qtl;
+
+ procedure read2 is
+ begin
+ qtl_wr_e <= '0';
+
+ if (count = 0) then
+ FragCodMeth_FragNumber <= unsigned(in_data(2 downto 0));
+ count <= count + 1;
+ elsif (count = 1) then
+ FragCoefEOB_FragNumber <= unsigned(in_data(31 downto 0));
+ count <= count + 1;
+ elsif (count = 2) then
+ FragMVect_FragNumber_x <= in_data;
+ count <= count + 1;
+ elsif (count = 3) then
+ FragMVect_FragNumber_y <= in_data;
+ count <= count + 1;
+ elsif (count = 4) then
+ FragmentNumber <= unsigned(in_data);
+ pre_recon_state <= stt_PrepIDct;
+ read_state <= stt_read_qtl;
+ state <= stt_PreRecon;
+ s_in_request <= '0';
+ count <= 0;
+ end if;
+ end procedure read2;
+
+
+ procedure ReadIn is
+ begin
+ s_in_request <= '1';
+ if (s_in_request = '1' and in_valid = '1') then
+ case read_state is
+ when stt_read1 => read1;
+ when stt_read_uniq_frame_data => ReadUniqFrameData;
+ when stt_read_dqc => read_dqc;
+ when stt_read_qtl => read_qtl;
+ when others => read2;
+ end case;
+ end if;
+ end procedure ReadIn;
+
+
+-------------------------------------------------------------------------------
+-- Procedures called when state is stt_PreRecon
+-------------------------------------------------------------------------------
+
+ procedure PrepareToCallIDct is
+ begin
+ if (count = 0) then
+ -- Get coding mode for this block
+ if (FrameType = KEY_FRAME) then
+ CodingMode <= CODE_INTRA;
+ else
+ -- Get Motion vector and mode for this block.
+ CodingMode <= FragCodMeth_FragNumber;
+ end if;
+ count <= count + 1;
+ else
+ -- Select the appropriate inverse Q matrix and line stride
+ if (FragmentNumber < YPlaneFragments) then
+ ReconPixelsPerLine <= resize(YStride, MEM_ADDR_WIDTH);
+ MvShift <= "01";
+ MvModMask <= x"00000001";
+
+ -- Select appropriate dequantiser matrix.
+ if (CodingMode = CODE_INTRA) then
+ dequant_coeffs_Ofs <= Y_COEFFS_OFS;
+ else
+ dequant_coeffs_Ofs <= INTERY_COEFFS_OFS;
+ end if;
+ else
+ ReconPixelsPerLine <= resize(UVStride, MEM_ADDR_WIDTH);
+ MvShift <= "10";
+ MvModMask <= x"00000003";
+
+ -- Select appropriate dequantiser matrix.
+ if (CodingMode = CODE_INTRA) then
+ if (FragmentNumber < YPlaneFragments + UVPlaneFragments) then
+ dequant_coeffs_Ofs <= U_COEFFS_OFS;
+ else
+ dequant_coeffs_Ofs <= V_COEFFS_OFS;
+ end if;
+ else
+ if (FragmentNumber < YPlaneFragments + UVPlaneFragments) then
+ dequant_coeffs_Ofs <= INTERU_COEFFS_OFS;
+ else
+ dequant_coeffs_Ofs <= INTERV_COEFFS_OFS;
+ end if;
+ end if;
+ end if;
+ count <= 0;
+ pre_recon_state <= stt_CallIDct;
+ end if;
+ end procedure PrepareToCallIDct;
+
+ procedure CallIDct is
+ begin
+ if (out_idct_requested = '1') then
+ if (count = 0) then
+ qtl_rd_addr <= "000000";
+ dqc_rd_addr <= dequant_coeffs_Ofs;
+ count <= count + 1;
+ elsif (count = 1) then
+ -- Wait for the memory delay
+ qtl_rd_addr <= qtl_rd_addr + 1;
+ dqc_rd_addr <= dqc_rd_addr + 1;
+ count <= count + 1;
+ elsif (count = 64) then
+ out_idct_data <= dqc_rd_data;
+ out_idct_quantmat <= qtl_rd_data;
+ s_out_idct_valid <= '1';
+ count <= count + 1;
+ elsif (count = 65) then
+ out_idct_data <= dqc_rd_data;
+ out_idct_quantmat <= qtl_rd_data;
+ s_out_idct_valid <= '1';
+ -- IDct can process. The module will be waiting it
+ count <= 0;
+ pre_recon_state <= stt_RecIDct;
+ else
+ qtl_rd_addr <= qtl_rd_addr + 1;
+ dqc_rd_addr <= dqc_rd_addr + 1;
+
+ out_idct_data <= dqc_rd_data;
+ out_idct_quantmat <= qtl_rd_data;
+ s_out_idct_valid <= '1';
+ count <= count + 1;
+ end if;
+ end if;
+ end procedure CallIDct;
+
+ procedure RecIDct is
+ begin
+ s_out_idct_valid <= '0';
+ s_in_idct_request <= '1';
+ if (count = 64) then
+ pre_recon_state <= stt_Calc_RPI_Value;
+ calc_rpi_state <= stt_calc_rpi1;
+ count <= 0;
+ s_in_idct_request <= '0';
+ -- Convert fragment number to a pixel offset in a reconstruction buffer.
+ rpi_position <= resize(FragmentNumber, RPI_POS_WIDTH);
+ else
+ if (s_in_idct_request = '1' and in_idct_valid = '1') then
+ rdb_wr_e <= '1';
+ rdb_wr_addr <= rdb_wr_addr + 1;
+ rdb_wr_data <= in_idct_data;
+ if (count = 0) then
+ rdb_wr_addr <= "000000";
+ end if;
+ count <= count + 1;
+ end if;
+ end if;
+ end procedure RecIDct;
+
+
+ procedure CalcRPIValue is
+ begin
+ case calc_rpi_state is
+ when stt_calc_rpi1 =>
+ -- Wait until ReconPixelIndex can receive the data
+ if (s_rpi_out_requested = '1') then
+ calc_rpi_state <= stt_calc_rpi2;
+ end if;
+
+
+ when others =>
+ -- Wait until ReconPixelIndex returns the value
+ s_rpi_in_request <= '1';
+ if (s_rpi_in_request = '1' and s_rpi_in_valid = '1') then
+ rpi_value <= s_rpi_in_data;
+ s_rpi_in_request <= '0';
+ pre_recon_state <= stt_SelectRecons;
+ select_recons_state <= stt_SelectRecons_1;
+ end if;
+ end case;
+ end procedure CalcRPIValue;
+
+
+
+ procedure SelectRecons is
+ begin
+ if (select_recons_state = stt_SelectRecons_1) then
+ dbgSelRecon1 <= '1';
+
+ rdb_wr_e <= '0';
+ -- Action depends on decode mode.
+ if (CodingMode = CODE_INTER_NO_MV) then
+ -- Inter with no motion vector
+
+ -- Reconstruct the pixel data using the last frame Reconstructq'ction
+ -- and change data when the motion vector is (0,0), the recon is
+ -- based on the lastframe without loop filtering---- for testing
+ offset_ReconPtr <= resize(ThisFrameReconOfs +
+ unsigned(rpi_value), MEM_ADDR_WIDTH);
+ offset_RefPtr <= resize(LastFrameReconOfs +
+ unsigned(rpi_value), MEM_ADDR_WIDTH);
+ offset_RefPtr2 <= x"00000";
+ rdb_rd_addr <= "000000";
+ gotostate <= stt_Calculate_ReconInter;
+ recon_state <= stt_ReadPixels;
+ state <= stt_Recon;
+
+ elsif (ModeUsesMC(to_integer(CodingMode)) = '1') then
+ -- Work out the base motion vector offset and the 1/2 pixel offset
+ -- if any. For the U and V planes the MV specifies 1/4 pixel
+ -- accuracy. This is adjusted to 1/2 pixel as follows ( 0->0,
+ -- 1/4->1/2, 1/2->1/2, 3/4->1/2 ).
+
+ ReconPtr2Offset <= x"00000000";
+ MVOffset <= x"00000000";
+ if (FragMVect_FragNumber_x > ZERO_M_VECTOR) then
+ MVOffset <= SHIFT_RIGHT(FragMVect_FragNumber_x, to_integer(MvShift));
+ if ((FragMVect_FragNumber_x and signed(MvModMask)) /= x"00000000") then
+ ReconPtr2Offset <= x"00000001";
+ end if;
+ elsif (FragMVect_FragNumber_x < x"000000000") then
+ MVOffset <= - SHIFT_RIGHT(- FragMVect_FragNumber_x, to_integer(MvShift));
+ if (((-FragMVect_FragNumber_x) and signed(MvModMask)) /= x"00000000") then
+ ReconPtr2Offset <= x"FFFFFFFF";
+ end if;
+ end if;
+ select_recons_state <= stt_SelectRecons_2;
+
+ elsif (CodingMode = CODE_USING_GOLDEN) then
+ -- Golden frame with motion vector
+ -- Reconstruct the pixel data using the golden frame
+ -- reconstruction and change data
+ offset_ReconPtr <= resize(ThisFrameReconOfs +
+ unsigned(rpi_value), MEM_ADDR_WIDTH);
+ offset_RefPtr <= resize(GoldenFrameOfs +
+ unsigned(rpi_value), MEM_ADDR_WIDTH);
+ offset_RefPtr2 <= x"00000";
+ rdb_rd_addr <= "000000";
+ gotostate <= stt_Calculate_ReconInter;
+ recon_state <= stt_ReadPixels;
+ state <= stt_Recon;
+
+ else
+ -- Simple Intra coding
+ -- Get the pixel index for the first pixel in the fragment.
+ offset_ReconPtr <= resize(ThisFrameReconOfs +
+ unsigned(rpi_value), MEM_ADDR_WIDTH);
+ offset_RefPtr <= x"00000";
+ offset_RefPtr2 <= x"00000";
+ rdb_rd_addr <= "000000";
+ gotostate <= stt_Calculate_ReconIntra;
+ recon_state <= stt_Calculate_ReconIntra;
+ state <= stt_Recon;
+ end if;
+
+
+ elsif (select_recons_state = stt_SelectRecons_2) then
+ if (FragMVect_FragNumber_y > ZERO_M_VECTOR) then
+ MVOffset <= resize(
+ MVOffset +
+ SHIFT_RIGHT(FragMVect_FragNumber_y, to_integer(MvShift)) *
+ signed('0' & ReconPixelsPerLine), 32);
+ if ((FragMVect_FragNumber_y and signed(MvModMask)) /= x"00000000") then
+ ReconPtr2Offset <= ReconPtr2Offset + signed('0' & ReconPixelsPerLine);
+ end if;
+ elsif (FragMVect_FragNumber_y < ZERO_M_VECTOR) then
+ MVOffset <= resize(
+ MVOffset -
+ SHIFT_RIGHT(-FragMVect_FragNumber_y, to_integer(MvShift)) *
+ signed('0' & ReconPixelsPerLine), 32);
+ if (((-FragMVect_FragNumber_y) and signed(MvModMask)) /= x"00000000") then
+ ReconPtr2Offset <= ReconPtr2Offset - signed('0' & ReconPixelsPerLine);
+ end if;
+ end if;
+ select_recons_state <= stt_SelectRecons_3;
+
+ elsif (select_recons_state = stt_SelectRecons_3) then
+ -- Set up the first of the two reconstruction buffer pointers.
+ if (CodingMode = CODE_GOLDEN_MV) then
+ LastFrameRecPtr <= resize(
+ unsigned(('0' & signed(GoldenFrameOfs)) +
+ rpi_value +
+ MVOffset), MEM_ADDR_WIDTH);
+ else
+ LastFrameRecPtr <= resize(
+ unsigned(('0' & signed(LastFrameReconOfs)) +
+ rpi_value +
+ MVOffset), MEM_ADDR_WIDTH);
+ end if;
+ select_recons_state <= stt_SelectRecons_4;
+
+ elsif (select_recons_state = stt_SelectRecons_4) then
+ -- Select the appropriate reconstruction function
+ if (ReconPtr2Offset = x"00000000") then
+ -- Reconstruct the pixel dats from the reference frame and change data
+ -- (no half pixel in this case as the two references were the same.
+ offset_ReconPtr <= resize(ThisFrameReconOfs +
+ unsigned(rpi_value), MEM_ADDR_WIDTH);
+ offset_RefPtr <= LastFrameRecPtr;
+ offset_RefPtr2 <= x"00000";
+ rdb_rd_addr <= "000000";
+ gotostate <= stt_Calculate_ReconInter;
+ recon_state <= stt_ReadPixels;
+ state <= stt_Recon;
+ else
+ -- Fractional pixel reconstruction.
+ -- Note that we only use two pixels per reconstruction even for
+ -- the diagonal.
+ offset_ReconPtr <= resize(ThisFrameReconOfs +
+ unsigned(rpi_value), MEM_ADDR_WIDTH);
+ offset_RefPtr <= LastFrameRecPtr;
+ offset_RefPtr2 <= resize(
+ unsigned(signed('0' & LastFrameRecPtr) +
+ ReconPtr2Offset), MEM_ADDR_WIDTH);
+ rdb_rd_addr <= "000000";
+ gotostate <= stt_Calculate_ReconInterHalf;
+ recon_state <= stt_ReadPixels;
+ state <= stt_Recon;
+ end if;
+ end if;
+ end procedure SelectRecons;
+
+
+
+ procedure PreRecon is
+ begin
+ case pre_recon_state is
+ when stt_PrepIDct => PrepareToCallIDct;
+ when stt_CallIDct => CallIDct;
+ when stt_RecIDct => RecIDct;
+ when stt_Calc_RPI_Value => CalcRPIValue;
+ -- when stt_SelectRecons = other
+ when others => SelectRecons;
+ end case;
+ end procedure PreRecon;
+
+
+-------------------------------------------------------------------------------
+-- Procedures called when state is stt_Recon
+-------------------------------------------------------------------------------
+
+ ---------------------------------------------------------------------------
+ -- ReconIntra
+ ---------------------------------------------------------------------------
+ -- Parameters:
+ -- ReconPixelsPerLine - 'Distance' to the next buffer's pixel
+ -- gotostate - Must be stt_Calculate_ReconIntra
+ -- rdb_rd_addr - Must be zero
+ -- offset_ReconPtr - offset to write
+ -- offset_RefPtr - Must be zero
+ -- offset_RefPtr2 - Must be zero
+ procedure Calculate_ReconIntra is
+ begin
+ if (count = 8) then
+ out_done <= '1';
+ recon_calc_state <= stt_CalcRecon1;
+ state <= stt_EndProc;
+ count <= 0;
+ else
+ if (recon_calc_state = stt_CalcRecon1) then
+ rdb_rd_addr <= rdb_rd_addr + 1;
+ recon_calc_state <= stt_CalcRecon2;
+
+ elsif (recon_calc_state = stt_CalcRecon2) then
+ sum <= rdb_rd_data + dC128;
+ recon_calc_state <= stt_CalcRecon3;
+ -- Wait the clamp
+
+ else
+ rdb_rd_addr <= rdb_rd_addr + 1;
+ Pixel(colcount) <= sat;
+ colcount <= colcount + 1;
+ recon_calc_state <= stt_CalcRecon2;
+ if (colcount = 7) then
+ rdb_rd_addr <= rdb_rd_addr;
+ recon_state <= stt_WriteOut_Recon;
+ colcount <= 0;
+ recon_calc_state <= stt_CalcRecon1;
+ end if;
+ end if;
+ end if;
+ end procedure Calculate_ReconIntra;
+
+
+ procedure ReadPixels is
+ variable pointer : unsigned(1 downto 0);
+ begin
+ if (read_pixel_state = stt_ReadPixels1) then
+ s_in_sem_request <= '1';
+ in_sem_addr <= SHIFT_RIGHT(offset_RefPtr, 2);
+ recon_state <= stt_ReadMemory;
+ gotostate2 <= stt_ReadPixels;
+ if (offset_RefPtr(1 downto 0) = "00") then
+ read_pixel_state <= stt_ReadPixels2;
+ else
+ read_pixel_state <= stt_ReadPixels4;
+ end if;
+
+ elsif (read_pixel_state = stt_ReadPixels2) then
+ Pixel(0) <= unsigned(mem_rd_data(31 downto 24));
+ Pixel(1) <= unsigned(mem_rd_data(23 downto 16));
+ Pixel(2) <= unsigned(mem_rd_data(15 downto 8));
+ Pixel(3) <= unsigned(mem_rd_data(7 downto 0));
+ s_in_sem_request <= '1';
+ in_sem_addr <= SHIFT_RIGHT(offset_RefPtr + 4, 2);
+ recon_state <= stt_ReadMemory;
+ gotostate2 <= stt_ReadPixels;
+ read_pixel_state <= stt_ReadPixels3;
+
+ elsif (read_pixel_state = stt_ReadPixels3) then
+ Pixel(4) <= unsigned(mem_rd_data(31 downto 24));
+ Pixel(5) <= unsigned(mem_rd_data(23 downto 16));
+ Pixel(6) <= unsigned(mem_rd_data(15 downto 8));
+ Pixel(7) <= unsigned(mem_rd_data(7 downto 0));
+ if (gotostate = stt_Calculate_ReconInter) then
+ rdb_rd_addr <= rdb_rd_addr + 1;
+ end if;
+ -- The eigth pixels have already been brought from buffer
+ recon_state <= gotostate;
+ read_pixel_state <= stt_ReadPixels1;
+
+
+ elsif (read_pixel_state = stt_ReadPixels4) then
+ -- If offset_RefPtr is not a multiple of 4
+ case offset_RefPtr(1 downto 0) is
+ when "01" =>
+ Pixel(0) <= unsigned(mem_rd_data(23 downto 16));
+ Pixel(1) <= unsigned(mem_rd_data(15 downto 8));
+ Pixel(2) <= unsigned(mem_rd_data(7 downto 0));
+ when "10" =>
+ Pixel(0) <= unsigned(mem_rd_data(15 downto 8));
+ Pixel(1) <= unsigned(mem_rd_data(7 downto 0));
+ when others =>
+ Pixel(0) <= unsigned(mem_rd_data(7 downto 0));
+ end case;
+ s_in_sem_request <= '1';
+ in_sem_addr <= SHIFT_RIGHT(offset_RefPtr + 4, 2);
+ recon_state <= stt_ReadMemory;
+ gotostate2 <= stt_ReadPixels;
+ read_pixel_state <= stt_ReadPixels5;
+
+ elsif (read_pixel_state = stt_ReadPixels5) then
+ case offset_RefPtr(1 downto 0) is
+ when "01" =>
+ pointer := "11";
+ when "10" =>
+ pointer := "10";
+ when others =>
+ pointer := "01";
+ end case;
+ Pixel(0 + to_integer(pointer)) <= unsigned(mem_rd_data(31 downto 24));
+ Pixel(1 + to_integer(pointer)) <= unsigned(mem_rd_data(23 downto 16));
+ Pixel(2 + to_integer(pointer)) <= unsigned(mem_rd_data(15 downto 8));
+ Pixel(3 + to_integer(pointer)) <= unsigned(mem_rd_data(7 downto 0));
+ s_in_sem_request <= '1';
+ in_sem_addr <= SHIFT_RIGHT(offset_RefPtr + 8, 2);
+ recon_state <= stt_ReadMemory;
+ gotostate2 <= stt_ReadPixels;
+ read_pixel_state <= stt_ReadPixels6;
+
+ elsif (read_pixel_state = stt_ReadPixels6) then
+ case offset_RefPtr(1 downto 0) is
+ when "01" =>
+ Pixel(7) <= unsigned(mem_rd_data(31 downto 24));
+ when "10" =>
+ Pixel(6) <= unsigned(mem_rd_data(31 downto 24));
+ Pixel(7) <= unsigned(mem_rd_data(23 downto 16));
+ when others =>
+ Pixel(5) <= unsigned(mem_rd_data(31 downto 24));
+ Pixel(6) <= unsigned(mem_rd_data(23 downto 16));
+ Pixel(7) <= unsigned(mem_rd_data(15 downto 8));
+ end case;
+ if (gotostate = stt_Calculate_ReconInter) then
+ rdb_rd_addr <= rdb_rd_addr + 1;
+ end if;
+
+ -- The eigth pixels have already been brought from buffer
+ recon_state <= gotostate;
+ read_pixel_state <= stt_ReadPixels1;
+ end if;
+ end procedure ReadPixels;
+
+
+ ---------------------------------------------------------------------------
+ -- ReconInter
+ ---------------------------------------------------------------------------
+ -- Parameters:
+ -- ReconPixelsPerLine - 'Distance' to the next buffer's pixel
+ -- gotostate - Must be stt_ReadRefPtr
+ -- rdb_rd_addr - Must be zero
+ -- offset_ReconPtr - offset to write
+ -- offset_RefPtr - offset of the reference buffer
+ -- offset_RefPtr2 - Must be zero
+ procedure Calculate_ReconInter is
+ begin
+ if (count = 8) then
+ out_done <= '1';
+ recon_calc_state <= stt_CalcRecon1;
+ state <= stt_EndProc;
+ count <= 0;
+ else
+ if (recon_calc_state = stt_CalcRecon1) then
+ sum <= rdb_rd_data + ("000000000" & signed(Pixel(colcount)));
+ recon_calc_state <= stt_CalcRecon2;
+ -- Wait the clamp
+ else
+ rdb_rd_addr <= rdb_rd_addr + 1;
+ Pixel(colcount) <= sat;
+ colcount <= colcount + 1;
+ recon_calc_state <= stt_CalcRecon1;
+ if (colcount = 7) then
+ rdb_rd_addr <= rdb_rd_addr;
+ recon_state <= stt_WriteOut_Recon;
+ colcount <= 0;
+ recon_calc_state <= stt_CalcRecon1;
+ end if;
+ end if;
+ end if;
+ end procedure Calculate_ReconInter;
+
+ ---------------------------------------------------------------------------
+ -- ReconInterHalf
+ ---------------------------------------------------------------------------
+ -- Parameters:
+ -- ReconPixelsPerLine - 'Distance' to the next buffer's pixel
+ -- gotostate - Must be stt_ReadRefPtr
+ -- rdb_rd_addr - Must be zero
+ -- offset_ReconPtr - offset to write
+ -- offset_RefPtr - offset of the first reference buffer
+ -- offset_RefPtr2 - offset of the second reference buffer
+
+ procedure Calculate_ReconInterHalf is
+ variable pointer : unsigned(1 downto 0);
+ begin
+ if (count = 8) then
+ out_done <= '1';
+ recon_calc_state <= stt_CalcRecon1;
+ state <= stt_EndProc;
+ count <= 0;
+ else
+ if (recon_calc_state = stt_CalcRecon1) then
+ s_in_sem_request <= '1';
+ in_sem_addr <= SHIFT_RIGHT(offset_RefPtr2, 2);
+ recon_state <= stt_ReadMemory;
+ gotostate2 <= gotostate;
+ -- if offset_RefPtr2 mod 4 = 0
+ if (offset_RefPtr2(1 downto 0) = "00") then
+ recon_calc_state <= stt_CalcRecon2;
+ else
+ recon_calc_state <= stt_CalcRecon4;
+ end if;
+
+ elsif (recon_calc_state = stt_CalcRecon2) then
+ Pixel1(0) <= unsigned(mem_rd_data(31 downto 24));
+ Pixel1(1) <= unsigned(mem_rd_data(23 downto 16));
+ Pixel1(2) <= unsigned(mem_rd_data(15 downto 8));
+ Pixel1(3) <= unsigned(mem_rd_data(7 downto 0));
+ s_in_sem_request <= '1';
+ in_sem_addr <= SHIFT_RIGHT(offset_RefPtr2 + 4, 2);
+ recon_state <= stt_ReadMemory;
+ gotostate2 <= gotostate;
+ recon_calc_state <= stt_CalcRecon3;
+
+ elsif (recon_calc_state = stt_CalcRecon3) then
+ Pixel1(4) <= unsigned(mem_rd_data(31 downto 24));
+ Pixel1(5) <= unsigned(mem_rd_data(23 downto 16));
+ Pixel1(6) <= unsigned(mem_rd_data(15 downto 8));
+ Pixel1(7) <= unsigned(mem_rd_data(7 downto 0));
+ rdb_rd_addr <= rdb_rd_addr + 1;
+ recon_calc_state <= stt_CalcRecon7;
+
+
+ elsif (recon_calc_state = stt_CalcRecon4) then
+ -- If offset_RefPtr2 is not a multiple of 4
+ case offset_RefPtr2(1 downto 0) is
+ when "01" =>
+ Pixel1(0) <= unsigned(mem_rd_data(23 downto 16));
+ Pixel1(1) <= unsigned(mem_rd_data(15 downto 8));
+ Pixel1(2) <= unsigned(mem_rd_data(7 downto 0));
+ when "10" =>
+ Pixel1(0) <= unsigned(mem_rd_data(15 downto 8));
+ Pixel1(1) <= unsigned(mem_rd_data(7 downto 0));
+ when others =>
+ Pixel1(0) <= unsigned(mem_rd_data(7 downto 0));
+ end case;
+ s_in_sem_request <= '1';
+ in_sem_addr <= SHIFT_RIGHT(offset_RefPtr2 + 4, 2);
+ recon_state <= stt_ReadMemory;
+ gotostate2 <= gotostate;
+ recon_calc_state <= stt_CalcRecon5;
+
+ elsif (recon_calc_state = stt_CalcRecon5) then
+ case offset_RefPtr2(1 downto 0) is
+ when "01" =>
+ pointer := "11";
+ when "10" =>
+ pointer := "10";
+ when others =>
+ pointer := "01";
+ end case;
+ Pixel1(0 + to_integer(pointer)) <= unsigned(mem_rd_data(31 downto 24));
+ Pixel1(1 + to_integer(pointer)) <= unsigned(mem_rd_data(23 downto 16));
+ Pixel1(2 + to_integer(pointer)) <= unsigned(mem_rd_data(15 downto 8));
+ Pixel1(3 + to_integer(pointer)) <= unsigned(mem_rd_data(7 downto 0));
+ s_in_sem_request <= '1';
+ in_sem_addr <= SHIFT_RIGHT(offset_RefPtr2 + 8, 2);
+ recon_state <= stt_ReadMemory;
+ gotostate2 <= gotostate;
+ recon_calc_state <= stt_CalcRecon6;
+
+ elsif (recon_calc_state = stt_CalcRecon6) then
+ case offset_RefPtr2(1 downto 0) is
+ when "01" =>
+ Pixel1(7) <= unsigned(mem_rd_data(31 downto 24));
+ when "10" =>
+ Pixel1(6) <= unsigned(mem_rd_data(31 downto 24));
+ Pixel1(7) <= unsigned(mem_rd_data(23 downto 16));
+ when others =>
+ Pixel1(5) <= unsigned(mem_rd_data(31 downto 24));
+ Pixel1(6) <= unsigned(mem_rd_data(23 downto 16));
+ Pixel1(7) <= unsigned(mem_rd_data(15 downto 8));
+ end case;
+ rdb_rd_addr <= rdb_rd_addr + 1;
+ recon_calc_state <= stt_CalcRecon7;
+
+ elsif (recon_calc_state = stt_CalcRecon7) then
+ sum <= rdb_rd_data +
+ SHIFT_RIGHT(
+ ("000000000" & signed(Pixel(colcount))) +
+ ("000000000" & signed(Pixel1(colcount))) , 1);
+ recon_calc_state <= stt_CalcRecon8;
+ -- Wait the clamp
+
+ else
+ rdb_rd_addr <= rdb_rd_addr + 1;
+ Pixel(colcount) <= sat;
+ colcount <= colcount + 1;
+ recon_calc_state <= stt_CalcRecon7;
+ if (colcount = 7) then
+ rdb_rd_addr <= rdb_rd_addr;
+ recon_state <= stt_WriteOut_Recon;
+ colcount <= 0;
+ recon_calc_state <= stt_CalcRecon1;
+ end if;
+ end if;
+ end if;
+ end procedure Calculate_ReconInterHalf;
+
+
+ procedure WriteOut_Recon is
+ begin
+
+ if (write_recon_state = stt_WriteRecon1) then
+ out_sem_addr <= SHIFT_RIGHT(offset_ReconPtr, 2);
+ out_sem_data <= signed(Pixel(0)) &
+ signed(Pixel(1)) &
+ signed(Pixel(2)) &
+ signed(Pixel(3));
+ s_out_sem_valid <= '1';
+ write_recon_state <= stt_WriteRecon2;
+ recon_state <= stt_WriteMemory;
+
+ elsif (write_recon_state <= stt_WriteRecon2) then
+ out_sem_addr <= SHIFT_RIGHT(offset_ReconPtr + 4, 2);
+ out_sem_data <= signed(Pixel(4)) &
+ signed(Pixel(5)) &
+ signed(Pixel(6)) &
+ signed(Pixel(7));
+ s_out_sem_valid <= '1';
+ write_recon_state <= stt_WriteReconLast;
+ recon_state <= stt_WriteMemory;
+
+ else
+ --write_recon_state = stt_WriteReconLast;
+ write_recon_state <= stt_WriteRecon1;
+
+ recon_state <= stt_ReadPixels;
+ if (gotostate = stt_Calculate_ReconIntra) then
+ recon_state <= gotostate;
+ end if;
+
+ offset_ReconPtr <= offset_ReconPtr + ReconPixelsPerLine;
+ offset_RefPtr <= offset_RefPtr + ReconPixelsPerLine;
+ offset_RefPtr2 <= offset_RefPtr2 + ReconPixelsPerLine;
+ count <= count + 1;
+ end if;
+ end procedure WriteOut_Recon;
+
+ procedure ReadMemory is
+ begin
+ s_in_sem_request <= '1';
+ if (s_in_sem_request = '1' and in_sem_valid = '1') then
+ mem_rd_data <= in_sem_data;
+ s_in_sem_request <= '0';
+ recon_state <= gotostate2;
+ end if;
+ end procedure ReadMemory;
+
+
+
+ procedure WriteMemory is
+ begin
+ if (out_sem_requested = '1') then
+ recon_state <= stt_WriteOut_Recon;
+ s_out_sem_valid <= '0';
+ end if;
+ end procedure WriteMemory;
+
+ procedure Recon is
+ begin
+ dbgSelRecon1 <= '0';
+ case recon_state is
+ when stt_WriteOut_Recon => WriteOut_Recon;
+ when stt_WriteMemory => WriteMemory;
+ when stt_ReadMemory => ReadMemory;
+ when stt_ReadPixels => ReadPixels;
+ when stt_Calculate_ReconInterHalf => Calculate_ReconInterHalf;
+ when stt_Calculate_ReconInter => Calculate_ReconInter;
+ --when stt_Calculate_ReconIntra => Calculate_ReconIntra;
+ when others => Calculate_ReconIntra;
+ end case;
+ end procedure Recon;
+
+
+-------------------------------------------------------------------------------
+-- Procedures called when state is stt_EndProc
+-------------------------------------------------------------------------------
+ procedure EndProc is
+ begin
+ count <= 0;
+ out_done <= '0';
+ state <= stt_readIn;
+ end procedure EndProc;
+
+ begin -- process
+ if (clk'event and clk = '1') then
+ if (Reset_n = '0') then
+ state <= stt_readIn;
+ read_state <= stt_read1;
+ pre_recon_state <= stt_PrepIDct;
+ select_recons_state <= stt_SelectRecons_1;
+ read_pixel_state <= stt_ReadPixels1;
+ write_recon_state <= stt_WriteRecon1;
+
+ s_in_request <= '0';
+ s_in_sem_request <= '0';
+ count <= 0;
+ s_out_sem_valid <= '0';
+ out_done <= '0';
+
+ s_out_idct_valid <= '0';
+ s_in_idct_request <= '0';
+
+
+ colcount <= 0;
+ sum <= '0' & x"0000";
+
+ rpi_position <= '0' & x"0000";
+ HFragments <= x"11";
+ VFragments <= x"00";
+ YStride <= x"000";
+ UVStride <= "000" & x"00";
+ YPlaneFragments <= '0' & x"00000";
+ UVPlaneFragments <= "000" & x"0000";
+ ReconYDataOffset <= x"00000";
+ ReconUDataOffset <= x"00000";
+ ReconVDataOffset <= x"00000";
+
+ qtl_wr_e <= '0';
+ qtl_wr_addr <= "000000";
+ qtl_wr_data <= "0000000000000000";
+ qtl_rd_addr <= "000000";
+
+ dqc_wr_e <= '0';
+ dqc_wr_addr <= "000000000";
+ dqc_wr_data <= "0000000000000000";
+ dqc_rd_addr <= "000000000";
+
+ rdb_wr_e <= '0';
+ rdb_wr_addr <= "000000";
+ rdb_wr_data <= "0000000000000000";
+ rdb_rd_addr <= "000000";
+
+
+ dbgSelRecon1 <= '0';
+ else
+ s_in_request <= '0';
+ if (Enable = '1') then
+ -- If is a new frame should read the dequantized matrix again.
+ if (in_newframe = '1') then
+ read_state <= stt_read_dqc;
+ end if;
+
+ case state is
+ when stt_readIn => ReadIn;
+ when stt_PreRecon => PreRecon;
+ when stt_Recon => Recon;
+ when others => EndProc;
+ end case;
+ end if;
+ end if;
+ end if;
+ end process;
+
+
+end a_ExpandBlock;
Added: trunk/theora-fpga/reconrefframes/golden/OUT.EXPECTED.TB
===================================================================
--- trunk/theora-fpga/reconrefframes/golden/OUT.EXPECTED.TB (rev 0)
+++ trunk/theora-fpga/reconrefframes/golden/OUT.EXPECTED.TB 2007-09-15 23:10:55 UTC (rev 13820)
@@ -0,0 +1,37632 @@
+117901063
+117901063
+117901063
+117901063
+117440512
+301989888
+34603520
+2424832
+1728709889
+-1292766031
+-1735913704
+-649203010
+-2109669728
+-500887296
+860126896
+-1222965760
+-550498804
+1640929190
+-1683171277
+1685309952
+1299832974
+1544188852
+1133912271
+512295989
+-805297774
+386011138
+-1993074927
+-1842601467
+84215045
+84215045
+84215045
+84215045
+117901063
+117901063
+117901063
+117901063
+117440512
+301989888
+34603520
+2424832
+1728709889
+-1292766031
+-1735913704
+-649203010
+-2109669728
+-500887296
+860126896
+-1222965760
+-550498804
+1640929190
+-1683171277
+1685309952
+1299832974
+1544188852
+1133912271
+512295989
+-805297774
+386011138
+-1993074927
+-1842601467
+84215045
+84215045
+84215045
+84215045
+117901063
+117901063
+117901063
+117901063
+117440512
+301989888
+34603520
+2424832
+1728709889
+-1292766031
+-1735913704
+-649203010
+-2109669728
+-500887296
+860126896
+-1222965760
+-550498804
+1640929190
+-1683171277
+1685309952
+1299832974
+1544188852
+1133912271
+512295989
+-805297774
+386011138
+-1993074927
+-1842601467
+84215045
+84215045
+84215045
+84215045
+117901063
+117901063
+117901063
+117901063
+117440512
+301989888
+34603520
+2424832
+1728709889
+-1292766031
+-1735913704
+-649203010
+-2109669728
+-500887296
+860126896
+-1222965760
+-550498804
+1640929190
+-1683171277
+1685309952
+1299832974
+1544188852
+1133912271
+512295989
+-805297774
+386011138
+-1993074927
+-1842601467
+84215045
+84215045
+84215045
+84215045
+117901063
+117901063
+117901063
+117901063
+117440512
+301989888
+34603520
+2424832
+1728709889
+-1292766031
+-1735913704
+-649203010
+-2109669728
+-500887296
+860126896
+-1222965760
+-550498804
+1640929190
+-1683171277
+1685309952
+1299832974
+1544188852
+1133912271
+512295989
+-805297774
+386011138
+-1993074927
+-1842601467
+84215045
+84215045
+84215045
+84215045
+117901063
+117901063
+117901063
+117901063
+117440512
+301989888
+34603520
+2424832
+1728709889
+-1292766031
+-1735913704
+-649203010
+-2109669728
+-500887296
+860126896
+-1222965760
+-550498804
+1640929190
+-1683171277
+1685309952
+1299832974
+1544188852
+1133912271
+512295989
+-805297774
+386011138
+-1993074927
+-1842601467
+84215045
+84215045
+84215045
+84215045
+117901063
+117901063
+117901063
+117901063
+117440512
+301989888
+34603520
+2424832
+1728709889
+-1292766031
+-1735913704
+-649203010
+-2109669728
+-500887296
+860126896
+-1222965760
+-550498804
+1640929190
+-1683171277
+1685309952
+1299832974
+1544188852
+1133912271
+512295989
+-805297774
+386011138
+-1993074927
+-1842601467
+84215045
+84215045
+84215045
+84215045
+117901063
+117901063
+117901063
+117901063
+117440512
+301989888
+34603520
+2424832
+1728709889
+-1292766031
+-1735913704
+-649203010
+-2109669728
+-500887296
+860126896
+-1222965760
+-550498804
+1640929190
+-1683171277
+1685309952
+1299832974
+1544188852
+1133912271
+512295989
+-805297774
+386011138
+-1993074927
+-1842601467
+84215045
+84215045
+84215045
+84215045
+117901063
+117901063
+117901063
+117901063
+117440512
+301989888
+34603520
+2424832
+1728709889
+-1292766031
+-1735913704
+-649203010
+-2109669728
+-500887296
+860126896
+-1222965760
+-550498804
+1640929190
+-1683171277
+1685309952
+1299832974
+1544188852
+1133912271
+512295989
+-805297774
+386011138
+-1993074927
+-1842601467
+84215045
+84215045
+84215045
+84215045
+117901063
+117901063
+117901063
+117901063
+117440512
+301989888
+34603520
+2424832
+1728709889
+-1292766031
+-1735913704
+-649203010
+-2109669728
+-500887296
+860126896
+-1222965760
+-550498804
+1640929190
+-1683171277
+1685309952
+1299832974
+1544188852
+1133912271
+512295989
+-805297774
+386011138
+-1993074927
+-1842601467
+84215045
+84215045
+84215045
+84215045
+117901063
+117901063
+117901063
+117901063
+117440512
+301989888
+34603520
+2424832
+1728709889
+-1292766031
+-1735913704
+-649203010
+-2109669728
+-500887296
+860126896
+-1222965760
+-550498804
+1640929190
+-1683171277
+1685309952
+1299832974
+1544188852
+1133912271
+512295989
+-805297774
+386011138
+-1993074927
+-1842601467
+84215045
+84215045
+84215045
+84215045
+117901063
+117901063
+117901063
+117901063
+117440512
+301989888
+34603520
+2424832
+1728709889
+-1292766031
+-1735913704
+-649203010
+-2109669728
+-500887296
+860126896
+-1222965760
+-550498804
+1640929190
+-1683171277
+1685309952
+1299832974
+1544188852
+1133912271
+512295989
+-805297774
+386011138
+-1993074927
+-1842601467
+84215045
+84215045
+84215045
+84215045
+117901063
+117901063
+117901063
+117901063
+117440512
+301989888
+34603520
+2424832
+1728709889
+-1292766031
+-1735913704
+-649203010
+-2109669728
+-500887296
+860126896
+-1222965760
+-550498804
+1640929190
+-1683171277
+1685309952
+1299832974
+1544188852
+1133912271
+512295989
+-805297774
+386011138
+-1993074927
+-1842601467
+84215045
+84215045
+84215045
+84215045
+117901063
+117901063
+117901063
+117901063
+117440512
+301989888
+34603520
+2424832
+1728709889
+-1292766031
+-1735913704
+-649203010
+-2109669728
+-500887296
+860126896
+-1222965760
+-550498804
+1640929190
+-1683171277
+1685309952
+1299832974
+1544188852
+1133912271
+512295989
+-805297774
+386011138
+-1993074927
+-1842601467
+84215045
+84215045
+84215045
+84215045
+117901063
+117901063
+117901063
+117901063
+117440512
+301989888
+34603520
+2424832
+1728709889
+-1292766031
+-1735913704
+-649203010
+-2109669728
+-500887296
+860126896
+-1222965760
+-550498804
+1640929190
+-1683171277
+1685309952
+1299832974
+1544188852
+1133912271
+512295989
+-805297774
+386011138
+-1993074927
+-1842601467
+84215045
+84215045
+84215045
+84215045
+117901063
+117901063
+117901063
+117901063
+117440512
+301989888
+34603520
+2424832
+1728709889
+-1292766031
+-1735913704
+-649203010
+-2109669728
+-500887296
+860126896
+-1222965760
+-550498804
+1640929190
+-1683171277
+1685309952
+1299832974
+1544188852
+1133912271
+512295989
+-805297774
+386011138
+-1993074927
+-1842601467
+84215045
+84215045
+84215045
+84215045
+117901063
+117901063
+117901063
+117901063
+117440512
+301989888
+34603520
+2424832
+1728709889
+-1292766031
+-1735913704
+-649203010
+-2109669728
+-500887296
+860126896
+-1222965760
+-550498804
+1640929190
+-1683171277
+1685309952
+1299832974
+1544188852
+1133912271
+512295989
+-805297774
+386011138
+-1993074927
+-1842601467
+84215045
+84215045
+84215045
+84215045
+-1263225676
+-1263225676
+-1263225676
+-1263225676
+-1260724853
+1462579288
+1280049182
+754978816
+-677573341
+786447
+1380646931
+587204352
+452989489
+515
+16788736
+1572882
+-938867933
+-1513226330
+-1534258430
+-549590590
+1783035337
+-1339490273
+583401626
+851982
+-13434854
+1607629728
+-37027829
+2883585
+16843009
+16843009
+16843009
+16843009
+50529027
+50529027
+50529027
+50529027
+56988179
+470155274
+2040335388
+1486230544
+314743163
+1560320368
+-714270720
+708706319
+1400832000
+854528
+-933953522
+150997258
+520093701
+2162703
+33559552
+169869319
+-1105657842
+-907876676
+-1754058752
+-415303505
+1747320765
+-594466544
+137775218
+1833477958
+1179010630
+1179010630
+1179010630
+1179010630
+505290270
+505290270
+505290270
+505290270
+507401011
+-326743609
+-240710169
+-1002960296
+-2020176119
+1225419095
+-1727444566
+1826912049
+639270607
+683313552
+-1472489563
+-1496799765
+-1732778195
+-2061282579
+1692947457
+-1274291100
+276677195
+841656004
+-1469487526
+793461470
+657708098
+581412355
+2031622
+2234265
+-1717986919
+-1717986919
+-1717986919
+-1717986919
+303174162
+303174162
+303174162
+303174162
+301997056
+2902802
+710935569
+-1995110368
+2162688
+816247016
+2014513951
+823173
+-1367316372
+-616531526
+-1530956175
+1208001140
+-431619902
+1386132288
+-747514700
+-263707929
+1875113243
+5982769
+-2093350738
+15076731
+-2092342147
+1959263330
+-257808325
+1379695547
+-1145324613
+-1145324613
+-1145324613
+-1145324613
+-1246382667
+-1246382667
+-1246382667
+-1246382667
+-1242383711
+962809196
+-1474343568
+-745638444
+962048576
+1943113011
+-2041441566
+1093450829
+-1810799726
+-1675308588
+-576403391
+794001312
+828326428
+562083900
+1136927073
+-1684024659
+-358047322
+-1991369852
+-1633948457
+-1857054374
+1397002960
+1852233513
+1649820702
+-435747550
+572662306
+572662306
+572662306
+572662306
+-2088533117
+-2088533117
+-2088533117
+-2088533117
+-2081709418
+609038361
+1184343901
+1767461263
+-274815654
+-680418304
+-1757402732
+-799105941
+-1197904847
+-955330403
+1419301809
+-1771410100
+1033655532
+1860006363
+-2061631542
+-118366349
+2059572642
+1937798046
+1245535877
+-881531823
+1244547540
+1252248711
+1294101870
+1538719863
+2004318071
+2004318071
+2004318071
+2004318071
+-555819298
+-555819298
+-555819298
+-555819298
+-558141757
+-1385604287
+1261036933
+-1737404206
+632350675
+1359185768
+-735540638
+-1185992063
+-744632930
+-1337214045
+-954440031
+-1147653421
+-1142404911
+931156506
+-1350410282
+1789605675
+-2032605001
+980768494
+1109484940
+-1202358723
+868148087
+1186178469
+-1515083115
+-1195559679
+16843009
+16843009
+16843009
+16843009
+1313754702
+1313754702
+1313754702
+1313754702
+1313755470
+1313754703
+1313754702
+1313754958
+1313754702
+1313754702
+1313754701
+1330466896
+1347440720
+1347506256
+1364283729
+1364283729
+1364282961
+1364282960
+1330531918
+1313754701
+1246316873
+1229539657
+1145521991
+1195787078
+1212762440
+1179208008
+1195853122
+1145454899
+858993459
+858993459
+858993459
+858993459
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754959
+1347440721
+1364283729
+1364283729
+1364283729
+1364283729
+1364283729
+1364283728
+1330531918
+1313754701
+1263159882
+1246382665
+1212630855
+1195853639
+1212696648
+1212696647
+1195853122
+1145454131
+858993459
+858993459
+858993459
+858993459
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1330597711
+1330597711
+1330597711
+1330597711
+1330597968
+1364283729
+1364283729
+1364283729
+1364283729
+1364283729
+1364283729
+1364283728
+1330531918
+1313754701
+1280002891
+1263225674
+1229473864
+1212696648
+1195853639
+1195853639
+1179076163
+1162231604
+875836468
+875836468
+875836468
+875836468
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1330597711
+1330597711
+1347440720
+1347440720
+1347440977
+1381126739
+1381126738
+1381126738
+1364283729
+1364283729
+1364283729
+1364283728
+1330531918
+1313754702
+1280068684
+1280068683
+1246316873
+1229539657
+1195853639
+1195853639
+1195918915
+1162297140
+875836468
+875836468
+875836468
+875836468
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754703
+1330663504
+1347440720
+1364283729
+1364283729
+1364283986
+1397970004
+1381126738
+1381126738
+1364283729
+1364283729
+1364283729
+1364283728
+1330531918
+1313754702
+1296911693
+1296911693
+1263225675
+1263225674
+1229473864
+1212696648
+1195919172
+1179074613
+892679477
+892679477
+892679477
+892679477
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754703
+1330663504
+1347440721
+1364349522
+1381126738
+1381126995
+1414813013
+1397969747
+1397969747
+1364283729
+1364283729
+1364283729
+1364283728
+1330531918
+1313754702
+1313754702
+1313754702
+1280068684
+1280068683
+1246316873
+1229539657
+1212761925
+1179140149
+892679477
+892679477
+892679477
+892679477
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754703
+1347506513
+1364283730
+1381192531
+1397969747
+1397970004
+1431655765
+1414746963
+1397969747
+1364283729
+1364283729
+1364283729
+1364283728
+1330531918
+1313754702
+1330597711
+1330597710
+1296845900
+1280068684
+1263225675
+1263225674
+1229539397
+1195917622
+909522486
+909522486
+909522486
+909522486
+1330597711
+1330597711
+1330597711
+1330597711
+1330597711
+1330597712
+1364349522
+1381126739
+1414878549
+1431655765
+1415009878
+1498961494
+1381126992
+1431328337
+1330597714
+1313886287
+1330794063
+1364086863
+1313689166
+1279937615
+1296977743
+1296846415
+1296911693
+1313754702
+1296977229
+1296911692
+1229539141
+1195917365
+892679477
+892679477
+892679477
+892679477
+1364283729
+1364283729
+1364283729
+1364283729
+1364283729
+1364283730
+1398035540
+1414812757
+1431721558
+1448498772
+1415140949
+1549292115
+1398035536
+1514953554
+1364021590
+1330730061
+1314409295
+1431130448
+1347440978
+1296649295
+1330598481
+1313689425
+1330531919
+1330597968
+1347374927
+1313754700
+1229539142
+1246445875
+858993459
+858993459
+858993459
+858993459
+1397969747
+1397969747
+1397969747
+1397969747
+1397969747
+1397969748
+1414878549
+1431655766
+1448564567
+1465341780
+1347768654
+1448299860
+1482445658
+1548573010
+1531992923
+1515478869
+1432572246
+1582454874
+1532581978
+1481921623
+1448499031
+1448499030
+1364152144
+1364283985
+1347309134
+1296911436
+1263290954
+1313817654
+909522486
+909522486
+909522486
+909522486
+1431655765
+1431655765
+1431655765
+1431655765
+1431655765
+1431655765
+1448498774
+1448498774
+1465341783
+1465341781
+1449024087
+1566201695
+1364281689
+1531466322
+1379947848
+1464031565
+1297828174
+1447776338
+1380797006
+1364086094
+1313688908
+1246316875
+1330729554
+1397969746
+1330531917
+1296845899
+1263225161
+1296974644
+875836468
+875836468
+875836468
+875836468
+1465341783
+1465341783
+1465341783
+1465341783
+1465341783
+1465341783
+1465341783
+1465341783
+1465341783
+1465341779
+1381784922
+1582912864
+1633379432
+2136502122
+1598513999
+1783393373
+1499878748
+1700487778
+1616665696
+1616666208
+1616995424
+1498831195
+1465210197
+1431655764
+1397903953
+1364217936
+1313754445
+1364280888
+943208504
+943208504
+943208504
+943208504
+1482184792
+1482184792
+1482184792
+1482184792
+1482184792
+1482184792
+1482184792
+1482184792
+1465341783
+1465341784
+2089850516
+-1785952621
+-1836737402
+-1300783478
+-1753705598
+-1669422952
+2123399304
+-1802792046
+-1869572974
+-2004843121
+-2054252652
+-1970827109
+1482184792
+1482184535
+1482184791
+1465341527
+1482250328
+1549619779
+1128481603
+1128481603
+1128481603
+1128481603
+1499027801
+1499027801
+1499027801
+1499027801
+1499027801
+1499027801
+1499027801
+1499027801
+1465341783
+1465341785
+2005833106
+-1887141745
+-1785947271
+-1552571764
+-1467311212
+-1551129179
+-2087418482
+-1701668201
+-1852664175
+-2123007096
+2072482707
+-1936942939
+1532713819
+1515870554
+1532779611
+1532648026
+1499093080
+1549619779
+1128481603
+1128481603
+1128481603
+1128481603
+1482184792
+1482184792
+1482184792
+1482184792
+1482184792
+1482184793
+1499093594
+1515870809
+1482118999
+1465341787
+1837468033
+2087875204
+1752064596
+1752275605
+-1989184649
+1952806010
+1618043497
+1953198703
+1734699367
+1565808994
+1667590764
+1819177847
+1600019805
+1549491035
+1549556827
+1532648024
+1431523922
+1448496189
+1027423549
+1027423549
+1027423549
+1027423549
+1482184792
+1482184792
+1482184792
+1482184792
+1482184792
+1482184793
+1499093594
+1515870809
+1465275991
+1465407575
+1499817566
+1464685669
+1180514889
+1233694645
+1985631582
+1414091097
+1365069654
+1582586713
+1431393371
+1532517475
+1684168801
+1684366177
+1583242589
+1549556827
+1515870553
+1482184791
+1448432467
+1448561725
+1027423549
+1027423549
+1027423549
+1027423549
+1465341783
+1465341783
+1465341783
+1465341783
+1465341783
+1465341783
+1482250843
+1532647767
+1465341783
+1482185047
+1381323857
+1364414804
+1431522650
+-1832735104
+1734366035
+1381454931
+1398298197
+1465275993
+1566663007
+1583308896
+1633508188
+1566399579
+1549688157
+1549491033
+1482118999
+1465341782
+1448498515
+1465338685
+1027423549
+1027423549
+1027423549
+1027423549
+1465341783
+1465341783
+1465341783
+1465341783
+1465341783
+1465341784
+1482250842
+1515870553
+1499027801
+1499027543
+1448432981
+1431655762
+1330860884
+1838126211
+-1702400418
+1499159645
+1566465630
+1583242847
+1600151648
+1616928863
+1566334044
+1549556828
+1566399580
+1549491034
+1482118999
+1465341783
+1465341268
+1465338685
+1027423549
+1027423549
+1027423549
+1027423549
+1482184792
+1482184792
+1482184792
+1482184792
+1482184792
+1482184793
+1532779354
+1515936860
+1532713561
+1482118740
+1364152143
+1330597708
+1314479439
+1095262844
+-1904120738
+1532978277
+1633640287
+1600085855
+1566399837
+1566399837
+1549556828
+1549556828
+1566399836
+1549556570
+1498962008
+1482184792
+1482184276
+1465338941
+1027423549
+1027423549
+1027423549
+1027423549
+1482184792
+1482184792
+1482184792
+1482184792
+1482184792
+1482184793
+1549556313
+1499094108
+1515739223
+1465275989
+1397903954
+1381126738
+1449157713
+739848533
+1633508187
+1566597728
+1566268251
+1532713819
+1549556828
+1549556828
+1566399837
+1566399837
+1583242589
+1566334043
+1498962008
+1482184792
+1482184277
+1482181694
+1044266558
+1044266558
+1044266558
+1044266558
+1499027801
+1499027801
+1499027801
+1499027801
+1499027801
+1499027801
+1482184534
+1448564824
+1499093595
+1532779613
+1600085855
+1600085855
+1600152407
+873666872
+1331191393
+1616730456
+1499093594
+1515870811
+1549622621
+1566399837
+1566399837
+1566399838
+1583242846
+1566399579
+1515805017
+1499027801
+1499027285
+1499024702
+1044266558
+1044266558
+1044266558
+1044266558
+1499027801
+1499027801
+1499027801
+1499027801
+1499027801
+1499027800
+1448499032
+1482118744
+1549754465
+1650680932
+1650614882
+1650614882
+1616600411
+1160059683
+1448829025
+1566202460
+1549556828
+1549556829
+1566465630
+1583242846
+1583242846
+1583242846
+1600085854
+1583177052
+1515805017
+1499027801
+1499027286
+1499024703
+1061109567
+1061109567
+1061109567
+1061109567
+1515870810
+1515870810
+1515870810
+1515870810
+1515870810
+1515870810
+1532846435
+1667325277
+1633903459
+1667458146
+1599954269
+1566399838
+1583111260
+1278420002
+1213225308
+1515806048
+1599954269
+1566399837
+1583242846
+1583242846
+1583242846
+1583242847
+1600085855
+1583242588
+1532648026
+1515870810
+1515870294
+1515867711
+1061109567
+1061109567
+1061109567
+1061109567
+1549556828
+1549556828
+1549556828
+1549556828
+1549556828
+1549556829
+1634035822
+1852335459
+1650549089
+1616928607
+1583242846
+1583242846
+1633837404
+1261774886
+994662239
+1583045212
+1549556828
+1549556828
+1566465630
+1583242846
+1600085855
+1600085856
+1616928864
+1600085854
+1549491035
+1532713819
+1515870295
+1515867711
+1061109567
+1061109567
+1061109567
+1061109567
+1600085855
+1600085855
+1600085855
+1600085855
+1600085855
+1600085856
+1633837921
+1633903201
+1616928863
+1600020062
+1583242846
+1583242846
+1617126750
+1329344043
+843141212
+1633705307
+1532779612
+1549556829
+1583242846
+1583242847
+1616994657
+1633771873
+1633771873
+1633771872
+1583242845
+1566334043
+1532713047
+1515867968
+1077952576
+1077952576
+1077952576
+1077952576
+1583242846
+1583242846
+1583242846
+1583242846
+1583242846
+1583242846
+1583242846
+1583242846
+1600085855
+1600085855
+1600085855
+1600085854
+1600217951
+1413755949
+826100825
+1633836892
+1549622621
+1566399838
+1583308639
+1600085856
+1616994657
+1633771873
+1616928864
+1616928864
+1600020062
+1566399580
+1532713303
+1515867968
+1077952576
+1077952576
+1077952576
+1077952576
+1515870810
+1515870810
+1515870810
+1515870810
+1515870810
+1515870811
+1549622621
+1566399838
+1583308639
+1600085855
+1600085855
+1600085855
+1583243104
+1548762673
+825968983
+1617059677
+1566465630
+1583242847
+1600151648
+1616928864
+1633771873
+1633771873
+1600085855
+1600085855
+1583242845
+1566334044
+1532713304
+1532710720
+1077952576
+1077952576
+1077952576
+1077952576
+1499027801
+1499027801
+1499027801
+1499027801
+1499027801
+1499027802
+1532779612
+1549556829
+1583308639
+1600085855
+1600085855
+1600085855
+1599954530
+1683638070
+809060437
+1583439967
+1583308639
+1600085855
+1616928864
+1616928864
+1633771873
+1633771872
+1600020062
+1583242846
+1600020062
+1566399580
+1549556312
+1532710977
+1094795585
+1094795585
+1094795585
+1094795585
+1515870810
+1515870810
+1515870810
+1515870810
+1515870810
+1515870811
+1532779612
+1549556829
+1583308639
+1600085855
+1600085855
+1600085856
+1616797284
+1734232118
+825902933
+1583439967
+1600151648
+1616928864
+1633771873
+1633771873
+1650614882
+1650614881
+1616863071
+1600085855
+1616863071
+1583242589
+1549556313
+1549553730
+1111638594
+1111638594
+1111638594
+1111638594
+1549556828
+1549556828
+1549556828
+1549556828
+1549556828
+1549556828
+1566399837
+1566399838
+1583308639
+1600085855
+1600085855
+1600085856
+1633640547
+1683439921
+826034261
+1583439968
+1616994657
+1633771873
+1633771873
+1633771874
+1667523684
+1684300900
+1650614882
+1650614882
+1650549089
+1616928607
+1566399321
+1549553986
+1111638594
+1111638594
+1111638594
+1111638594
+1549556828
+1549556828
+1549556828
+1549556828
+1549556828
+1549556829
+1566465630
+1583242846
+1600085855
+1600085855
+1600085855
+1600085855
+1616863329
+1548498213
+893340246
+1583439968
+1633837666
+1650614882
+1650614882
+1650614883
+1701209702
+1717986918
+1701143909
+1701143909
+1684235107
+1650614624
+1583176538
+1566396739
+1128481603
+1128481603
+1128481603
+1128481603
+1515870810
+1515870810
+1515870810
+1515870810
+1515936860
+1532582493
+1566400095
+1600151649
+1600086113
+1616863586
+1616797536
+1633771615
+1583112286
+1413622554
+993938516
+1600151137
+1633771874
+1650549347
+1650549089
+1667523685
+1734895719
+1734829926
+1718052711
+1734829926
+1701143652
+1650615138
+1600019289
+1549619522
+1111638594
+1111638594
+1111638594
+1111638594
+1515870810
+1515870810
+1515870810
+1515870810
+1515805532
+1498765404
+1549491037
+1600151648
+1599954785
+1616732003
+1600020321
+1684234592
+1566072666
+890971188
+1076570445
+1633508450
+1667194723
+1684103525
+1684168801
+1667655269
+1718118759
+1734961768
+1734830184
+1751672678
+1717986916
+1667392354
+1633771097
+1549751104
+1077952576
+1077952576
+1077952576
+1077952576
+1650614882
+1650614882
+1650614882
+1650614882
+1650219612
+1549426017
+1599822426
+1532713563
+1566267997
+1549293147
+1583308898
+1684299873
+1633378134
+807019571
+1093479498
+1600020069
+1684037988
+1701012326
+1734697827
+1684300642
+1650746726
+1751870571
+1751672937
+1768450151
+1701144166
+1684169056
+1634034784
+1667519807
+1061109567
+1061109567
+1061109567
+1061109567
+1195853639
+1195853639
+1195853639
+1195853639
+1195459147
+1364018757
+1347506774
+1549886310
+1785094757
+1700814432
+1616731229
+1600085084
+1548964681
+655629866
+774121539
+1482382690
+1667392355
+1684366437
+1734961255
+1717921125
+1701078116
+1684234852
+1718118504
+1751672935
+1717921382
+1684234334
+1583637858
+1684296766
+1044266558
+1044266558
+1044266558
+1044266558
+875836468
+875836468
+875836468
+875836468
+875773007
+1498364718
+741291072
+1365338735
+1886219115
+1768452215
+1919708012
+1869639535
+1767394876
+436933657
+488582468
+1448893532
+1583571549
+1566794848
+1617192549
+1667392873
+1802070379
+1785161576
+1751606886
+1717987176
+1734697826
+1667391839
+1634100574
+1600214339
+1128481603
+1128481603
+1128481603
+1128481603
+741092396
+741092396
+741092396
+741092396
+741095242
+1397306919
+471473966
+1146643560
+1802201961
+1684635024
+-1802531184
+-1801938277
+-1921952199
+454700855
+1095720811
+1954050923
+1785818206
+1584164968
+1684498789
+1599955557
+1599559775
+1633574757
+1717920867
+1667523943
+1734631519
+1650680673
+1667785819
+1516131912
+1212696648
+1212696648
+1212696648
+1212696648
+858993459
+858993459
+858993459
+858993459
+858928703
+1128217661
+1010251070
+1331652459
+1886416748
+1768982426
+-1651075946
+-1667062105
+-1770694590
+961772683
+-1750750305
+-1734568053
+-2037612182
+1770031745
+2054978160
+1683973745
+1986948207
+1801477475
+1734763619
+1667524198
+1667260001
+1718051678
+1550017628
+1515934018
+1111638594
+1111638594
+1111638594
+1111638594
+1296911693
+1296911693
+1296911693
+1296911693
+1296978259
+1347311458
+1632980561
+1550281581
+1835557216
+1634104188
+2003790957
+1920499071
+2002999384
+1670100929
+-959660391
+-2037476468
+-1953333151
+1618907015
+-2071625100
+1683974517
+-1499884652
+-1954975116
+1852401253
+1701210471
+1532583784
+1869439575
+1500083830
+1936480065
+1094795585
+1094795585
+1094795585
+1094795585
+1229539657
+1229539657
+1229539657
+1229539657
+1229936732
+1363892835
+1599292999
+1381785953
+1514880832
+1162299466
+1246118724
+1212960596
+1599822958
+2074065336
+-1212506774
+1314941294
+1904043847
+1164410232
+1954116200
+1532519536
+-2038596736
+2104453747
+1869442152
+1751870057
+1398169452
+1987010134
+1685754520
+-1819841457
+1330597711
+1330597711
+1330597711
+1330597711
+1263225675
+1263225675
+1263225675
+1263225675
+1263622235
+1600084056
+1414291054
+1818977882
+1533240417
+1549294171
+1447837497
+1045191266
+1599296609
+-1968655185
+-1347244962
+1666011227
+1616599882
+1316194169
+1415012707
+1684300904
+1835756917
+1987212145
+1870822245
+1701471840
+1516069735
+1701077600
+1819902606
+-1836749475
+1566399837
+1566399837
+1566399837
+1566399837
+1330597711
+1330597711
+1330597711
+1330597711
+1330597710
+1279870533
+1077561689
+1465209670
+1027489855
+1027490375
+1195456822
+994332246
+1430735983
+-1818057048
+-1397510816
+1548832090
+1633706597
+2040439940
+1213225830
+1802135139
+1650616433
+1936616555
+1904639070
+1499487582
+1718382449
+1920036975
+1835690609
+1986877252
+1145324612
+1145324612
+1145324612
+1145324612
+1212696648
+1212696648
+1212696648
+1212696648
+1212564287
+993539896
+925974351
+1296780094
+825110062
+758199867
+1010316340
+960381768
+1228820354
+-1566663259
+-1430867872
+1330596172
+1515939456
+-1462845816
+1111903314
+1448564564
+1381129063
+1784897115
+1652059466
+1078479697
+1465605472
+1633771617
+1852070492
+1667123766
+909522486
+909522486
+909522486
+909522486
+892679477
+892679477
+892679477
+892679477
+892679477
+892613686
+892222285
+1229276991
+875440679
+623324206
+757803821
+825504820
+892751740
+-1768647265
+-1430539678
+1044790068
+909923452
+-1378831761
+1229209146
+994134089
+1128418649
+1532119363
+1231182390
+691025726
+1128547655
+1195853382
+1077291819
+791552534
+370546198
+370546198
+370546198
+370546198
+505290270
+505290270
+505290270
+505290270
+505488939
+774712107
+656223038
+942748464
+656415511
+370612763
+454761503
+589504540
+506217564
+1853655446
+-1413565336
+792341018
+354368867
+-1968863931
+1279737658
+977291339
+1077888847
+1279144748
+877743401
+438116386
+471341337
+421009178
+539041052
+505289754
+437918234
+437918234
+437918234
+437918234
+269488144
+269488144
+269488144
+269488144
+269752863
+538843930
+403578418
+706617120
+488117267
+353835032
+404166426
+488446485
+405289281
+1281654932
+-1262636431
+657530385
+320944978
+1769759533
+1010646592
+1111770695
+1162102603
+1144334883
+726156321
+303108373
+404363802
+437918232
+353703961
+421009432
+404232216
+404232216
+404232216
+404232216
+320017171
+320017171
+320017171
+320017171
+320149273
+420942870
+369958452
+706287900
+488249112
+471801373
+471537946
+471669787
+488844597
+994998175
+-1246253444
+674241817
+522992967
+1416124976
+791885627
+1027489344
+1145390923
+1212037173
+911297580
+556016675
+471407131
+488579360
+471539233
+572397071
+252645135
+252645135
+252645135
+252645135
+387389207
+387389207
+387389207
+387389207
+387455257
+404232219
+437133622
+706286874
+420811285
+404296981
+421074197
+387455004
+471343659
+825585060
+-1230067327
+724836639
+573191740
+1130125107
+943142196
+876034622
+1077887819
+1313623118
+1265000772
+1061702482
+1583704169
+1802400115
+2054911869
+2105305688
+1482184792
+1482184792
+1482184792
+1482184792
+437918234
+437918234
+437918234
+437918234
+438050077
+454696480
+236727092
+824516635
+437852182
+387455775
+538645268
+539766056
+775372339
+271149990
+-1180461430
+1817861468
+1566201177
+1921285742
+2072020620
+-1869507949
+-1785293420
+-1802201706
+-1734699376
+-1869178730
+-1785623156
+-1936813934
+-1768253559
+-1801878688
+1616928864
+1616928864
+1616928864
+1616928864
+572662306
+572662306
+572662306
+572662306
+572860199
+623192110
+909984325
+1178878274
+1347902562
+1718052455
+1988002949
+-2037871990
+-2021427119
+640969873
+-1062295650
+-2055436924
+-2071029868
+-1852599410
+-2021226615
+-1970500467
+-1903260018
+-1903260019
+-1936616564
+-2020896624
+-1920367231
+2139062656
+1886946697
+-2140251313
+1330597711
+1330597711
+1330597711
+1330597711
+-1734829928
+-1734829928
+-1734829928
+-1734829928
+-1734698343
+-1734829414
+-1836547454
+-1987080308
+-1970631794
+-1869640312
+-2020566119
+-1886876523
+-1734964892
+1282054051
+-1567055968
+-1869834859
+-1835821932
+-1768452476
+-1768715130
+-2105507713
+1835822446
+1869573996
+1819571816
+1566732927
+1667259223
+1431590487
+1482518908
+1647715889
+825307441
+825307441
+825307441
+825307441
+-2004318072
+-2004318072
+-2004318072
+-2004318072
+-2004318589
+-2105441401
+-1853259903
+-1953328752
+-1819046519
+-2004119407
+-1869441387
+-1954513022
+-2088270476
+2024261823
+1482255484
+2004318321
+1937077103
+1835887464
+-2021756572
+1515607637
+1414813529
+1532713821
+1769436768
+1314288265
+1717854301
+1532780130
+1852534644
+1580672040
+673720360
+673720360
+673720360
+673720360
+-1819044973
+-1819044973
+-1819044973
+-1819044973
+-1819243384
+-2021161082
+-2105837958
+-2105180035
+-2104981372
+-2138994549
+-2021620335
+-1803127703
+1701604962
+1770885743
+673658954
+1365007954
+1651998826
+1161252464
+2138664031
+1448301657
+1600349544
+1785490797
+1904182128
+1549694343
+2088269172
+1953987199
+-2054979968
+-2072223933
+1128481603
+1128481603
+1128481603
+1128481603
+-1920103027
+-1920103027
+-1920103027
+-1920103027
+-1920433280
+-2138996352
+2105310334
+2138995316
+1954383487
+1801016148
+1364222592
+-1921361077
+1246909516
+1298092067
+589046317
+945055846
+2005042028
+1228359780
+-1970897032
+1970698617
+1970500726
+2038268033
+1904579208
+1970107256
+1970368367
+1886680954
+2105837196
+-1548775843
+1566399837
+1566399837
+1566399837
+1566399837
+1600085855
+1600085855
+1600085855
+1600085855
+1599755604
+1465605470
+1650944098
+1515740517
+1921223801
+1361976861
+1179610253
+-1803589792
+1566466400
+1651400502
+538714662
+794065796
+-2055374989
+1784502622
+2054780790
+1987672956
+2037806711
+2072086151
+-1936022114
+-1887141763
+2037806195
+1953987450
+2072547212
+-1784970659
+1566399837
+1566399837
+1566399837
+1566399837
+1970632053
+1970632053
+1970632053
+1970632053
+1970301549
+1937341563
+2038070386
+1684172668
+-1969841536
+1361648675
+1062103681
+-2123733653
+1818848107
+1785750601
+236463398
+676495761
+1887143306
+-2106166408
+2054649975
+2004384122
+2088466810
+-2138468462
+-1902996341
+-2139391881
+2004383347
+1920235387
+-1952998263
+2071029074
+1381126738
+1381126738
+1381126738
+1381126738
+1650614882
+1650614882
+1650614882
+1650614882
+1650615137
+1616862817
+1853653113
+1886618517
+-1905632657
+2070831716
+1280994939
+2054647918
+1903194482
+1903126879
+337322528
+590832518
+-1853322353
+-1920565384
+1987541111
+1987409785
+2054715774
+-2037542515
+-2021358979
+2020963443
+1953854579
+1920235901
+-1634432384
+1869505099
+1263225675
+1263225675
+1263225675
+1263225675
+1920103026
+1920103026
+1920103026
+1920103026
+1920103026
+1920168818
+1937077879
+2089393323
+2087415697
+-1431855202
+1768978813
+2071426163
+1937012085
+1953656685
+841291283
+642677911
+-1684960376
+-2004517771
+1920235125
+1953789814
+1920170885
+-1936881535
+2071558006
+1953657200
+1903260020
+2038400139
+-1887010953
+1852859977
+1229539657
+1229539657
+1229539657
+1229539657
+1953789044
+1953789044
+1953789044
+1953789044
+1953789302
+2004384121
+2020962932
+2072284562
+2004453538
+-1229476704
+-2038070402
+2037740919
+2004317813
+1953723504
+1497047589
+1181847964
+-1853391238
+2037937008
+1903457652
+1920103797
+1987806607
+-1870103951
+1886548593
+1903194223
+1835690867
+2139721356
+-2106166675
+1752065092
+1145324612
+1145324612
+1145324612
+1145324612
+1903260017
+1903260017
+1903260017
+1903260017
+1903260018
+1920168820
+1937012344
+2037871214
+-1886021220
+-1616997495
+-2004253828
+2004120692
+1953723250
+1920103025
+1750683997
+2005634952
+2088071279
+1886416493
+1903457394
+1869574777
+-2071229044
+-2021888151
+1785490798
+1869640050
+1869311093
+-2087808628
+2054254700
+1785947713
+1094795585
+1094795585
+1094795585
+1094795585
+2088533116
+2088533116
+2088533116
+2088533116
+2088467323
+2054781301
+1852864638
+-2138996350
+-1515807345
+-1970368889
+-2122417545
+1970566001
+1852797299
+1936879725
+1819509135
+-1802534023
+1920037234
+1936879726
+1836020080
+1903458688
+-1819244417
+2004054643
+1953855353
+2071887746
+-2038136183
+-1801741419
+-1920497533
+-2104788401
+1330597711
+1330597711
+1330597711
+1330597711
+-2071690108
+-2071690108
+-2071690108
+-2071690108
+-2071756159
+-2139127941
+1953657976
+2139855010
+-1533178500
+1987871616
+2003989107
+1970631279
+1836020341
+1987342959
+1954714777
+-1853588360
+1953789302
+1987342703
+1869640823
+2089061780
+-1768781440
+2088732559
+-1785226852
+-1616730969
+-1414879061
+-1330400850
+-1381126488
+-1481598358
+1785358954
+1785358954
+1785358954
+1785358954
+2088533116
+2088533116
+2088533116
+2088533116
+2088467323
+2071690107
+2054385266
+-2138006368
+-1702068876
+1852599665
+1920036979
+1987540081
+1869574258
+1937012089
+-2071031411
+-2072150916
+2071624314
+2071756416
+-2088334963
+-1818515799
+-1516002398
+-1583043919
+-1246184771
+-1060911674
+-960117307
+-976894780
+-976762686
+-1043680899
+2105376125
+2105376125
+2105376125
+2105376125
+1987475062
+1987475062
+1987475062
+1987475062
+1987343477
+1987474806
+1987275896
+-1902339177
+-1903985541
+2020699761
+1920036978
+1970697330
+1852599148
+1869903737
+-1651274619
+-2122219648
+-2105112698
+-2003789926
+-1583242075
+-1447970629
+-1212431929
+-960248893
+-1044266042
+-926233395
+-825438772
+-892613429
+-858993207
+-942556545
+2139062143
+2139062143
+2139062143
+2139062143
+2004318071
+2004318071
+2004318071
+2004318071
+2004185714
+1953788528
+1937210761
+-1616998522
+-2122614407
+2020897136
+1903194226
+1953920884
+1936814452
+2072285076
+-1802202739
+-1919902813
+-1482514525
+-1414549325
+-1111375421
+-1010579769
+-976761909
+-875770936
+-960116792
+-892547633
+-808729662
+-943010614
+-875705908
+-925777283
+2105376125
+2105376125
+2105376125
+2105376125
+2071690107
+2071690107
+2071690107
+2071690107
+2071426163
+1953788526
+1887142285
+-1634237829
+1987409269
+1970632309
+1920103543
+2055044993
+-2088467063
+-1852070487
+-1431787869
+-1566134602
+-1145456710
+-1043937595
+-976828473
+-926365239
+-943208505
+-943208505
+-976894265
+-909456435
+-876233285
+-1043937337
+-926169397
+-959462278
+2054847098
+2054847098
+2054847098
+2054847098
+2038004089
+2038004089
+2038004089
+2038004089
+2037806196
+1970697845
+2089388944
+-1718781579
+1953855353
+2088731010
+-2105309558
+-1902996070
+-1616797018
+-1397375550
+-1027555911
+-1229406267
+-960249918
+-909193523
+-875902262
+-909522488
+-943274298
+-960051514
+-976894265
+-926299700
+-859323968
+-993474104
+-909392181
+-959462278
+2054847098
+2054847098
+2054847098
+2054847098
+1970632053
+1970632053
+1970632053
+1970632053
+1970631797
+2021425027
+-1784702830
+-1802929025
+-2122086774
+-1886152806
+-1650416730
+-1431457869
+-1229473606
+-1060647471
+-808662846
+-1094794041
+-960447298
+-993408310
+-875836727
+-926431546
+-993737532
+-993737532
+-976894522
+-943208245
+-791688503
+-858795827
+-875837749
+-959462278
+2054847098
+2054847098
+2054847098
+2054847098
+2004318071
+2004318071
+2004318071
+2004318071
+2004384380
+-2138665839
+-1397908080
+-1802399848
+-1667457117
+-1465012045
+-1212564804
+-1094663742
+-1027489341
+-942878253
+-791820094
+-1111637307
+-994133574
+-1060714553
+-926299961
+-976960574
+-1010580541
+-1010580541
+-993737275
+-976828727
+-842085172
+-842018867
+-892614965
+-959462278
+2054847098
+2054847098
+2054847098
+2054847098
+-2088533117
+-2088533117
+-2088533117
+-2088533117
+-2088401015
+-1919706203
+-1347379564
+-1599690059
+-1229604934
+-1128283710
+-993737531
+-976894267
+-993803581
+-976630578
+-842283328
+-1128480315
+-1044728651
+-1161772350
+-976828988
+-1010712128
+-1044266559
+-1044266558
+-1010514748
+-993737531
+-976828730
+-960051513
+-926169397
+-959462278
+2054847098
+2054847098
+2054847098
+2054847098
+-1768515946
+-1768515946
+-1768515946
+-1768515946
+-1768384102
+-1683969872
+-1229543257
+-1178550587
+-960117307
+-976894266
+-976894523
+-976894523
+-1010580798
+-1010448439
+-909655106
+-1145257275
+-1027951693
+-1178680894
+-1010514749
+-1027489344
+-1061109568
+-1061109567
+-1010514748
+-1010580541
+-1027291707
+-976960572
+-926169397
+-959462278
+2054847098
+2054847098
+2054847098
+2054847098
+-1532713820
+-1532713820
+-1532713820
+-1532713820
+-1532581979
+-1532514377
+-1111509062
+-825112631
+-875836728
+-943340349
+-1010514748
+-976894266
+-993803582
+-1027291706
+-960183876
+-1162034489
+-943605063
+-1077557306
+-976960317
+-1010646335
+-1061175361
+-1077952576
+-1010515005
+-1010580798
+-976696630
+-909588537
+-909392181
+-959462278
+2054847098
+2054847098
+2054847098
+2054847098
+-1532713820
+-1532713820
+-1532713820
+-1532713820
+-1532581979
+-1532514377
+-1111509062
+-825112631
+-875836728
+-943340349
+-1010514748
+-976894266
+-993803582
+-1027291706
+-960183876
+-1162034489
+-943605063
+-1077557306
+-976960317
+-1010646335
+-1061175361
+-1077952576
+-1010515005
+-1010580798
+-976696630
+-909588537
+-909392181
+-959462278
+2054847098
+2054847098
+2054847098
+2054847098
+-1532713820
+-1532713820
+-1532713820
+-1532713820
+-1532581979
+-1532514377
+-1111509062
+-825112631
+-875836728
+-943340349
+-1010514748
+-976894266
+-993803582
+-1027291706
+-960183876
+-1162034489
+-943605063
+-1077557306
+-976960317
+-1010646335
+-1061175361
+-1077952576
+-1010515005
+-1010580798
+-976696630
+-909588537
+-909392181
+-959462278
+2054847098
+2054847098
+2054847098
+2054847098
+-1532713820
+-1532713820
+-1532713820
+-1532713820
+-1532581979
+-1532514377
+-1111509062
+-825112631
+-875836728
+-943340349
+-1010514748
+-976894266
+-993803582
+-1027291706
+-960183876
+-1162034489
+-943605063
+-1077557306
+-976960317
+-1010646335
+-1061175361
+-1077952576
+-1010515005
+-1010580798
+-976696630
+-909588537
+-909392181
+-959462278
+2054847098
+2054847098
+2054847098
+2054847098
+-1532713820
+-1532713820
+-1532713820
+-1532713820
+-1532581979
+-1532514377
+-1111509062
+-825112631
+-875836728
+-943340349
+-1010514748
+-976894266
+-993803582
+-1027291706
+-960183876
+-1162034489
+-943605063
+-1077557306
+-976960317
+-1010646335
+-1061175361
+-1077952576
+-1010515005
+-1010580798
+-976696630
+-909588537
+-909392181
+-959462278
+2054847098
+2054847098
+2054847098
+2054847098
+-1532713820
+-1532713820
+-1532713820
+-1532713820
+-1532581979
+-1532514377
+-1111509062
+-825112631
+-875836728
+-943340349
+-1010514748
+-976894266
+-993803582
+-1027291706
+-960183876
+-1162034489
+-943605063
+-1077557306
+-976960317
+-1010646335
+-1061175361
+-1077952576
+-1010515005
+-1010580798
+-976696630
+-909588537
+-909392181
+-959462278
+2054847098
+2054847098
+2054847098
+2054847098
+-1532713820
+-1532713820
+-1532713820
+-1532713820
+-1532581979
+-1532514377
+-1111509062
+-825112631
+-875836728
+-943340349
+-1010514748
+-976894266
+-993803582
+-1027291706
+-960183876
+-1162034489
+-943605063
+-1077557306
+-976960317
+-1010646335
+-1061175361
+-1077952576
+-1010515005
+-1010580798
+-976696630
+-909588537
+-909392181
+-959462278
+2054847098
+2054847098
+2054847098
+2054847098
+-1532713820
+-1532713820
+-1532713820
+-1532713820
+-1532581979
+-1532514377
+-1111509062
+-825112631
+-875836728
+-943340349
+-1010514748
+-976894266
+-993803582
+-1027291706
+-960183876
+-1162034489
+-943605063
+-1077557306
+-976960317
+-1010646335
+-1061175361
+-1077952576
+-1010515005
+-1010580798
+-976696630
+-909588537
+-909392181
+-959462278
+2054847098
+2054847098
+2054847098
+2054847098
+-1532713820
+-1532713820
+-1532713820
+-1532713820
+-1532581979
+-1532514377
+-1111509062
+-825112631
+-875836728
+-943340349
+-1010514748
+-976894266
+-993803582
+-1027291706
+-960183876
+-1162034489
+-943605063
+-1077557306
+-976960317
+-1010646335
+-1061175361
+-1077952576
+-1010515005
+-1010580798
+-976696630
+-909588537
+-909392181
+-959462278
+2054847098
+2054847098
+2054847098
+2054847098
+-1532713820
+-1532713820
+-1532713820
+-1532713820
+-1532581979
+-1532514377
+-1111509062
+-825112631
+-875836728
+-943340349
+-1010514748
+-976894266
+-993803582
+-1027291706
+-960183876
+-1162034489
+-943605063
+-1077557306
+-976960317
+-1010646335
+-1061175361
+-1077952576
+-1010515005
+-1010580798
+-976696630
+-909588537
+-909392181
+-959462278
+2054847098
+2054847098
+2054847098
+2054847098
+-1532713820
+-1532713820
+-1532713820
+-1532713820
+-1532581979
+-1532514377
+-1111509062
+-825112631
+-875836728
+-943340349
+-1010514748
+-976894266
+-993803582
+-1027291706
+-960183876
+-1162034489
+-943605063
+-1077557306
+-976960317
+-1010646335
+-1061175361
+-1077952576
+-1010515005
+-1010580798
+-976696630
+-909588537
+-909392181
+-959462278
+2054847098
+2054847098
+2054847098
+2054847098
+-1532713820
+-1532713820
+-1532713820
+-1532713820
+-1532581979
+-1532514377
+-1111509062
+-825112631
+-875836728
+-943340349
+-1010514748
+-976894266
+-993803582
+-1027291706
+-960183876
+-1162034489
+-943605063
+-1077557306
+-976960317
+-1010646335
+-1061175361
+-1077952576
+-1010515005
+-1010580798
+-976696630
+-909588537
+-909392181
+-959462278
+2054847098
+2054847098
+2054847098
+2054847098
+-1532713820
+-1532713820
+-1532713820
+-1532713820
+-1532581979
+-1532514377
+-1111509062
+-825112631
+-875836728
+-943340349
+-1010514748
+-976894266
+-993803582
+-1027291706
+-960183876
+-1162034489
+-943605063
+-1077557306
+-976960317
+-1010646335
+-1061175361
+-1077952576
+-1010515005
+-1010580798
+-976696630
+-909588537
+-909392181
+-959462278
+2054847098
+2054847098
+2054847098
+2054847098
+-1532713820
+-1532713820
+-1532713820
+-1532713820
+-1532581979
+-1532514377
+-1111509062
+-825112631
+-875836728
+-943340349
+-1010514748
+-976894266
+-993803582
+-1027291706
+-960183876
+-1162034489
+-943605063
+-1077557306
+-976960317
+-1010646335
+-1061175361
+-1077952576
+-1010515005
+-1010580798
+-976696630
+-909588537
+-909392181
+-959462278
+2054847098
+2054847098
+2054847098
+2054847098
+-1532713820
+-1532713820
+-1532713820
+-1532713820
+-1532581979
+-1532514377
+-1111509062
+-825112631
+-875836728
+-943340349
+-1010514748
+-976894266
+-993803582
+-1027291706
+-960183876
+-1162034489
+-943605063
+-1077557306
+-976960317
+-1010646335
+-1061175361
+-1077952576
+-1010515005
+-1010580798
+-976696630
+-909588537
+-909392181
+-959462278
+2054847098
+2054847098
+2054847098
+2054847098
+-1532713820
+-1532713820
+-1532713820
+-1532713820
+-1532581979
+-1532514377
+-1111509062
+-825112631
+-875836728
+-943340349
+-1010514748
+-976894266
+-993803582
+-1027291706
+-960183876
+-1162034489
+-943605063
+-1077557306
+-976960317
+-1010646335
+-1061175361
+-1077952576
+-1010515005
+-1010580798
+-976696630
+-909588537
+-909392181
+-959462278
+2054847098
+2054847098
+2054847098
+2054847098
+-1532713820
+-1532713820
+-1532713820
+-1532713820
+-1532581979
+-1532514377
+-1111509062
+-825112631
+-875836728
+-943340349
+-1010514748
+-976894266
+-993803582
+-1027291706
+-960183876
+-1162034489
+-943605063
+-1077557306
+-976960317
+-1010646335
+-1061175361
+-1077952576
+-1010515005
+-1010580798
+-976696630
+-909588537
+-909392181
+-959462278
+2054847098
+2054847098
+2054847098
+2054847098
+2105376125
+2105376125
+2097886545
+1979765880
+805329823
+-1890233338
+1962996991
+-1305342447
+932648425
+1813538963
+241819054
+-1132150764
+1917808449
+2116366362
+437918234
+437918234
+2105376125
+2105376125
+2097886545
+1979765880
+805329823
+-1890233338
+1962996991
+-1305342447
+932648425
+1813538963
+241819054
+-1132150764
+1917808449
+2116366362
+437918234
+437918234
+2105376125
+2105376125
+2097886545
+1979765880
+805329823
+-1890233338
+1962996991
+-1305342447
+932648425
+1813538963
+241819054
+-1132150764
+1917808449
+2116366362
+437918234
+437918234
+2105376125
+2105376125
+2097886545
+1979765880
+805329823
+-1890233338
+1962996991
+-1305342447
+932648425
+1813538963
+241819054
+-1132150764
+1917808449
+2116366362
+437918234
+437918234
+2105376125
+2105376125
+2097886545
+1979765880
+805329823
+-1890233338
+1962996991
+-1305342447
+932648425
+1813538963
+241819054
+-1132150764
+1917808449
+2116366362
+437918234
+437918234
+2105376125
+2105376125
+2097886545
+1979765880
+805329823
+-1890233338
+1962996991
+-1305342447
+932648425
+1813538963
+241819054
+-1132150764
+1917808449
+2116366362
+437918234
+437918234
+2105376125
+2105376125
+2097886545
+1979765880
+805329823
+-1890233338
+1962996991
+-1305342447
+932648425
+1813538963
+241819054
+-1132150764
+1917808449
+2116366362
+437918234
+437918234
+2105376125
+2105376125
+2097886545
+1979765880
+805329823
+-1890233338
+1962996991
+-1305342447
+932648425
+1813538963
+241819054
+-1132150764
+1917808449
+2116366362
+437918234
+437918234
+2105376125
+2105376125
+2097886545
+1979765880
+805329823
+-1890233338
+1962996991
+-1305342447
+932648425
+1813538963
+241819054
+-1132150764
+1917808449
+2116366362
+437918234
+437918234
+1145324612
+1145324612
+1142274726
+-781855170
+-848539088
+-1452157521
+572413971
+1699889171
+1649779997
+963720117
+2035882255
+622337987
+-1089248640
+159310336
+0
+0
+656877351
+656877351
+657001398
+1562452868
+-1789152159
+-1081212127
+-1556411978
+-1073116924
+41786647
+-1620815543
+-1642260719
+35194826
+-1055826465
+123792319
+-1077952577
+-1077952577
+-1802201964
+-1802201964
+-1805051136
+-289535862
+1792400282
+-650721566
+2004942943
+2032729981
+811958573
+-1853543330
+154901929
+600786195
+-1584843463
+277180998
+1179010630
+1179010630
+1515870810
+1515870810
+1518300509
+1687450978
+1888247923
+1450333279
+1752654172
+2135973987
+1752386649
+1869436790
+1498055769
+1869698662
+1920423773
+1600086169
+-1717986919
+-1717986919
+-2071690108
+-2071690108
+-2074438585
+1618697616
+1835307378
+1450932861
+-2041152136
+1786606433
+1515682433
+2071620950
+1534880613
+2038193519
+1851944279
+1733254492
+1549556828
+1549556828
+1785358954
+1785358954
+1784048474
+1969584204
+1785224284
+880835701
+1818642791
+1885564779
+1751807359
+1717470056
+-1906608024
+-1956676227
+1634301537
+-2055041148
+-2071690108
+-2071690108
+1717986918
+1717986918
+1718251127
+1785157501
+1568180329
+2087485259
+1467906154
+1735552881
+1869569935
+1481927557
+1986095959
+1450272366
+1835757931
+1515348589
+1835887981
+1835887981
+1751672936
+1751672936
+1752067436
+1768581995
+1785621613
+1818783341
+1869705326
+1836347249
+1903193711
+1869573231
+1835756399
+1869835628
+1869376877
+1819044968
+1751672936
+1751672936
+1802201963
+1802201963
+1802201963
+1802201963
+1819044972
+1819044973
+1869639792
+1886417008
+1869573999
+1869573999
+1869573999
+1869573998
+1835822188
+1819044972
+1819044972
+1819044972
+1802201963
+1802201963
+1802201963
+1802201963
+1819044972
+1819044973
+1869639792
+1886417008
+1852730990
+1852730990
+1852730990
+1852730990
+1819044972
+1819044972
+1819044972
+1819044972
+1802201963
+1802201963
+1802201963
+1802201963
+1819044972
+1819044973
+1869639792
+1886417008
+1852730990
+1852730990
+1852730990
+1852730990
+1819044972
+1819044972
+1819044972
+1819044972
+1802201963
+1802201963
+1802201963
+1802201963
+1819044972
+1819044973
+1869639792
+1886417007
+1852665197
+1835887981
+1835887981
+1835887981
+1819044972
+1819044972
+1819044972
+1819044972
+1802201963
+1802201963
+1802201963
+1802201963
+1819044972
+1819044973
+1869639792
+1886417007
+1835822188
+1819044972
+1819044972
+1819044972
+1819044972
+1819044972
+1819044972
+1819044972
+1802201963
+1802201963
+1802201963
+1802201963
+1819044972
+1819044973
+1869639792
+1886417007
+1835822188
+1819044972
+1819044972
+1819044972
+1819044972
+1819044972
+1819044972
+1819044972
+1802201963
+1802201963
+1802201963
+1802201963
+1819044972
+1819044972
+1852796526
+1852731246
+1852664940
+1818979179
+1802267756
+1819044972
+1819044972
+1819044972
+1819044972
+1819044972
+1819044972
+1819044972
+1819044972
+1819044972
+1785358954
+1785358955
+1819045229
+1835887725
+1852730989
+1818979179
+1802201963
+1802201963
+1819044972
+1819044972
+1819044972
+1819044972
+1819044972
+1819044972
+1819044972
+1819044972
+1785358954
+1785358954
+1785491313
+1903127659
+1835953516
+1802135913
+1768581738
+1785358954
+1802201963
+1802201963
+1802201963
+1802201963
+1835887981
+1835887981
+1835887981
+1835887980
+1802136170
+1785358954
+1785623930
+2054516331
+1785358953
+1751672679
+1751672936
+1751672937
+1768581738
+1785358954
+1785358954
+1785358954
+1869573999
+1869573999
+1869573999
+1869573998
+1818979179
+1802201962
+1802532990
+2121822315
+1751738472
+1751672679
+1734829927
+1734829928
+1768581738
+1785358954
+1785358954
+1785358954
+1936946035
+1936946035
+1936946035
+1936946034
+1886351215
+1869573998
+1852929658
+2054582637
+1785358954
+1802201963
+1768515945
+1768515946
+1802267756
+1819044972
+1819044972
+1819044972
+2021161080
+2021161080
+2021161080
+2021161079
+1953723251
+1936946035
+1903193966
+1852797040
+1869508464
+1886482801
+1886351215
+1869573999
+1869573999
+1869573999
+1869573999
+1869573999
+2122219134
+2122219134
+2122219134
+2122219133
+2037938296
+2021161080
+1970234976
+1617325940
+1953789045
+1987606648
+1987409269
+1970632052
+1936880242
+1920103026
+1920103026
+1920103026
+-2122219135
+-2122219135
+-2122219135
+-2122219136
+2088467323
+2071690108
+2003722069
+1432383353
+2037938297
+2071690363
+2054781305
+2038004089
+1987475062
+1987475062
+1987475062
+1987475062
+-2122219135
+-2122219135
+-2122219135
+-2122219136
+2105310332
+2088533118
+2037209676
+1297837947
+2088401787
+2071755900
+2088533116
+2088533115
+2054781305
+2038004089
+2038004089
+2038004089
+2139062143
+2139062143
+2139062143
+2139062142
+2088467323
+2071690109
+2054052685
+1297771897
+2088401530
+2054847098
+2071690107
+2071690107
+2071690107
+2071690107
+2071690107
+2071690107
+2088533116
+2088533116
+2088533116
+2088533116
+2071690107
+2071690109
+2070962002
+1348168308
+2021095287
+2004318072
+2021226873
+2038004090
+2054912891
+2071690107
+2071690107
+2071690107
+2038004089
+2038004089
+2038004089
+2038004089
+2054847098
+2054847100
+2071159897
+1465739377
+1987475062
+1987475062
+2004318071
+2004318072
+2054912891
+2071690107
+2071690107
+2071690107
+2021161080
+2021161080
+2021161080
+2021161080
+2038004089
+2038004091
+2054515554
+1617193841
+1970697846
+1987475062
+2004318071
+2004318072
+2054912891
+2071690107
+2071690107
+2071690107
+2021161080
+2021161080
+2021161080
+2021161080
+2038004089
+2038004090
+2054647915
+1785491572
+1987540855
+2004318072
+2021226873
+2038004090
+2054912891
+2071690107
+2071690107
+2071690107
+2038004089
+2038004089
+2038004089
+2038004089
+2021161080
+2021161081
+2021094771
+1937078136
+2054847098
+2054847098
+2071690107
+2071690107
+2071690107
+2071690107
+2071690107
+2071690107
+2038004089
+2038004089
+2038004089
+2038004089
+2038004089
+2038004089
+2038004088
+2038070140
+2071690107
+2071690107
+2088533116
+2088533116
+2071690107
+2071690107
+2071690107
+2071690107
+2071690107
+2071690107
+2071690107
+2071690107
+2054847098
+2054847099
+2054912892
+2088533116
+2054847098
+2054847098
+2071690107
+2071690108
+2088598909
+2105376125
+2105376125
+2105376125
+2088533116
+2088533116
+2088533116
+2088533116
+2071690107
+2071690107
+2088533116
+2088533116
+2071690107
+2071690107
+2088533116
+2088533117
+2105441918
+2122219134
+2122219134
+2122219134
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533117
+2105441918
+2122219134
+2088533116
+2088533117
+2105441918
+2122219134
+2139062143
+2139062143
+2139062143
+2139062143
+2105376125
+2105376125
+2105376125
+2105376125
+2122219134
+2122219134
+2139062143
+2139062143
+2139062143
+2139062143
+-2139062144
+-2139062144
+-2139062144
+-2139062144
+-2139062144
+-2139062144
+2122219134
+2122219134
+2122219134
+2122219135
+2139127936
+-2139062144
+-2122219135
+-2122219135
+-2122219135
+-2122219135
+-2105376126
+-2105376126
+-2105376126
+-2105376126
+-2105376126
+-2105376126
+2139062143
+2139062143
+2139062143
+2139062144
+-2138996351
+-2122219135
+-2105376126
+-2105376125
+-2088467324
+-2071690108
+-2054847099
+-2054847099
+-2071690108
+-2071690108
+-2071690108
+-2071690108
+2139062143
+2139062143
+2139062143
+2139062144
+-2122153342
+-2105376125
+-2088467324
+-2071690108
+-2054847099
+-2054847098
+-2037938297
+-2021161081
+-2054847099
+-2054847099
+-2054847099
+-2054847099
+-2139062144
+-2139062144
+-2139062144
+-2139062143
+-2105310333
+-2088533117
+-2071690108
+-2071690107
+-2054781306
+-2038004089
+-2021095288
+-2004318073
+-2038069883
+-2054847099
+-2054847099
+-2054847099
+-2139062144
+-2139062144
+-2139062144
+-2139062143
+-2105310333
+-2088533117
+-2071690108
+-2071690107
+-2054781306
+-2038004089
+-2021095288
+-2004318073
+-2038069883
+-2054847099
+-2054847099
+-2054847099
+-2139062144
+-2139062144
+-2139062144
+-2139062143
+-2105310333
+-2088533117
+-2071690108
+-2071690107
+-2054781306
+-2038004089
+-2021095288
+-2004318073
+-2038069883
+-2054847099
+-2054847099
+-2054847099
+-2139062144
+-2139062144
+-2139062144
+-2139062143
+-2105310333
+-2088533117
+-2071690108
+-2071690107
+-2054781306
+-2038004089
+-2021095288
+-2004318073
+-2038069883
+-2054847099
+-2054847099
+-2054847099
+-2139062144
+-2139062144
+-2139062144
+-2139062143
+-2105310333
+-2088533117
+-2071690108
+-2071690107
+-2054781306
+-2038004089
+-2021095288
+-2004318073
+-2038069883
+-2054847099
+-2054847099
+-2054847099
+-2139062144
+-2139062144
+-2139062144
+-2139062143
+-2105310333
+-2088533117
+-2071690108
+-2071690107
+-2054781306
+-2038004089
+-2021095288
+-2004318073
+-2038069883
+-2054847099
+-2054847099
+-2054847099
+-2139062144
+-2139062144
+-2139062144
+-2139062143
+-2105310333
+-2088533117
+-2071690108
+-2071690107
+-2054781306
+-2038004089
+-2021095288
+-2004318073
+-2038069883
+-2054847099
+-2054847099
+-2054847099
+-2139062144
+-2139062144
+-2139062144
+-2139062143
+-2105310333
+-2088533117
+-2071690108
+-2071690107
+-2054781306
+-2038004089
+-2021095288
+-2004318073
+-2038069883
+-2054847099
+-2054847099
+-2054847099
+-2139062144
+-2139062144
+-2139062144
+-2139062143
+-2105310333
+-2088533117
+-2071690108
+-2071690107
+-2054781306
+-2038004089
+-2021095288
+-2004318073
+-2038069883
+-2054847099
+-2054847099
+-2054847099
+2071690107
+2071690107
+2063827660
+3157009
+13893781
+407838000
+740700416
+-1521459499
+-669707484
+-1874718293
+232817670
+1122585373
+-796816128
+1762715959
+926365495
+926365495
+2071690107
+2071690107
+2063827660
+3157009
+13893781
+407838000
+740700416
+-1521459499
+-669707484
+-1874718293
+232817670
+1122585373
+-796816128
+1762715959
+926365495
+926365495
+2071690107
+2071690107
+2063827660
+3157009
+13893781
+407838000
+740700416
+-1521459499
+-669707484
+-1874718293
+232817670
+1122585373
+-796816128
+1762715959
+926365495
+926365495
+2071690107
+2071690107
+2063827660
+3157009
+13893781
+407838000
+740700416
+-1521459499
+-669707484
+-1874718293
+232817670
+1122585373
+-796816128
+1762715959
+926365495
+926365495
+2071690107
+2071690107
+2063827660
+3157009
+13893781
+407838000
+740700416
+-1521459499
+-669707484
+-1874718293
+232817670
+1122585373
+-796816128
+1762715959
+926365495
+926365495
+2071690107
+2071690107
+2063827660
+3157009
+13893781
+407838000
+740700416
+-1521459499
+-669707484
+-1874718293
+232817670
+1122585373
+-796816128
+1762715959
+926365495
+926365495
+2071690107
+2071690107
+2063827660
+3157009
+13893781
+407838000
+740700416
+-1521459499
+-669707484
+-1874718293
+232817670
+1122585373
+-796816128
+1762715959
+926365495
+926365495
+2071690107
+2071690107
+2063827660
+3157009
+13893781
+407838000
+740700416
+-1521459499
+-669707484
+-1874718293
+232817670
+1122585373
+-796816128
+1762715959
+926365495
+926365495
+2071690107
+2071690107
+2063827660
+3157009
+13893781
+407838000
+740700416
+-1521459499
+-669707484
+-1874718293
+232817670
+1122585373
+-796816128
+1762715959
+926365495
+926365495
+1280068684
+1280068684
+1289370183
+-1377934757
+353670185
+1980977672
+1690701434
+577640305
+568438405
+-1900111931
+-2027413450
+-1256896654
+1976576325
+278664265
+1229539657
+1229539657
+1246382666
+1246382666
+1242633129
+337807927
+-1030001377
+675008724
+-768338193
+356989564
+280790354
+764645497
+-1761583593
+-2129803175
+-958757602
+-1508517304
+1212696648
+1212696648
+269488144
+269488144
+268445281
+323250296
+8010788
+-1173013968
+-661008342
+-1877331412
+-1609197559
+-2069654580
+2070122001
+2139268740
+1540446736
+-1371386295
+1229539657
+1229539657
+-2038004090
+-2038004090
+-2038067876
+1470326381
+-2071630967
+1651539846
+-1953996404
+1784576368
+2056735352
+2138721409
+-1537576810
+2106489999
+-1988193938
+2074436214
+1987475062
+1987475062
+-1987475063
+-1987475063
+-1989185152
+2054713994
+-1920961927
+1870875782
+1919779951
+1903928440
+1735296898
+-1868925823
+2122603418
+-1988859534
+-2072284569
+1921091721
+-1987475063
+-1987475063
+-1886417009
+-1886417009
+-1886490763
+-2072939168
+-1953730919
+-1836487287
+-2090883995
+2005306484
+-1586856819
+1753118566
+-1989973600
+1868795237
+1601337729
+-1920507024
+1886417008
+1886417008
+1633771873
+1633771873
+1635286648
+2121630596
+2104451682
+-1770889338
+-1955366011
+-1872788359
+1869191029
+2038327693
+-1904836223
+2005760658
+-2070907524
+-2123008641
+2139062143
+2139062143
+2105376125
+2105376125
+2105180283
+2054715769
+2021358716
+2105179262
+-2139325827
+2088533372
+2088402042
+2122087292
+2122219384
+2071754876
+2105309563
+2088336512
+-2139062144
+-2139062144
+2105376125
+2105376125
+2105375867
+2054781049
+2071755900
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2105376125
+2105376125
+2105375867
+2071624058
+2071755900
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088467323
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533117
+2105376125
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533117
+2122219390
+2105310332
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2071690107
+2071690107
+2071755902
+2139127936
+2105310332
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2071690107
+2071690107
+2071755902
+2122285183
+2105310332
+2071690107
+2088533374
+2122153084
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2105376125
+2105244539
+2071690106
+2071822209
+-2122351237
+2071690108
+2088598909
+2071690107
+2071690107
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533115
+2071690106
+2071822466
+-2105508485
+2071690364
+2088598909
+2071690107
+2071690107
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533373
+2088665217
+-2122285444
+2088533116
+2088533116
+2071690107
+2071690107
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088598910
+2122284927
+2122219392
+-2139128194
+2122153340
+2088467323
+2071690107
+2071690107
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2105376383
+-2138996094
+-2139128194
+2122219392
+2139061885
+2088467066
+2071690107
+2071690107
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2105442176
+-2105310076
+-2105508228
+2088665217
+-2139062659
+2071624057
+2054912891
+2071690107
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2105442433
+-2088401018
+-2088731269
+2071822466
+-2122219651
+2071558264
+2054912891
+2071690107
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088599424
+-2105309820
+-2105574021
+2071822467
+-2122219651
+2071558264
+2054912891
+2054847098
+2088533116
+2088533116
+2088533116
+2088533116
+2105376125
+2105376125
+2105376125
+2105376125
+2088533117
+2105441919
+-2139194245
+2071822464
+-2122350979
+2088401274
+2071690106
+2054781305
+2071755900
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533117
+2122152826
+2054979456
+-2139127938
+2105244539
+2105441660
+2088467067
+2105441918
+2122219134
+2122219134
+2122219134
+2105376125
+2105376125
+2105376125
+2105376125
+2122219134
+2122219134
+2138995834
+2054913663
+-2122219393
+2138996094
+-2122153600
+-2139128193
+-2138996351
+-2122219135
+-2122219135
+-2122219135
+2122219134
+2122219134
+2122219134
+2122219135
+2139127936
+-2139062144
+-2122285701
+2071756160
+-2122153343
+-2122219134
+-2054781564
+-2071756157
+-2088467324
+-2071690108
+-2071690108
+-2071690108
+-2105376126
+-2105376126
+-2105376126
+-2105376126
+-2105376126
+-2105376125
+-2071756674
+2105376641
+-2105310332
+-2071690107
+-2021095289
+-2038069883
+-2054781306
+-2038004090
+-2038004090
+-2038004090
+-2038004090
+-2038004090
+-2038004090
+-2038004090
+-2054847099
+-2054847097
+-2004318846
+-2139061886
+-2071689850
+-2037938040
+-1987475320
+-2021227131
+-2038004090
+-2038004090
+-2038004090
+-2038004090
+-1953789045
+-1953789045
+-1953789045
+-1953789046
+-2004383865
+-2021161079
+-1920104058
+-2071689851
+-2054781305
+-2004252022
+-1970698105
+-2038004347
+-2054847099
+-2054847099
+-2054847099
+-2054847099
+-1936946036
+-1936946036
+-1936946036
+-1953789046
+-2038069883
+-2038004087
+-1920038007
+-2038003834
+-2038003832
+-2004186230
+-1987541114
+-2038069883
+-2054847099
+-2054847099
+-2054847099
+-2054847099
+-1936946036
+-1936946036
+-1937011830
+-1970697851
+-2088730238
+-2088467066
+-1953723767
+-2004383866
+-2038004090
+-2021161082
+-2054912892
+-2071690365
+-2088533117
+-2088533117
+-2088533117
+-2088533117
+-1953789045
+-1953789045
+-1953789303
+-1987541115
+-2105507454
+-2088467066
+-2004252537
+-2021227131
+-2071690108
+-2071690109
+-2105441919
+-2122219135
+-2122219135
+-2122219135
+-2122219135
+-2122219135
+-1936946036
+-1936946036
+-1937011830
+-1987540857
+-2054912635
+-2037938296
+-2021226875
+-2071755901
+-2105376126
+-2105376127
+2122153341
+2105376125
+2105376125
+2105376125
+2105376125
+2105376125
+-1953789045
+-1953789045
+-1953789303
+-2004318329
+-2021161081
+-2021095289
+-2054978686
+-2122284928
+2139062143
+2139062142
+2071624314
+2054847098
+2054847098
+2054847098
+2054847098
+2054847098
+-1987475063
+-1987475063
+-1987540857
+-2038069883
+-2054781306
+-2038069884
+-2122284929
+2122153340
+2088533116
+2088533115
+2021095287
+2004318071
+2004318071
+2004318071
+2004318071
+2004318071
+-2054847099
+-2054847099
+-2054912893
+-2105441919
+-2105310591
+-2122285185
+2105376124
+2071624313
+2038004089
+2038004088
+2004252278
+1987475062
+1987475062
+1987475062
+1987475062
+1987475062
+-2122219135
+-2122219135
+-2122284929
+2122153342
+2122218876
+2071624058
+2054912633
+2037938039
+2004318071
+2004318071
+2004318071
+2004318071
+2004318071
+2004318071
+2004318071
+2004318071
+2122219134
+2122219134
+2122218877
+2088467066
+2071689849
+2004252022
+2021226872
+2004317814
+1970632053
+1970632054
+1987540855
+2004318071
+2004318071
+2004318071
+2004318071
+2004318071
+2122219134
+2122219134
+2122218877
+2088467066
+2071689849
+2004252022
+2021226872
+2004317814
+1970632053
+1970632054
+1987540855
+2004318071
+2004318071
+2004318071
+2004318071
+2004318071
+2122219134
+2122219134
+2122218877
+2088467066
+2071689849
+2004252022
+2021226872
+2004317814
+1970632053
+1970632054
+1987540855
+2004318071
+2004318071
+2004318071
+2004318071
+2004318071
+2122219134
+2122219134
+2122218877
+2088467066
+2071689849
+2004252022
+2021226872
+2004317814
+1970632053
+1970632054
+1987540855
+2004318071
+2004318071
+2004318071
+2004318071
+2004318071
+2122219134
+2122219134
+2122218877
+2088467066
+2071689849
+2004252022
+2021226872
+2004317814
+1970632053
+1970632054
+1987540855
+2004318071
+2004318071
+2004318071
+2004318071
+2004318071
+2122219134
+2122219134
+2122218877
+2088467066
+2071689849
+2004252022
+2021226872
+2004317814
+1970632053
+1970632054
+1987540855
+2004318071
+2004318071
+2004318071
+2004318071
+2004318071
+2122219134
+2122219134
+2122218877
+2088467066
+2071689849
+2004252022
+2021226872
+2004317814
+1970632053
+1970632054
+1987540855
+2004318071
+2004318071
+2004318071
+2004318071
+2004318071
+2122219134
+2122219134
+2122218877
+2088467066
+2071689849
+2004252022
+2021226872
+2004317814
+1970632053
+1970632054
+1987540855
+2004318071
+2004318071
+2004318071
+2004318071
+2004318071
+2122219134
+2122219134
+2122218877
+2088467066
+2071689849
+2004252022
+2021226872
+2004317814
+1970632053
+1970632054
+1987540855
+2004318071
+2004318071
+2004318071
+2004318071
+2004318071
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1618149352
+-364316237
+-2075657815
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2026891517
+-1758457595
+84215045
+84215045
+84215045
+84215045
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1618149352
+-364316237
+-2075657815
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2026891517
+-1758457595
+84215045
+84215045
+84215045
+84215045
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1618149352
+-364316237
+-2075657815
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2026891517
+-1758457595
+84215045
+84215045
+84215045
+84215045
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1618149352
+-364316237
+-2075657815
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2026891517
+-1758457595
+84215045
+84215045
+84215045
+84215045
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1618149352
+-364316237
+-2075657815
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2026891517
+-1758457595
+84215045
+84215045
+84215045
+84215045
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1618149352
+-364316237
+-2075657815
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2026891517
+-1758457595
+84215045
+84215045
+84215045
+84215045
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1618149352
+-364316237
+-2075657815
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2026891517
+-1758457595
+84215045
+84215045
+84215045
+84215045
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1618149352
+-364316237
+-2075657815
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2026891517
+-1758457595
+84215045
+84215045
+84215045
+84215045
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1618149352
+-364316237
+-2075657815
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2026891517
+-1758457595
+84215045
+84215045
+84215045
+84215045
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1618149352
+-364316237
+-2075657815
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2026891517
+-1758457595
+84215045
+84215045
+84215045
+84215045
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1618149352
+-364316237
+-2075657815
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2026891517
+-1758457595
+84215045
+84215045
+84215045
+84215045
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1618149352
+-364316237
+-2075657815
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2026891517
+-1758457595
+84215045
+84215045
+84215045
+84215045
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1618149352
+-364316237
+-2075657815
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2026891517
+-1758457595
+84215045
+84215045
+84215045
+84215045
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1618149352
+-364316237
+-2075657815
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2026891517
+-1758457595
+84215045
+84215045
+84215045
+84215045
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1618149352
+-364316237
+-2075657815
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2026891517
+-1758457595
+84215045
+84215045
+84215045
+84215045
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1618149352
+-364316237
+-2075657815
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2026891517
+-1758457595
+84215045
+84215045
+84215045
+84215045
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1618149352
+-364316237
+-2075657815
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2026891517
+-1758457595
+84215045
+84215045
+84215045
+84215045
+-1313754703
+-1313754703
+-1313754703
+-1313754703
+-1309682045
+1279267943
+1180434447
+906297348
+-542962148
+851968
+945622784
+134219265
+2826
+50331649
+17172992
+12
+-1174269933
+-1125321554
+-1701967616
+-247337284
+1984690357
+-986775529
+15138947
+285736960
+-115140859
+1406306994
+-120127487
+593408
+0
+0
+0
+0
+151587081
+151587081
+151587081
+151587081
+156343830
+520355843
+1588856326
+1436748036
+465731963
+1560315777
+-313720815
+974913552
+1868365829
+256
+-1186462462
+335741440
+201786368
+787456
+34537480
+268439552
+-1240397824
+-791675980
+-1484974827
+-481756490
+1867117742
+-241560319
+153892749
+1615386671
+791621423
+791621423
+791621423
+791621423
+252645135
+252645135
+252645135
+252645135
+256007959
+-725677600
+-89125152
+-869396887
+1838387480
+1393318227
+-1827054176
+1977915423
+471501765
+315661956
+-971009632
+-1815961607
+-1347692506
+-1977332225
+1793149445
+-988945568
+227529292
+891396299
+-1353946026
+657609427
+453895015
+145731089
+67239954
+986251
+-1953789045
+-1953789045
+-1953789045
+-1953789045
+218959117
+218959117
+218959117
+218959117
+218235655
+101018884
+491782164
+-1643577327
+151977984
+210894835
+1963851776
+100823430
+-1283961224
+-248617515
+-1733071193
+637779792
+-331939642
+1319415853
+-648088662
+-481558036
+1891297551
+24196662
+1750599371
+15602043
+-1406242702
+1674510152
+-206684908
+1748794328
+-656877352
+-656877352
+-656877352
+-656877352
+-1077952577
+-1077952577
+-1077952577
+-1077952577
+-1075729206
+577324646
+-1305717895
+-996832804
+408010295
+-2099408356
+-1957354753
+690932310
+-1676449643
+-1592993586
+-624834520
+927758521
+543050036
+209181738
+1254105424
+-1700013127
+-156328020
+-1857545599
+-1282481477
+-1892374695
+1012306117
+2069285186
+1364803875
+-301399552
+0
+0
+0
+0
+-1970632054
+-1970632054
+-1970632054
+-1970632054
+-1964527726
+240140813
+1116642918
+1447710607
+-5333940
+-445870070
+-1674435161
+-1168263345
+-1366594010
+-955587938
+1383857056
+-1570213822
+1452953585
+1809735388
+2015690197
+-102961302
+1658164377
+-2090372439
+1428185247
+-896864459
+1411269094
+1253619584
+1595366535
+1084949390
+-1903260018
+-1903260018
+-1903260018
+-1903260018
+-640034343
+-640034343
+-640034343
+-640034343
+-641901875
+-1318565045
+1178002294
+-1351070257
+731835885
+923179858
+-835612098
+-700312426
+-527117405
+-1504395362
+-753577040
+-1081723431
+-1276231972
+880826125
+-1200264994
+1671905573
+-1915227737
+1082347499
+975530879
+-1237484990
+835185263
+1152039331
+-1766864537
+-673837559
+151587081
+151587081
+151587081
+151587081
+1313754702
+1313754702
+1313754702
+1313754702
+1313755470
+1313754703
+1280200270
+1313754446
+1313754702
+1313754702
+1280068941
+1330532946
+1347440720
+1347506256
+1364283729
+1364283729
+1364282961
+1364283472
+1330531918
+1313754701
+1246316873
+1229539401
+1145521991
+1195787079
+1212762440
+1145653576
+1195853122
+1145454899
+858993459
+858993459
+858993459
+858993459
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754701
+1296911951
+1347506514
+1364283729
+1364283729
+1364283729
+1364283729
+1364283729
+1364283728
+1330531918
+1313754701
+1263159882
+1246382665
+1212630855
+1195853639
+1212696648
+1212696647
+1195853122
+1145454131
+858993459
+858993459
+858993459
+858993459
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1330597711
+1330597711
+1330597711
+1330597711
+1313755216
+1364349522
+1364283729
+1364283729
+1364283729
+1364283729
+1364283729
+1364283728
+1330531918
+1313754701
+1280002891
+1263225674
+1229473864
+1212696648
+1195853639
+1195853639
+1179076163
+1162231604
+875836468
+875836468
+875836468
+875836468
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1330597711
+1330597711
+1347440720
+1347440720
+1347440977
+1381126739
+1381126738
+1381126738
+1364283729
+1364283729
+1364283729
+1364283728
+1330531918
+1313754702
+1280068684
+1280068683
+1246316873
+1229539657
+1195853639
+1195853639
+1195918915
+1162297140
+875836468
+875836468
+875836468
+875836468
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754703
+1330663504
+1347440720
+1364283729
+1364283729
+1364283986
+1397970004
+1381126738
+1381126738
+1364283729
+1364283729
+1364283729
+1364283728
+1330531918
+1313754702
+1296911693
+1296911693
+1263225675
+1263225674
+1229473864
+1212696648
+1195919172
+1179074613
+892679477
+892679477
+892679477
+892679477
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754703
+1330663504
+1347440721
+1364349522
+1381126738
+1397970003
+1414812756
+1397969747
+1397969747
+1364283729
+1364283729
+1364283729
+1364283728
+1330531918
+1313754702
+1313754702
+1313754702
+1280068684
+1280068683
+1246316873
+1229539657
+1212761925
+1179140149
+892679477
+892679477
+892679477
+892679477
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754703
+1347506513
+1364283730
+1381192531
+1397969748
+1414813012
+1431589972
+1414746963
+1397969747
+1364283729
+1364283729
+1364283729
+1364283728
+1330531918
+1313754702
+1330597711
+1330597710
+1296845900
+1280068684
+1263225675
+1263225674
+1229539397
+1195917622
+909522486
+909522486
+909522486
+909522486
+1330597711
+1330597711
+1330597711
+1330597711
+1330597711
+1330597712
+1364349522
+1381126739
+1414878549
+1431655765
+1448629591
+1532384342
+1397773648
+1431262546
+1347309395
+1313821007
+1330859600
+1380929617
+1330532174
+1296649551
+1330532431
+1330466385
+1296911693
+1313754702
+1313754445
+1296911692
+1246382150
+1212760372
+875836468
+875836468
+875836468
+875836468
+1364283729
+1364283729
+1364283729
+1364283729
+1364283729
+1364283730
+1398035540
+1414812757
+1431721558
+1448498773
+1448563548
+1515605590
+1414616646
+1665814615
+1431133011
+1363826770
+1364479831
+1364283730
+1364284752
+1363692625
+1347441999
+1380733265
+1330531919
+1330597968
+1330531918
+1296911692
+1263159880
+1212957489
+825307441
+825307441
+825307441
+825307441
+1397969747
+1397969747
+1397969747
+1397969747
+1397969747
+1397969748
+1414878549
+1431655766
+1448564567
+1465341778
+1364677716
+1331188563
+1415467610
+1381192781
+1263753299
+1532253527
+1431589718
+1314148693
+1431526482
+1447906392
+1347702867
+1447648079
+1347374928
+1364283985
+1330531917
+1296845899
+1229474120
+1213023537
+825307441
+825307441
+825307441
+825307441
+1431655765
+1431655765
+1431655765
+1431655765
+1431655765
+1431655765
+1448498774
+1448498774
+1465341783
+1465341779
+1432246872
+1347966295
+1431258209
+1313758794
+1247500104
+1582321244
+1398101078
+1297502551
+1464621132
+1465273174
+1447778381
+1330531663
+1347506770
+1397969746
+1364217935
+1330531916
+1246317386
+1280395573
+892679477
+892679477
+892679477
+892679477
+1465341783
+1465341783
+1465341783
+1465341783
+1465341783
+1465341783
+1465341783
+1465341783
+1465341783
+1465341777
+1382112348
+1549422691
+1365333853
+-1604820895
+1548902992
+1800101729
+1449414495
+1633180516
+1632591954
+1600344412
+1600153175
+1565872730
+1498764629
+1431655764
+1431655764
+1414746963
+1414813013
+1448825662
+1044266558
+1044266558
+1044266558
+1044266558
+1482184792
+1482184792
+1482184792
+1482184792
+1482184792
+1482184792
+1482184792
+1482184792
+1465341783
+1465341784
+1705418628
+-1885303404
+-1567388052
+-1284857185
+-1771661684
+-1602902888
+2023517837
+-1635873641
+-1769364852
+-1953923434
+2007402124
+-1686793063
+1482184792
+1482184535
+1499093593
+1498962009
+1532779867
+1532974914
+1111638594
+1111638594
+1111638594
+1111638594
+1499027801
+1499027801
+1499027801
+1499027801
+1499027801
+1499027801
+1499027801
+1499027801
+1465341783
+1465341785
+-1971226458
+-1385408594
+-1585140830
+-1753698200
+-1149590369
+-1602242133
+-2086045542
+-1383359580
+-1936873842
+2121364114
+1956809871
+-1551524437
+1532713819
+1515870554
+1532779611
+1532648025
+1482053461
+1431851066
+976894522
+976894522
+976894522
+976894522
+1482184792
+1482184792
+1482184792
+1482184792
+1482184792
+1482184793
+1499093594
+1515870809
+1482118999
+1465341787
+1721604218
+1937667449
+1868516942
+1653783205
+-1905823118
+1616213621
+1500731753
+1885694829
+1684238948
+1565480039
+1566665565
+1852663160
+1600019805
+1549491035
+1532713562
+1499027799
+1414681169
+1364544824
+943208504
+943208504
+943208504
+943208504
+1482184792
+1482184792
+1482184792
+1482184792
+1482184792
+1482184793
+1499093594
+1515870809
+1465275991
+1465407574
+1415668830
+1313888612
+1314672245
+-1396072069
+1684167011
+1364610899
+1381587033
+1365007451
+1481724500
+1633377634
+1700685918
+1717985891
+1616797021
+1549556827
+1498962008
+1465341782
+1414747219
+1398296380
+1010580540
+1010580540
+1010580540
+1010580540
+1465341783
+1465341783
+1465341783
+1465341783
+1465341783
+1465341784
+1499093337
+1499028057
+1465341783
+1482185047
+1347769170
+1364414548
+1397778555
+-1482203571
+1852859737
+1314478418
+1398298710
+1482250073
+1566794593
+1650549346
+1650285661
+1583308122
+1549688157
+1549491033
+1482118999
+1465341783
+1448367445
+1431850557
+1027423549
+1027423549
+1027423549
+1027423549
+1465341783
+1465341783
+1465341783
+1465341783
+1465341783
+1465341784
+1482250843
+1532647769
+1499027801
+1499027543
+1448432981
+1431655764
+1312898604
+1147164010
+-1399886758
+1448630876
+1583308639
+1600085856
+1616994657
+1633771872
+1566334044
+1549556828
+1566399580
+1549491034
+1482118999
+1465341784
+1465210198
+1431784764
+1010580540
+1010580540
+1010580540
+1010580540
+1482184792
+1482184792
+1482184792
+1482184792
+1482184792
+1482184792
+1465407834
+1515804760
+1515936345
+1482118740
+1364152143
+1330597708
+1448167456
+524508815
+-1753916579
+1700946533
+1684037728
+1616928863
+1583177053
+1566399837
+1549556828
+1549556828
+1566399836
+1549556570
+1498962008
+1482184793
+1482053206
+1431785020
+1010580540
+1010580540
+1010580540
+1010580540
+1482184792
+1482184792
+1482184792
+1482184792
+1482184792
+1482184793
+1499027801
+1499027802
+1498962007
+1465275989
+1397903954
+1381126738
+1482777399
+506082638
+1700288096
+1734433883
+1532713819
+1532713819
+1532713819
+1532713820
+1549622621
+1566399837
+1583242589
+1566334043
+1498962008
+1482184793
+1482053207
+1448627773
+1027423549
+1027423549
+1027423549
+1027423549
+1499027801
+1499027801
+1499027801
+1499027801
+1499027801
+1499027802
+1532713303
+1465473883
+1515870811
+1532779613
+1600085855
+1600085854
+1566531642
+471471387
+1163486047
+1499225177
+1499093594
+1515870811
+1532779612
+1549556828
+1566399837
+1566399838
+1583242846
+1566399579
+1515805017
+1499027802
+1498896215
+1465470781
+1027423549
+1027423549
+1027423549
+1027423549
+1499027801
+1499027801
+1499027801
+1499027801
+1499027801
+1499027800
+1482118485
+1431656282
+1549754465
+1650680932
+1650614882
+1650614884
+1650219583
+640033563
+793666140
+1432183905
+1549491035
+1532713820
+1549622621
+1566399837
+1583242846
+1583242846
+1600085854
+1583177052
+1515805017
+1499027802
+1498896216
+1465470782
+1044266558
+1044266558
+1044266558
+1044266558
+1515870810
+1515870810
+1515870810
+1515870810
+1515870810
+1515870810
+1515937633
+1633639261
+1617126243
+1667458146
+1599954269
+1566399840
+1633443146
+707011356
+624776286
+1549359707
+1549556828
+1549556829
+1566465630
+1583242846
+1583242846
+1583242847
+1600085855
+1583242588
+1532648026
+1515870811
+1515739224
+1482313790
+1044266558
+1044266558
+1044266558
+1044266558
+1566399837
+1566399837
+1566399837
+1566399837
+1566399837
+1566399838
+1634299509
+1970169955
+1650549089
+1616928607
+1583242846
+1583242846
+1599890006
+875047977
+674120285
+1683773532
+1549491035
+1532713819
+1566465630
+1583242846
+1600085855
+1600085856
+1616928864
+1600085854
+1566334044
+1549491035
+1532581977
+1482314047
+1061109567
+1061109567
+1061109567
+1061109567
+1600085855
+1600085855
+1600085855
+1600085855
+1600085855
+1600085856
+1616929121
+1616994914
+1616928863
+1600020062
+1583242846
+1583242848
+1599889243
+1211181359
+589706057
+1549753949
+1549491292
+1549556828
+1566465630
+1583242846
+1616994657
+1633771873
+1616928864
+1616928863
+1583242845
+1566334044
+1549359450
+1499156799
+1061109567
+1061109567
+1061109567
+1061109567
+1566399837
+1566399837
+1566399837
+1566399837
+1566399837
+1566399837
+1566399837
+1566399837
+1583308639
+1600085855
+1600085855
+1600085856
+1616665693
+1362767149
+673458751
+1415470685
+1549557085
+1566399837
+1583243103
+1600085855
+1616994657
+1633771873
+1600085855
+1600085855
+1600020062
+1566399581
+1549359705
+1499091519
+1061109567
+1061109567
+1061109567
+1061109567
+1499027801
+1499027801
+1499027801
+1499027801
+1499027801
+1499027801
+1515936860
+1549556829
+1566465887
+1600085855
+1600085855
+1600085856
+1616600419
+1514353199
+706945844
+1280990557
+1566400094
+1583242846
+1600086112
+1616928864
+1633771873
+1633771872
+1600020062
+1583242846
+1583242845
+1566334045
+1532516697
+1499091262
+1044266558
+1044266558
+1044266558
+1044266558
+1515870810
+1515870810
+1515870810
+1515870810
+1515870810
+1515870810
+1499093851
+1532713819
+1566465887
+1600085855
+1600085855
+1600085856
+1616732263
+1581724720
+807804974
+1180327774
+1583243103
+1600085855
+1600151648
+1616928864
+1633771873
+1633771872
+1600020062
+1583242846
+1600020062
+1566399580
+1549359449
+1482314047
+1061109567
+1061109567
+1061109567
+1061109567
+1532713819
+1532713819
+1532713819
+1532713819
+1532713819
+1532713819
+1515871067
+1532713819
+1566465887
+1600085855
+1600085855
+1600085856
+1633575526
+1531064624
+858465071
+1214013791
+1583308896
+1616928864
+1616994657
+1633771873
+1650614882
+1650614881
+1616863071
+1600085855
+1616863071
+1583242589
+1549359450
+1499156800
+1077952576
+1077952576
+1077952576
+1077952576
+1532713819
+1532713819
+1532713819
+1532713819
+1532713819
+1532713819
+1532779612
+1549556829
+1566465887
+1600085855
+1600085855
+1600085856
+1616863841
+1362569775
+825174837
+1281319776
+1600151905
+1633771873
+1633771873
+1633771873
+1667523684
+1684300900
+1667457891
+1667457891
+1650549089
+1616928607
+1582979930
+1515934528
+1077952576
+1077952576
+1077952576
+1077952576
+1532713819
+1532713819
+1532713819
+1532713819
+1532713819
+1532713819
+1549557085
+1566399837
+1583308639
+1600085855
+1600085855
+1600085856
+1599889242
+1143677738
+791622460
+1365336670
+1600217698
+1650614882
+1650614882
+1650614883
+1684432486
+1717986918
+1717986918
+1717986918
+1684235107
+1650614625
+1599822940
+1549620290
+1111638594
+1111638594
+1111638594
+1111638594
+1532713819
+1532713819
+1532713819
+1532713819
+1532648028
+1566399323
+1549556830
+1599888992
+1600020064
+1616863330
+1650483297
+1650614367
+1566137426
+739319097
+790963002
+1432248158
+1616994658
+1667392098
+1667392097
+1667523941
+1701209960
+1751607144
+1734829928
+1734830182
+1701208930
+1667457890
+1633442907
+1516065600
+1077952576
+1077952576
+1077952576
+1077952576
+1566399837
+1566399837
+1566399837
+1566399837
+1566202460
+1566267740
+1717262687
+1599757412
+1583177310
+1600085857
+1616863331
+1701077341
+1532651331
+421210683
+824187438
+1281056608
+1633640546
+1633772387
+1650680418
+1684366949
+1701144424
+1751541864
+1734895722
+1768384870
+1701274465
+1717920099
+1633640285
+1549751358
+1044266558
+1044266558
+1044266558
+1044266558
+1583242846
+1583242846
+1583242846
+1583242846
+1583242330
+1481987933
+1532384860
+1549293145
+1549753947
+1566530907
+1516002655
+1633771358
+1549492543
+454959142
+622795308
+1264344929
+1633442912
+1583374944
+1633837667
+1684431972
+1701209960
+1751607144
+1751870061
+1835690855
+1701274722
+1717854050
+1650681186
+1650743102
+1044266558
+1044266558
+1044266558
+1044266558
+1280068684
+1280068684
+1280068684
+1280068684
+1280002638
+1381059915
+1297570136
+1549951840
+1634034013
+1600151131
+1650482010
+1549754466
+1633377855
+572857621
+488643882
+1180064608
+1667327337
+1701275491
+1684498536
+1734763876
+1684366692
+1718184296
+1735027563
+1835755623
+1718117988
+1684168289
+1650746980
+1667586368
+1077952576
+1077952576
+1077952576
+1077952576
+842150450
+842150450
+842150450
+842150450
+841887550
+1347501865
+556280620
+1046244204
+1936748144
+1869246326
+1953261158
+1751936881
+1970039620
+640757803
+910179903
+1365271914
+1499095136
+1499159895
+1600284520
+1734698344
+1734829410
+1650680672
+1667589989
+1734828902
+1718052193
+1616863331
+1667523677
+1516131649
+1094795585
+1094795585
+1094795585
+1094795585
+724249387
+724249387
+724249387
+724249387
+724184898
+1465666873
+774646056
+1012623977
+1852204656
+1818258827
+-1751805292
+-1734565726
+-1482778778
+1231256967
+-1397708913
+2105045611
+1953591654
+1499623017
+1684236392
+1700880997
+1667063136
+1684366180
+1700750946
+1600479846
+1734631774
+1583375717
+1650680667
+1448760128
+1077952576
+1077952576
+1077952576
+1077952576
+892679477
+892679477
+892679477
+892679477
+892745528
+942878253
+724117290
+1028873307
+1868915822
+1801482126
+-1684564844
+-1717591129
+-1465606285
+1619966411
+-1077622605
+-1700746847
+-1701540746
+1702203281
+2122021748
+1734105698
+1936551282
+1936417891
+1885170021
+1516726631
+1667062879
+1634101605
+1482713704
+1667388735
+1061109567
+1061109567
+1061109567
+1061109567
+1212696648
+1212696648
+1212696648
+1212696648
+1212961365
+1397839975
+1919310430
+1735225458
+2003790186
+1768320893
+2087938920
+1802664318
+1852731736
+1435349692
+-1095059305
+1769046392
+-2021227927
+1466599049
+-2021293191
+1733908834
+-1399023458
+-1736413076
+2086366312
+1416130919
+1548900965
+1802464350
+1264614536
+-2072355008
+1077952576
+1077952576
+1077952576
+1077952576
+1263225675
+1263225675
+1263225675
+1263225675
+1263226711
+1431195739
+1733312065
+1280333406
+1532118075
+1027884101
+1178810934
+943605070
+1431657036
+1671279281
+-1213483646
+1481729889
+1634628964
+1382120057
+1852730987
+1650155113
+2104455808
+-2123407258
+2119790699
+1349153129
+1431132010
+1886546525
+1130466723
+-1617924538
+1179010630
+1179010630
+1179010630
+1179010630
+1330597711
+1330597711
+1330597711
+1330597711
+1330466904
+1600084307
+1498371168
+1969450079
+1532978276
+1616599387
+1548632383
+1044467552
+1768640329
+2141431722
+-1347046273
+1582979153
+1381587778
+1145983341
+1615944800
+1633772133
+1701209711
+1970303086
+1869781096
+1936418149
+1617259628
+1852664170
+1870035584
+-2072155563
+1431655765
+1431655765
+1431655765
+1431655765
+1414812756
+1414812756
+1414812756
+1414812756
+1414681428
+1380731210
+1161576522
+1632524363
+1111376193
+1077887300
+1380268604
+1094928978
+1364081483
+-2086493783
+-1464945537
+1398034252
+1600480093
+1921089158
+1547914842
+1667588961
+1650681455
+1987407981
+1819317084
+1566002774
+1566795880
+1751607143
+1802529639
+1751339323
+993737531
+993737531
+993737531
+993737531
+1044266558
+1044266558
+1044266558
+1044266558
+1044266557
+892153397
+942946112
+1480937028
+740631846
+623257901
+1026631468
+892811066
+1229011796
+2106495389
+-1532183932
+1229997123
+1230131799
+1820761514
+1547386951
+1297175376
+1262898009
+1633770325
+1415150914
+1027291202
+1246843732
+1414746966
+1431324739
+1178810149
+623191333
+623191333
+623191333
+623191333
+976894522
+976894522
+976894522
+976894522
+976895039
+1027160896
+942814011
+1447053379
+1010053165
+724184113
+841688877
+859058996
+892483661
+1634565522
+-1548697460
+1044786987
+724583278
+-1800421461
+1362768685
+724646206
+1043939404
+1397703998
+1044934965
+774910518
+909325108
+842084657
+757803304
+707404314
+437918234
+437918234
+437918234
+437918234
+387389207
+387389207
+387389207
+387389207
+387192608
+656876839
+673522474
+1194144306
+740564507
+404166937
+404100889
+471538200
+404432693
+1095987085
+-1531528302
+842537749
+470819434
+-1480543121
+1515802952
+1162432855
+1162102605
+1313093420
+674324259
+404232472
+404232986
+421009435
+471472409
+420876558
+235802126
+235802126
+235802126
+235802126
+353703189
+353703189
+353703189
+353703189
+353440797
+606281243
+420942877
+991763745
+538712343
+404298008
+370612505
+387389462
+404693801
+893540735
+-1498239334
+842538265
+404234832
+1769635899
+842611002
+993869634
+1212894028
+1211969834
+842491436
+505027099
+437852185
+404298525
+471473182
+521934609
+286331153
+286331153
+286331153
+286331153
+387389207
+387389207
+387389207
+387389207
+387257882
+471340310
+370545438
+1025185564
+488380697
+471736093
+471670042
+437984284
+505683493
+892681844
+-1397185116
+842276121
+506675028
+1213559865
+724448056
+1010646591
+1111704647
+1212497981
+791371050
+488185377
+253041180
+488579621
+707670579
+892414749
+488447261
+488447261
+488447261
+488447261
+404232216
+404232216
+404232216
+404232216
+404232731
+403969305
+404296735
+1041830937
+420877076
+387454486
+404428820
+387586324
+370941226
+991835256
+-1094475615
+776215584
+404823346
+911703091
+977158209
+1145391180
+1465540197
+1768648049
+1920047212
+1869640317
+-2037609076
+-1953656685
+-1802070634
+-1936883092
+1819044972
+1819044972
+1819044972
+1819044972
+454761243
+454761243
+454761243
+454761243
+454827550
+437787422
+487792937
+925244442
+420812823
+336993565
+488513311
+572928058
+1061241413
+773467491
+-1430605660
+2086828158
+2055109245
+-2070964343
+-1937010535
+-1667655530
+-1819111025
+-1886350958
+-1819113586
+-1885825900
+-1819309174
+-1936814190
+-1768646258
+-1936556723
+1296911693
+1296911693
+1296911693
+1296911693
+522133279
+522133279
+522133279
+522133279
+522068517
+606282794
+758200635
+1279673671
+1398168153
+1583376488
+2038400655
+-1835756398
+-1818848901
+1329160085
+-1583177300
+-1719893366
+-1936879722
+-1819373429
+-1987475318
+-1902930795
+-1819505782
+-1953788787
+-1903128688
+2139260303
+-1921223054
+1886350700
+1667394427
+2121026874
+976894522
+976894522
+976894522
+976894522
+-1684300901
+-1684300901
+-1684300901
+-1684300901
+-1684498020
+-1684564066
+-1600548733
+-1886350706
+-1836018802
+-1768975988
+-1970694502
+-1920563582
+-1869506930
+2088741580
+-1956483699
+-1668707691
+-1869706864
+-1853125761
+-2087154052
+2054977393
+1801872226
+1633705562
+1550283633
+1313957503
+2120638297
+1448301135
+1365010551
+1951079951
+252645135
+252645135
+252645135
+252645135
+-1920103027
+-1920103027
+-1920103027
+-1920103027
+-1920432247
+-2004712565
+-2138603406
+-2071228021
+-2004053628
+-1870362487
+-1902795617
+-2004843134
+2105180808
+-2070762320
+1109995341
+1701409397
+1567058798
+1683380827
+1855095136
+1515934544
+1347572562
+1364217938
+1752334201
+1296984451
+2104848235
+1751672683
+1971617139
+1919108133
+623191333
+623191333
+623191333
+623191333
+-1852730991
+-1852730991
+-1852730991
+-1852730991
+-1853060469
+-1987606389
+-1953855878
+-2004186494
+-2087939456
+-1803384431
+2105180036
+-2122221725
+1482186328
+1263755600
+539370025
+893802576
+1517388677
+1614299234
+1652782939
+1533239396
+1751804525
+1903590267
+1953398658
+1566272372
+1970236266
+1819243382
+2123138432
+-1817997726
+1650614882
+1650614882
+1650614882
+1650614882
+-1852730991
+-1852730991
+-1852730991
+-1852730991
+-1852929918
+2138996348
+2088599156
+2054320490
+1769177454
+2136163653
+1363692394
+-1852146339
+1414681680
+1280792115
+606479653
+725967711
+1987869305
+1597717328
+1753776240
+1920563834
+2020963447
+2072086668
+2038666141
+-2055045252
+2003922543
+1937276028
+2055046801
+-1532194202
+1717986918
+1717986918
+1717986918
+1717986918
+1684300900
+1684300900
+1684300900
+1684300900
+1684365140
+1398430549
+1398367072
+1717331058
+1686214783
+-2042683625
+1011831407
+-1853398189
+1684037727
+1634756151
+353442077
+725971080
+-1769441407
+-2123537307
+1887402870
+1970632053
+1970631537
+1920499588
+-1700682583
+-1769111943
+1936748656
+1920235385
+-2121625455
+-1970900139
+1431655765
+1431655765
+1431655765
+1431655765
+1751672936
+1751672936
+1751672936
+1751672936
+1752132707
+1803321723
+-2139193226
+1868062580
+2005966716
+-2143872486
+692673137
+-2140513678
+1752134505
+1668314717
+505158170
+641689236
+-2123269488
+-1820362887
+2037674872
+2021095546
+2088663672
+2139590546
+-2037609846
+-2122485134
+1970828916
+1936946038
+2123932046
+2105176394
+1246382666
+1246382666
+1246382666
+1246382666
+1616928864
+1616928864
+1616928864
+1616928864
+1616994913
+1583243105
+1718583163
+1953855882
+-1484826271
+-2138736526
+1515284343
+2037871466
+1785359472
+1869704295
+1075190299
+472338811
+-1751938160
+-1802599300
+2037741432
+2021095546
+1936683900
+-2037410930
+-2021688712
+1953722739
+1970829172
+1903260794
+-1651014535
+1768185153
+1094795585
+1094795585
+1094795585
+1094795585
+1970632053
+1970632053
+1970632053
+1970632053
+1970632050
+1869508976
+1869443954
+1988267426
+-1703712640
+-1548702809
+-2039777665
+2054649200
+1886614901
+1970631794
+1580867611
+574845844
+-1617524092
+-2038071948
+1903392118
+1970632311
+1768649857
+-1936683645
+2071492212
+1920169076
+1936813931
+1819509133
+-1870037899
+1802134594
+1111638594
+1111638594
+1111638594
+1111638594
+1903260017
+1903260017
+1903260017
+1903260017
+1903391860
+1970764415
+-2139325062
+2106101143
+-2123005800
+-1363890265
+-1736079999
+2020963700
+1953920374
+1987409782
+1867595076
+1467190422
+-1752531593
+1987473773
+1852994676
+1920037490
+1920566412
+-1903591563
+1903325552
+1886483572
+1903062124
+1887211417
+-2055441553
+1802331968
+1077952576
+1077952576
+1077952576
+1077952576
+1802201963
+1802201963
+1802201963
+1802201963
+1802334063
+1903392889
+1987147379
+1920298606
+2056362654
+-1667656562
+-1937078402
+1987277939
+1919971954
+1936946290
+1818190712
+-1936617590
+-2089193105
+1886548077
+1869837427
+1869442676
+-2121232502
+-2089193107
+1836019311
+1903326839
+1987409530
+-2121492325
+-2122483595
+1954115395
+1128481603
+1128481603
+1128481603
+1128481603
+2088533116
+2088533116
+2088533116
+2088533116
+2088533115
+2021095802
+1987082361
+2055176070
+-1800821352
+-1953854069
+-2021426058
+1953657201
+1903194483
+1970631278
+1819114126
+-1768978555
+2003988850
+1953854320
+1869640049
+1886483834
+-1819046781
+2037675129
+2105574019
+-2054583410
+-1886548846
+-1683774305
+-1684433260
+-1818654119
+1499027801
+1499027801
+1499027801
+1499027801
+-2088533117
+-2088533117
+-2088533117
+-2088533117
+-2088533376
+2122219648
+2037478511
+1904184481
+-1448633724
+2021294465
+2121823088
+1953788017
+1920168821
+1987343473
+1853655697
+-1887274110
+1903194740
+1987408240
+1903326584
+2072152723
+-1751871349
+-1970499175
+-1599822424
+-1414614603
+-1246581072
+-1229210695
+-1178747975
+-1178686859
+1970632053
+1970632053
+1970632053
+1970632053
+2021161080
+2021161080
+2021161080
+2021161080
+2021161594
+2054913920
+2104849002
+1887737255
+-1634104711
+1852599663
+1920299376
+2004250737
+1920036975
+1869640310
+1989448333
+-2021886599
+2021161596
+2088599425
+-2054648688
+-1784895828
+-1431918164
+-1330465607
+-1128415294
+-976762676
+-825373752
+-943076406
+-909325622
+-909133185
+2139062143
+2139062143
+2139062143
+2139062143
+1987475062
+1987475062
+1987475062
+1987475062
+1987474803
+1920169336
+2004186226
+2106957736
+-1920236165
+1970368366
+1869836656
+1987342192
+1852598890
+1836218751
+-1633840246
+-2038334324
+-2104979825
+-1835557729
+-1532515925
+-1346978624
+-1061174329
+-976894523
+-976894008
+-892547633
+-791621427
+-909587511
+-926234678
+-925974661
+2071690107
+2071690107
+2071690107
+2071690107
+1987475062
+1987475062
+1987475062
+1987475062
+1987474032
+1886548852
+1869903998
+-1733714550
+-2139128710
+2004185456
+1886548338
+1970697844
+1920037235
+2038598803
+-1717790825
+-1785618265
+-1414748250
+-1431062601
+-1161706556
+-976894007
+-909521973
+-859059511
+-943274039
+-892547633
+-791690571
+-1161376824
+-943011640
+-909261703
+2038004089
+2038004089
+2038004089
+2038004089
+2038004089
+2038004089
+2038004089
+2038004089
+2038003574
+1987475318
+1735688583
+-1784704383
+2004186485
+1970632054
+1987475321
+2088731267
+-2054649203
+-1801606994
+-1280004175
+-1381452870
+-1077755714
+-1010053430
+-926431031
+-909456694
+-909588537
+-943208505
+-976894522
+-926299444
+-842218825
+-1144534329
+-943077176
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+1903260017
+1903260017
+1903260017
+1903260017
+1903326325
+1953789043
+1837404815
+-1852602244
+1970566776
+2055045250
+-2088466806
+-1902996069
+-1582979157
+-1330069306
+-909524285
+-1112162621
+-993738306
+-1010053428
+-875902262
+-909522488
+-943274298
+-960051515
+-976894522
+-943142708
+-808334653
+-959524917
+-909522744
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+1920103026
+1920103026
+1920103026
+1920103026
+1920235127
+2021359235
+-2086820713
+-1886550398
+-2138930040
+-1936616040
+-1667259739
+-1448300621
+-1195787588
+-1043804718
+-724383031
+-1028079420
+-960118596
+-1060582455
+-892613943
+-926431546
+-993737532
+-993737532
+-993737531
+-960051254
+-808136243
+-824978739
+-892745528
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+2004318071
+2004318071
+2004318071
+2004318071
+2004384379
+2105707409
+-1666143595
+-1886088043
+-1717789279
+-1515540813
+-1195524416
+-1027291707
+-1010711869
+-942944046
+-758003255
+-1061699388
+-993804871
+-1111111480
+-926233911
+-926497340
+-1027357757
+-1010580541
+-1010580284
+-993671737
+-892416307
+-842084917
+-909522744
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-2105376126
+-2105376126
+-2105376126
+-2105376126
+-2105310076
+-2054449502
+-1414288746
+-1733907281
+-1279936840
+-1145192254
+-976762937
+-926365497
+-993803581
+-976630579
+-842152251
+-1078476861
+-1027754063
+-1262632511
+-1010317370
+-976960574
+-1044266559
+-1044266558
+-1027357500
+-993803324
+-993539896
+-926431801
+-926299960
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1734829928
+-1734829928
+-1734829928
+-1734829928
+-1734697828
+-1684101457
+-1229147484
+-1380007231
+-1010448955
+-976894523
+-976960316
+-993737532
+-1010646333
+-993605431
+-926432830
+-1112030779
+-960250955
+-1195326269
+-1027357501
+-1027489344
+-1044266816
+-1061109567
+-1044134717
+-1010580542
+-993605945
+-943274553
+-926299960
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1600085856
+-1600085856
+-1600085856
+-1600085856
+-1599821656
+-1532778319
+-1161510730
+-1076900151
+-909391159
+-943274812
+-993671482
+-959985721
+-993869374
+-1010448442
+-976896063
+-1112030778
+-960119113
+-1161574459
+-1010580542
+-1027489343
+-1061109568
+-1061109568
+-1044134973
+-1010580797
+-993605688
+-943274296
+-892745528
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1600085856
+-1600085856
+-1600085856
+-1600085856
+-1599821656
+-1532778319
+-1161510730
+-1076900151
+-909391159
+-943274812
+-993671482
+-959985721
+-993869374
+-1010448442
+-976896063
+-1112030778
+-960119113
+-1161574459
+-1010580542
+-1027489343
+-1061109568
+-1061109568
+-1044134973
+-1010580797
+-993605688
+-943274296
+-892745528
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1600085856
+-1600085856
+-1600085856
+-1600085856
+-1599821656
+-1532778319
+-1161510730
+-1076900151
+-909391159
+-943274812
+-993671482
+-959985721
+-993869374
+-1010448442
+-976896063
+-1112030778
+-960119113
+-1161574459
+-1010580542
+-1027489343
+-1061109568
+-1061109568
+-1044134973
+-1010580797
+-993605688
+-943274296
+-892745528
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1600085856
+-1600085856
+-1600085856
+-1600085856
+-1599821656
+-1532778319
+-1161510730
+-1076900151
+-909391159
+-943274812
+-993671482
+-959985721
+-993869374
+-1010448442
+-976896063
+-1112030778
+-960119113
+-1161574459
+-1010580542
+-1027489343
+-1061109568
+-1061109568
+-1044134973
+-1010580797
+-993605688
+-943274296
+-892745528
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1600085856
+-1600085856
+-1600085856
+-1600085856
+-1599821656
+-1532778319
+-1161510730
+-1076900151
+-909391159
+-943274812
+-993671482
+-959985721
+-993869374
+-1010448442
+-976896063
+-1112030778
+-960119113
+-1161574459
+-1010580542
+-1027489343
+-1061109568
+-1061109568
+-1044134973
+-1010580797
+-993605688
+-943274296
+-892745528
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1600085856
+-1600085856
+-1600085856
+-1600085856
+-1599821656
+-1532778319
+-1161510730
+-1076900151
+-909391159
+-943274812
+-993671482
+-959985721
+-993869374
+-1010448442
+-976896063
+-1112030778
+-960119113
+-1161574459
+-1010580542
+-1027489343
+-1061109568
+-1061109568
+-1044134973
+-1010580797
+-993605688
+-943274296
+-892745528
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1600085856
+-1600085856
+-1600085856
+-1600085856
+-1599821656
+-1532778319
+-1161510730
+-1076900151
+-909391159
+-943274812
+-993671482
+-959985721
+-993869374
+-1010448442
+-976896063
+-1112030778
+-960119113
+-1161574459
+-1010580542
+-1027489343
+-1061109568
+-1061109568
+-1044134973
+-1010580797
+-993605688
+-943274296
+-892745528
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1600085856
+-1600085856
+-1600085856
+-1600085856
+-1599821656
+-1532778319
+-1161510730
+-1076900151
+-909391159
+-943274812
+-993671482
+-959985721
+-993869374
+-1010448442
+-976896063
+-1112030778
+-960119113
+-1161574459
+-1010580542
+-1027489343
+-1061109568
+-1061109568
+-1044134973
+-1010580797
+-993605688
+-943274296
+-892745528
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1600085856
+-1600085856
+-1600085856
+-1600085856
+-1599821656
+-1532778319
+-1161510730
+-1076900151
+-909391159
+-943274812
+-993671482
+-959985721
+-993869374
+-1010448442
+-976896063
+-1112030778
+-960119113
+-1161574459
+-1010580542
+-1027489343
+-1061109568
+-1061109568
+-1044134973
+-1010580797
+-993605688
+-943274296
+-892745528
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1600085856
+-1600085856
+-1600085856
+-1600085856
+-1599821656
+-1532778319
+-1161510730
+-1076900151
+-909391159
+-943274812
+-993671482
+-959985721
+-993869374
+-1010448442
+-976896063
+-1112030778
+-960119113
+-1161574459
+-1010580542
+-1027489343
+-1061109568
+-1061109568
+-1044134973
+-1010580797
+-993605688
+-943274296
+-892745528
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1600085856
+-1600085856
+-1600085856
+-1600085856
+-1599821656
+-1532778319
+-1161510730
+-1076900151
+-909391159
+-943274812
+-993671482
+-959985721
+-993869374
+-1010448442
+-976896063
+-1112030778
+-960119113
+-1161574459
+-1010580542
+-1027489343
+-1061109568
+-1061109568
+-1044134973
+-1010580797
+-993605688
+-943274296
+-892745528
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1600085856
+-1600085856
+-1600085856
+-1600085856
+-1599821656
+-1532778319
+-1161510730
+-1076900151
+-909391159
+-943274812
+-993671482
+-959985721
+-993869374
+-1010448442
+-976896063
+-1112030778
+-960119113
+-1161574459
+-1010580542
+-1027489343
+-1061109568
+-1061109568
+-1044134973
+-1010580797
+-993605688
+-943274296
+-892745528
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1600085856
+-1600085856
+-1600085856
+-1600085856
+-1599821656
+-1532778319
+-1161510730
+-1076900151
+-909391159
+-943274812
+-993671482
+-959985721
+-993869374
+-1010448442
+-976896063
+-1112030778
+-960119113
+-1161574459
+-1010580542
+-1027489343
+-1061109568
+-1061109568
+-1044134973
+-1010580797
+-993605688
+-943274296
+-892745528
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1600085856
+-1600085856
+-1600085856
+-1600085856
+-1599821656
+-1532778319
+-1161510730
+-1076900151
+-909391159
+-943274812
+-993671482
+-959985721
+-993869374
+-1010448442
+-976896063
+-1112030778
+-960119113
+-1161574459
+-1010580542
+-1027489343
+-1061109568
+-1061109568
+-1044134973
+-1010580797
+-993605688
+-943274296
+-892745528
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1600085856
+-1600085856
+-1600085856
+-1600085856
+-1599821656
+-1532778319
+-1161510730
+-1076900151
+-909391159
+-943274812
+-993671482
+-959985721
+-993869374
+-1010448442
+-976896063
+-1112030778
+-960119113
+-1161574459
+-1010580542
+-1027489343
+-1061109568
+-1061109568
+-1044134973
+-1010580797
+-993605688
+-943274296
+-892745528
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1600085856
+-1600085856
+-1600085856
+-1600085856
+-1599821656
+-1532778319
+-1161510730
+-1076900151
+-909391159
+-943274812
+-993671482
+-959985721
+-993869374
+-1010448442
+-976896063
+-1112030778
+-960119113
+-1161574459
+-1010580542
+-1027489343
+-1061109568
+-1061109568
+-1044134973
+-1010580797
+-993605688
+-943274296
+-892745528
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1600085856
+-1600085856
+-1600085856
+-1600085856
+-1599821656
+-1532778319
+-1161510730
+-1076900151
+-909391159
+-943274812
+-993671482
+-959985721
+-993869374
+-1010448442
+-976896063
+-1112030778
+-960119113
+-1161574459
+-1010580542
+-1027489343
+-1061109568
+-1061109568
+-1044134973
+-1010580797
+-993605688
+-943274296
+-892745528
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-2004318072
+-2004318072
+-2012541882
+1795620730
+318794160
+-1488371695
+1863053564
+-1070858208
+11668988
+1410230210
+310568374
+-1098851065
+1465742650
+-1810615036
+67372036
+67372036
+-2004318072
+-2004318072
+-2012541882
+1795620730
+318794160
+-1488371695
+1863053564
+-1070858208
+11668988
+1410230210
+310568374
+-1098851065
+1465742650
+-1810615036
+67372036
+67372036
+-2004318072
+-2004318072
+-2012541882
+1795620730
+318794160
+-1488371695
+1863053564
+-1070858208
+11668988
+1410230210
+310568374
+-1098851065
+1465742650
+-1810615036
+67372036
+67372036
+-2004318072
+-2004318072
+-2012541882
+1795620730
+318794160
+-1488371695
+1863053564
+-1070858208
+11668988
+1410230210
+310568374
+-1098851065
+1465742650
+-1810615036
+67372036
+67372036
+-2004318072
+-2004318072
+-2012541882
+1795620730
+318794160
+-1488371695
+1863053564
+-1070858208
+11668988
+1410230210
+310568374
+-1098851065
+1465742650
+-1810615036
+67372036
+67372036
+-2004318072
+-2004318072
+-2012541882
+1795620730
+318794160
+-1488371695
+1863053564
+-1070858208
+11668988
+1410230210
+310568374
+-1098851065
+1465742650
+-1810615036
+67372036
+67372036
+-2004318072
+-2004318072
+-2012541882
+1795620730
+318794160
+-1488371695
+1863053564
+-1070858208
+11668988
+1410230210
+310568374
+-1098851065
+1465742650
+-1810615036
+67372036
+67372036
+-2004318072
+-2004318072
+-2012541882
+1795620730
+318794160
+-1488371695
+1863053564
+-1070858208
+11668988
+1410230210
+310568374
+-1098851065
+1465742650
+-1810615036
+67372036
+67372036
+-2004318072
+-2004318072
+-2012541882
+1795620730
+318794160
+-1488371695
+1863053564
+-1070858208
+11668988
+1410230210
+310568374
+-1098851065
+1465742650
+-1810615036
+67372036
+67372036
+1061109567
+1061109567
+1058067648
+-848375510
+-311739113
+-1401952840
+872432650
+1818045202
+-2008964585
+1066607525
+1161439232
+303957721
+-771334546
+326555912
+134744072
+134744072
+623191333
+623191333
+622920139
+1376002693
+-1654015917
+-713227752
+-1104084778
+-872377847
+26784305
+-1335358413
+-855228389
+3997877
+-754495516
+340786654
+-555819298
+-555819298
+-1482184793
+-1482184793
+-1487470080
+-153151359
+1491528586
+-367999253
+-2106914959
+1863709059
+475229977
+1973361285
+219973546
+366632198
+-1433002694
+5669437
+1027423549
+1027423549
+1768515945
+1768515945
+1769430641
+1736666723
+1787125097
+1953067366
+1836279131
+-2023661204
+1835821165
+2104255339
+1734768234
+1818390886
+1719032184
+1852534911
+2139062143
+2139062143
+1886417008
+1886417008
+1885963872
+1700946541
+1901887328
+1852471412
+1851946349
+1786016097
+1785617258
+2086700134
+1668963184
+1651733097
+1936027492
+1734569067
+1802201963
+1802201963
+2021161080
+2021161080
+2019259747
+1801813605
+1735353453
+1634885228
+1869112940
+1818648702
+1802008180
+1634626669
+-2108000657
+1951888246
+1617980004
+1902799477
+1970632053
+1970632053
+1802201963
+1802201963
+1802330990
+1651269487
+1902865246
+2136570219
+1718576747
+1785621610
+1835822698
+1852531836
+1802792045
+1585343081
+1768842616
+1768512132
+-2071690108
+-2071690108
+1734829927
+1734829927
+1735421294
+1751935851
+1802202477
+1818849131
+1752001387
+1785817963
+1835887721
+1819043692
+1869441901
+1852926313
+1835887724
+1751805036
+1819044972
+1819044972
+1802201963
+1802201963
+1802201963
+1802201963
+1802201964
+1819110766
+1869705842
+1920102768
+1903260017
+1903260017
+1920036975
+1852665195
+1819110764
+1785359470
+1852730990
+1852730990
+1802201963
+1802201963
+1802201963
+1802201963
+1802201964
+1819110767
+1920234870
+1987409012
+1920103026
+1920103026
+1886416750
+1852664940
+1819110764
+1785359470
+1852730990
+1852730990
+1802201963
+1802201963
+1802201963
+1802201963
+1802201964
+1819110766
+1869705843
+1936879984
+1852730990
+1852730991
+1869573998
+1852665196
+1819110764
+1785359470
+1852730990
+1852730990
+1802201963
+1802201963
+1802201963
+1802201963
+1802201964
+1819110765
+1835954031
+1869573740
+1802136170
+1785358955
+1835953773
+1835887724
+1819110764
+1785359470
+1852730990
+1852730990
+1802201963
+1802201963
+1802201963
+1802201963
+1802201964
+1819110766
+1835954032
+1886350957
+1802136170
+1785358955
+1802267756
+1819044972
+1819110764
+1785359470
+1852730990
+1852730990
+1802201963
+1802201963
+1802201963
+1802201963
+1802201964
+1819110766
+1852862833
+1903259758
+1852665197
+1835887981
+1819044972
+1819044972
+1819110764
+1785359470
+1852730990
+1852730990
+1802201963
+1802201963
+1802201963
+1802201963
+1802201964
+1819044972
+1835953776
+1903193966
+1835887980
+1835822188
+1785424747
+1802202219
+1819045228
+1802202222
+1852730990
+1852730990
+1819044972
+1819044972
+1819044972
+1819044972
+1802136170
+1785424747
+1802202737
+1936944748
+1802267756
+1802201963
+1768450409
+1785358955
+1785424747
+1802268014
+1852730990
+1852730990
+1819044972
+1819044972
+1819044972
+1819044972
+1802136170
+1785358954
+1768582770
+1970564971
+1802333548
+1802201705
+1751672937
+1785358955
+1785359211
+1819045229
+1835887981
+1835887981
+1835887981
+1835887981
+1835887981
+1835887980
+1802136170
+1785358954
+1768648565
+2020962413
+1819044971
+1768515688
+1751672937
+1768516202
+1785359211
+1802267756
+1819044972
+1819044972
+1869573999
+1869573999
+1869573999
+1869573998
+1835756395
+1802201962
+1785557880
+2054648174
+1818913385
+1751672422
+1734829927
+1751672937
+1751738986
+1785358954
+1785358954
+1785358954
+1936946035
+1936946035
+1936946035
+1936946034
+1903128431
+1869573998
+1852863607
+2004120175
+1835756138
+1768515944
+1768515945
+1751672937
+1785358954
+1785358954
+1785358954
+1785358954
+2021161080
+2021161080
+2021161080
+2021161079
+1970500467
+1936946035
+1936879726
+1819045745
+1869442414
+1852731247
+1886351214
+1852730733
+1852730989
+1835887724
+1819044972
+1819044972
+2122219134
+2122219134
+2122219134
+2122219133
+2071492728
+2021161081
+2003986269
+1499491443
+1953723252
+1970763897
+2021095286
+1987409268
+1953788787
+1920037233
+1903260017
+1903260017
+-2139062144
+-2139062144
+-2139062144
+-2139062145
+2122021755
+2071690108
+2054250319
+1280665717
+2037938297
+2071756157
+2105310331
+2071689850
+2054846841
+2021161080
+2021161080
+2021161080
+-2139062144
+-2139062144
+-2139062144
+-2139062145
+2122087548
+2088533119
+2087936335
+1246979701
+2071689851
+2088533373
+2105375869
+2088533116
+2088533116
+2088467323
+2071690107
+2071690107
+-2139062144
+-2139062144
+-2139062144
+-2139062145
+2122087548
+2088533119
+2121820248
+1364748405
+2071689850
+2054847098
+2054847355
+2071690107
+2071690364
+2088533116
+2088533116
+2088533116
+2139062143
+2139062143
+2139062143
+2139062142
+2105310332
+2088533118
+2105175904
+1448765299
+2021095287
+2004318071
+2021226873
+2038004089
+2038070139
+2071690107
+2071690107
+2071690107
+2071690107
+2071690107
+2071690107
+2071690106
+2054847098
+2054847098
+2037870692
+1499096432
+1970697846
+1987475062
+1987540855
+2004318071
+2021227130
+2054847098
+2054847098
+2054847098
+1987475062
+1987475062
+1987475062
+1987475062
+1987540855
+2004318071
+1970631529
+1633773680
+1953855094
+1987475062
+2004318328
+2021161080
+2038004346
+2054847098
+2054847098
+2054847098
+1970632053
+1970632053
+1970632053
+1970632053
+1987540855
+2004318070
+1970697329
+1818980468
+1987475319
+2004318071
+2021226873
+2038004089
+2038069882
+2054847098
+2054847098
+2054847098
+2038004089
+2038004089
+2038004089
+2038004089
+2021161080
+2021161079
+1987475319
+1970697847
+2038069882
+2054847098
+2054847098
+2054847098
+2071690107
+2071690107
+2071690107
+2071690107
+2071690107
+2071690107
+2071690107
+2071690107
+2071690107
+2071690106
+2021095545
+2054912377
+2054912891
+2071690107
+2054847098
+2054847098
+2071690364
+2088533116
+2088533116
+2088533116
+2071690107
+2071690107
+2071690107
+2071690107
+2071690107
+2071690107
+2071624572
+2105375868
+2071624314
+2054847098
+2054847098
+2054847099
+2088598909
+2105376125
+2105376125
+2105376125
+2088533116
+2088533116
+2088533116
+2088533116
+2071690107
+2071690107
+2088533373
+2105376125
+2071690107
+2071690107
+2088533373
+2105376125
+2122219134
+2122219134
+2122219134
+2122219134
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2105441918
+2122219134
+2105310332
+2088533117
+2122350720
+-2139062144
+2139062143
+2139062143
+2139062143
+2139062143
+2105376125
+2105376125
+2105376125
+2105376125
+2088598909
+2105376125
+2122284927
+2139062143
+2139062143
+2139062143
+-2122153342
+-2105376126
+-2122219135
+-2122219135
+-2122219135
+-2122219135
+2122219134
+2122219134
+2122219134
+2122219134
+2122219391
+2139062143
+-2139062144
+-2139062144
+-2122219135
+-2122219134
+-2088467324
+-2071690108
+-2088533117
+-2088533117
+-2088533117
+-2088533117
+2139062143
+2139062143
+2139062143
+2139062143
+-2139061887
+-2122219135
+-2105375869
+-2088533117
+-2088532860
+-2071690107
+-2054781049
+-2021161082
+-2054912892
+-2071690108
+-2071690108
+-2071690108
+2139062143
+2139062143
+2139062143
+2139062143
+-2138996094
+-2105376126
+-2088467324
+-2071690108
+-2071624315
+-2054847099
+-2037938297
+-2021161081
+-2054847099
+-2054847099
+-2054847099
+-2054847099
+-2139062144
+-2139062144
+-2139062144
+-2139062144
+-2105310076
+-2071690108
+-2071624315
+-2054847099
+-2054846842
+-2038004090
+-2038003833
+-2021161082
+-2038069883
+-2054847099
+-2054847099
+-2054847099
+-2139062144
+-2139062144
+-2139062144
+-2139062144
+-2105310076
+-2071690108
+-2071624315
+-2054847099
+-2054846842
+-2038004090
+-2038003833
+-2021161082
+-2038069883
+-2054847099
+-2054847099
+-2054847099
+-2139062144
+-2139062144
+-2139062144
+-2139062144
+-2105310076
+-2071690108
+-2071624315
+-2054847099
+-2054846842
+-2038004090
+-2038003833
+-2021161082
+-2038069883
+-2054847099
+-2054847099
+-2054847099
+-2139062144
+-2139062144
+-2139062144
+-2139062144
+-2105310076
+-2071690108
+-2071624315
+-2054847099
+-2054846842
+-2038004090
+-2038003833
+-2021161082
+-2038069883
+-2054847099
+-2054847099
+-2054847099
+-2139062144
+-2139062144
+-2139062144
+-2139062144
+-2105310076
+-2071690108
+-2071624315
+-2054847099
+-2054846842
+-2038004090
+-2038003833
+-2021161082
+-2038069883
+-2054847099
+-2054847099
+-2054847099
+-2139062144
+-2139062144
+-2139062144
+-2139062144
+-2105310076
+-2071690108
+-2071624315
+-2054847099
+-2054846842
+-2038004090
+-2038003833
+-2021161082
+-2038069883
+-2054847099
+-2054847099
+-2054847099
+-2139062144
+-2139062144
+-2139062144
+-2139062144
+-2105310076
+-2071690108
+-2071624315
+-2054847099
+-2054846842
+-2038004090
+-2038003833
+-2021161082
+-2038069883
+-2054847099
+-2054847099
+-2054847099
+-2139062144
+-2139062144
+-2139062144
+-2139062144
+-2105310076
+-2071690108
+-2071624315
+-2054847099
+-2054846842
+-2038004090
+-2038003833
+-2021161082
+-2038069883
+-2054847099
+-2054847099
+-2054847099
+-2139062144
+-2139062144
+-2139062144
+-2139062144
+-2105310076
+-2071690108
+-2071624315
+-2054847099
+-2054846842
+-2038004090
+-2038003833
+-2021161082
+-2038069883
+-2054847099
+-2054847099
+-2054847099
+2088533116
+2088533116
+2082108904
+71042816
+13570461
+323496968
+621757444
+-1470349338
+-519240938
+2067997850
+47811084
+1507865859
+-896700156
+1544020822
+1448498774
+1448498774
+2088533116
+2088533116
+2082108904
+71042816
+13570461
+323496968
+621757444
+-1470349338
+-519240938
+2067997850
+47811084
+1507865859
+-896700156
+1544020822
+1448498774
+1448498774
+2088533116
+2088533116
+2082108904
+71042816
+13570461
+323496968
+621757444
+-1470349338
+-519240938
+2067997850
+47811084
+1507865859
+-896700156
+1544020822
+1448498774
+1448498774
+2088533116
+2088533116
+2082108904
+71042816
+13570461
+323496968
+621757444
+-1470349338
+-519240938
+2067997850
+47811084
+1507865859
+-896700156
+1544020822
+1448498774
+1448498774
+2088533116
+2088533116
+2082108904
+71042816
+13570461
+323496968
+621757444
+-1470349338
+-519240938
+2067997850
+47811084
+1507865859
+-896700156
+1544020822
+1448498774
+1448498774
+2088533116
+2088533116
+2082108904
+71042816
+13570461
+323496968
+621757444
+-1470349338
+-519240938
+2067997850
+47811084
+1507865859
+-896700156
+1544020822
+1448498774
+1448498774
+2088533116
+2088533116
+2082108904
+71042816
+13570461
+323496968
+621757444
+-1470349338
+-519240938
+2067997850
+47811084
+1507865859
+-896700156
+1544020822
+1448498774
+1448498774
+2088533116
+2088533116
+2082108904
+71042816
+13570461
+323496968
+621757444
+-1470349338
+-519240938
+2067997850
+47811084
+1507865859
+-896700156
+1544020822
+1448498774
+1448498774
+2088533116
+2088533116
+2082108904
+71042816
+13570461
+323496968
+621757444
+-1470349338
+-519240938
+2067997850
+47811084
+1507865859
+-896700156
+1544020822
+1448498774
+1448498774
+1347440720
+1347440720
+1356140841
+-1729396130
+52075278
+1779590153
+1439563898
+426969716
+285197444
+-1497659175
+-1103364083
+-1003785088
+1960978266
+798885935
+791621423
+791621423
+1465341783
+1465341783
+1459883960
+739814165
+-660048124
+423751661
+-314827794
+393159833
+415208504
+377722218
+1845518339
+2030816833
+-925078269
+-1307973057
+1061109567
+1061109567
+471604252
+471604252
+469770322
+219843939
+7879442
+-786816993
+-392705524
+-1994455773
+-1862230015
+-1751016498
+1971042074
+-1803773535
+1726109447
+-1137745078
+1246382666
+1246382666
+-2021161081
+-2021161081
+-2021359257
+1871148909
+-2105316487
+2054910080
+-2021038210
+2004841091
+2039834738
+-2038471563
+-1889043582
+1954511221
+2004649844
+2140237951
+2139062143
+2139062143
+1835887981
+1835887981
+1837267336
+2104850562
+-2089121667
+1989173377
+2037547644
+2005433985
+-2056680328
+2021426296
+2022206348
+-2106361734
+2105504129
+1987478911
+2139062143
+2139062143
+2122219134
+2122219134
+2123067008
+2088139893
+2056025726
+1970829184
+2121368444
+-2140046218
+1971290752
+2004647548
+2038137206
+2021624184
+1937470335
+1988061815
+2004318071
+2004318071
+2122219134
+2122219134
+2121825410
+1904312189
+-2056159625
+-1921939849
+2121694330
+-1972663935
+2054850162
+2088663934
+-2122806153
+2072475013
+2072279167
+2071821946
+2054847098
+2054847098
+2071690107
+2071690107
+2071298171
+2071690876
+2054913659
+2105113725
+2121955963
+2088533373
+2088336762
+2122152573
+-2139259015
+2088531835
+2122152829
+2105245052
+2088533116
+2088533116
+2071690107
+2071690107
+2071690107
+2054847099
+2071755900
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2105376125
+2105376125
+2105375867
+2071624058
+2071755900
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2105376125
+2105376125
+2105375868
+2088467323
+2071755900
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2105376125
+2105376125
+2105375869
+2105376124
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533117
+2122219390
+2105310332
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2038004089
+2038004089
+2038070142
+2139193985
+2122087548
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2038004089
+2038004089
+2038070141
+2122351232
+2122087548
+2071690107
+2088533375
+2138930300
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2071690107
+2071690107
+2071690108
+2105441918
+2105310075
+2071690106
+2071822208
+-2139128453
+2071690107
+2088533373
+2071690107
+2071690107
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2105376124
+2088533115
+2071822465
+-2122285701
+2071690108
+2088533373
+2071690107
+2071690107
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533117
+2105442176
+-2139128195
+2088533116
+2088533116
+2071690107
+2071690107
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2054847355
+2088533374
+2122219135
+2138996351
+2122153340
+2088467323
+2071690107
+2071690107
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2071755901
+2122285185
+-2122350979
+2105442176
+2139061885
+2088467066
+2071690107
+2071690107
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533117
+2122350978
+-2071624058
+-2088731269
+2071822465
+-2139062403
+2088401273
+2054912891
+2071690107
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2122285442
+-2071558009
+-2088796805
+2071822466
+-2122219394
+2088401016
+2054912891
+2071690107
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2071690365
+2139128450
+-2139194245
+2071822208
+-2105376642
+2105244025
+2038069882
+2054847097
+2071755901
+2105376125
+2105376125
+2105376125
+2105376125
+2105376125
+2105376125
+2105376125
+2054847355
+2088533372
+2105310332
+2071690622
+-2122219393
+2105309817
+2054847354
+2054847098
+2071756157
+2105442175
+2139062143
+2139062143
+2088533116
+2088533116
+2088533116
+2088533116
+2071690107
+2071690107
+2071755899
+2054912893
+-2139062145
+2122153084
+2088664958
+2139061885
+2088533373
+2122219391
+2139062143
+2139062143
+2105376125
+2105376125
+2105376125
+2105376125
+2088598909
+2105376125
+2105441915
+2054913149
+2139193471
+2138996093
+2122350719
+-2139128194
+2122219134
+2139062144
+-2139062144
+-2139062144
+2139062143
+2139062143
+2139062143
+2139062143
+2139062400
+-2139062144
+-2122153859
+2088533374
+-2138996095
+-2122219135
+-2105310333
+-2105442174
+-2105375869
+-2088533116
+-2071690108
+-2071690108
+-2088533117
+-2088533117
+-2088533117
+-2088533117
+-2105376126
+-2105376125
+-2054847359
+2138996610
+-2088467067
+-2038004089
+-1987343478
+-1970698104
+-2021095288
+-2004318072
+-2004318072
+-2004318072
+-2004318072
+-2004318072
+-2004318072
+-2004318072
+-2038004090
+-2038004088
+-1987343995
+-2088598651
+-2054781305
+-2004317814
+-1936946293
+-1987541112
+-2004252279
+-2004318072
+-2004318072
+-2004318072
+-1920103027
+-1920103027
+-1920103027
+-1920103028
+-1970763640
+-2004318070
+-1919972472
+-2038069368
+-2021226617
+-2004252021
+-1953855353
+-2054913148
+-2021095545
+-2038004347
+-2054847099
+-2054847099
+-1903260018
+-1903260018
+-1903325811
+-1936946037
+-2021358459
+-2037938295
+-1953657976
+-2037938041
+-2021226873
+-2004252279
+-1987541114
+-2038135676
+-2054847356
+-2071756158
+-2105376126
+-2105376126
+-1936946036
+-1936946036
+-1936946037
+-1953854841
+-2071953279
+-2088401016
+-2004121208
+-2021161082
+-2038004090
+-2037938041
+-2038070396
+-2088533117
+-2105376127
+-2122219135
+-2122219135
+-2122219135
+-1953789045
+-1953789045
+-1953789303
+-1987541115
+-2105573503
+-2105244025
+-2004318330
+-2038070139
+-2054781306
+-2038004091
+-2105507712
+-2139062144
+2139062143
+2139062143
+2139062143
+2139062143
+-1936946036
+-1936946036
+-1937011830
+-1987540857
+-2038135675
+-2054781048
+-2021227131
+-2071756157
+-2071624315
+-2054847101
+-2139259780
+2088533116
+2071690107
+2071690107
+2071690107
+2071690107
+-1953789045
+-1953789045
+-1953789303
+-2004318329
+-2004318329
+-2021160826
+-2054978942
+-2122285185
+-2139062144
+-2139062146
+2088335480
+2021161080
+2021161080
+2021161080
+2021161080
+2021161080
+-1987475063
+-1987475063
+-1987540857
+-2038069883
+-2038004090
+-2038069885
+-2122350721
+2122153083
+2054781305
+2038004088
+2021095030
+1987475062
+1987475062
+1987475062
+1987475062
+1987475062
+-2054847099
+-2054847099
+-2054912893
+-2105441919
+-2122153343
+-2122285186
+2088467579
+2054781303
+1987409269
+1970632053
+1970632053
+1970632053
+1987475062
+1987475062
+1987475062
+1987475062
+-2122219135
+-2122219135
+-2122284929
+2122153341
+2088533116
+2071690106
+2021161080
+2004252277
+1987475062
+1987475062
+1970632310
+1987475062
+2004318071
+2004318071
+2004318071
+2004318071
+2122219134
+2122219134
+2122218877
+2088467065
+2021161080
+2037938295
+1987475318
+1970631797
+1987540855
+2004318071
+1970632310
+1987475062
+2004318071
+2004318071
+2004318071
+2004318071
+2122219134
+2122219134
+2122218877
+2088467065
+2021161080
+2037938295
+1987475318
+1970631797
+1987540855
+2004318071
+1970632310
+1987475062
+2004318071
+2004318071
+2004318071
+2004318071
+2122219134
+2122219134
+2122218877
+2088467065
+2021161080
+2037938295
+1987475318
+1970631797
+1987540855
+2004318071
+1970632310
+1987475062
+2004318071
+2004318071
+2004318071
+2004318071
+2122219134
+2122219134
+2122218877
+2088467065
+2021161080
+2037938295
+1987475318
+1970631797
+1987540855
+2004318071
+1970632310
+1987475062
+2004318071
+2004318071
+2004318071
+2004318071
+2122219134
+2122219134
+2122218877
+2088467065
+2021161080
+2037938295
+1987475318
+1970631797
+1987540855
+2004318071
+1970632310
+1987475062
+2004318071
+2004318071
+2004318071
+2004318071
+2122219134
+2122219134
+2122218877
+2088467065
+2021161080
+2037938295
+1987475318
+1970631797
+1987540855
+2004318071
+1970632310
+1987475062
+2004318071
+2004318071
+2004318071
+2004318071
+2122219134
+2122219134
+2122218877
+2088467065
+2021161080
+2037938295
+1987475318
+1970631797
+1987540855
+2004318071
+1970632310
+1987475062
+2004318071
+2004318071
+2004318071
+2004318071
+2122219134
+2122219134
+2122218877
+2088467065
+2021161080
+2037938295
+1987475318
+1970631797
+1987540855
+2004318071
+1970632310
+1987475062
+2004318071
+2004318071
+2004318071
+2004318071
+2122219134
+2122219134
+2122218877
+2088467065
+2021161080
+2037938295
+1987475318
+1970631797
+1987540855
+2004318071
+1970632310
+1987475062
+2004318071
+2004318071
+2004318071
+2004318071
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+-1313754703
+-1313754703
+-1313754703
+-1313754703
+-1309682045
+1279267943
+1180434447
+906297348
+-542962148
+851968
+928779776
+117441793
+2826
+50331649
+17172992
+12
+-1174269933
+-1125321554
+-1701967616
+-247337284
+1984690357
+-986775529
+15138947
+285736960
+-115140859
+1406306994
+-136970240
+527616
+0
+0
+0
+0
+151587081
+151587081
+151587081
+151587081
+156343830
+520355843
+1588856326
+1436748036
+465731963
+1560315777
+-330563568
+958070799
+1868365829
+256
+-1186462462
+335741440
+201786368
+787456
+34537480
+268439552
+-1240397824
+-791675980
+-1484974827
+-481756490
+1867117742
+-241560319
+137049740
+1598543662
+774778414
+774778414
+774778414
+774778414
+252645135
+252645135
+252645135
+252645135
+256007959
+-725677600
+-89125152
+-869396887
+1838387480
+1393318227
+-1843897185
+1961072414
+471501765
+315661956
+-971009632
+-1815961607
+-1347692506
+-1977332225
+1793149445
+-988945568
+227529292
+891396299
+-1353946026
+657609427
+453895015
+145731089
+50397201
+920458
+-1970632054
+-1970632054
+-1970632054
+-1970632054
+218959117
+218959117
+218959117
+218959117
+218235655
+101018884
+491782164
+-1643577327
+151977984
+210894835
+1947009024
+83980421
+-1283961224
+-248617515
+-1733071193
+637779792
+-331939642
+1319415853
+-648088662
+-481558036
+1891297551
+24196662
+1750599371
+15602043
+-1406242702
+1674510152
+-223527917
+1731951319
+-673720361
+-673720361
+-673720361
+-673720361
+-1077952577
+-1077952577
+-1077952577
+-1077952577
+-1075729206
+577324646
+-1305717895
+-996832804
+408010295
+-2099408356
+-1974197762
+674089301
+-1676449643
+-1592993586
+-624834520
+927758521
+543050036
+209181738
+1254105424
+-1700013127
+-156328020
+-1857545599
+-1282481477
+-1892374695
+1012306117
+2069285186
+1347960866
+-318242560
+0
+0
+0
+0
+-1970632054
+-1970632054
+-1970632054
+-1970632054
+-1964527726
+240140813
+1116642918
+1447710607
+-5333940
+-445870070
+-1691278170
+-1185106354
+-1366594010
+-955587938
+1383857056
+-1570213822
+1452953585
+1809735388
+2015690197
+-102961302
+1658164377
+-2090372439
+1428185247
+-896864459
+1411269094
+1253619585
+1561746310
+1068106381
+-1920103027
+-1920103027
+-1920103027
+-1920103027
+-640034343
+-640034343
+-640034343
+-640034343
+-641901875
+-1318565045
+1178002294
+-1351070257
+731835885
+923179858
+-852389571
+-717024363
+-527117405
+-1504395362
+-753577040
+-1081723431
+-1276231972
+880826125
+-1200264994
+1671905573
+-1915227737
+1082347499
+975530879
+-1237484990
+835185263
+1152039327
+-1716598685
+-690680568
+134744072
+134744072
+134744072
+134744072
+1313754702
+1313754702
+1313754702
+1313754702
+1313755470
+1313754703
+1280200270
+1313754446
+1313754702
+1313754702
+1280003405
+1330401874
+1347440720
+1347506256
+1364283729
+1364283729
+1364282961
+1364283472
+1330531918
+1313754701
+1246316873
+1229539401
+1145521991
+1195787079
+1212762440
+1145653576
+1195853125
+1145454899
+858993459
+858993459
+858993459
+858993459
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754701
+1296911951
+1347506514
+1364283729
+1364283729
+1364283729
+1364283729
+1364283729
+1364283728
+1330531918
+1313754701
+1263159882
+1246382665
+1212630855
+1195853639
+1212696648
+1212696647
+1195853122
+1145454131
+858993459
+858993459
+858993459
+858993459
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1330597711
+1330597711
+1330597711
+1330597711
+1313755216
+1364349522
+1364283729
+1364283729
+1364283729
+1364283729
+1364283729
+1364283728
+1330531918
+1313754701
+1280002891
+1263225674
+1229473864
+1212696648
+1195853639
+1195853639
+1179076163
+1162231604
+875836468
+875836468
+875836468
+875836468
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1330597711
+1330597711
+1347440720
+1347440720
+1347440977
+1381126739
+1381126738
+1381126738
+1364283729
+1364283729
+1364283729
+1364283728
+1330531918
+1313754702
+1280068684
+1280068683
+1246316873
+1229539657
+1195853639
+1195853639
+1195918915
+1162297140
+875836468
+875836468
+875836468
+875836468
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754703
+1330663504
+1347440720
+1364283729
+1364283729
+1364283986
+1397970004
+1381126738
+1381126738
+1364283729
+1364283729
+1364283729
+1364283728
+1330531918
+1313754702
+1296911693
+1296911693
+1263225675
+1263225674
+1229473864
+1212696648
+1195919172
+1179074613
+892679477
+892679477
+892679477
+892679477
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754703
+1330663504
+1347440721
+1364349522
+1381126738
+1397970003
+1414812756
+1397969747
+1397969747
+1364283729
+1364283729
+1364283729
+1364283728
+1330531918
+1313754702
+1313754702
+1313754702
+1280068684
+1280068683
+1246316873
+1229539657
+1212761925
+1179140149
+892679477
+892679477
+892679477
+892679477
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754703
+1347506513
+1364283730
+1381192531
+1397969748
+1414813012
+1431589972
+1414746963
+1397969747
+1364283729
+1364283729
+1364283729
+1364283728
+1330531918
+1313754702
+1330597711
+1330597710
+1296845900
+1280068684
+1263225675
+1263225674
+1229539397
+1195917622
+909522486
+909522486
+909522486
+909522486
+1330597711
+1330597711
+1330597711
+1330597711
+1330597711
+1330597712
+1364349522
+1381126739
+1414878549
+1431655765
+1448629591
+1532384342
+1397642572
+1464751189
+1347309395
+1313821007
+1330859600
+1380929617
+1330532174
+1296649551
+1330532431
+1330466385
+1296911693
+1313754702
+1313754445
+1296911692
+1246382150
+1212760372
+875836468
+875836468
+875836468
+875836468
+1364283729
+1364283729
+1364283729
+1364283729
+1364283729
+1364283730
+1398035540
+1414812757
+1431721558
+1448498773
+1448563548
+1515605588
+1380996426
+1649234774
+1431133011
+1363826770
+1364479831
+1364283730
+1364284752
+1363692625
+1347441999
+1380733265
+1330531919
+1330597968
+1330531918
+1296911692
+1263159880
+1212957489
+825307441
+825307441
+825307441
+825307441
+1397969747
+1397969747
+1397969747
+1397969747
+1397969747
+1397969748
+1414878549
+1431655766
+1448564567
+1465341778
+1364677716
+1331188562
+1432244825
+1381192780
+1280530515
+1532253527
+1431589718
+1314148693
+1431526482
+1447906392
+1347702867
+1447648079
+1347374928
+1364283985
+1330531917
+1296845899
+1229474120
+1213023537
+825307441
+825307441
+825307441
+825307441
+1431655765
+1431655765
+1431655765
+1431655765
+1431655765
+1431655765
+1448498774
+1448498774
+1465341783
+1465341779
+1432246872
+1347966296
+1464878176
+1280138826
+1247500104
+1582321244
+1398101078
+1297502551
+1464621132
+1465273174
+1447778381
+1330531663
+1347506770
+1397969746
+1364217935
+1330531916
+1246317386
+1280395573
+892679477
+892679477
+892679477
+892679477
+1465341783
+1465341783
+1465341783
+1465341783
+1465341783
+1465341783
+1465341783
+1465341783
+1465341783
+1465341777
+1382112348
+1549422691
+1365268060
+-1621597597
+1565680208
+1800101729
+1449414495
+1633180516
+1632591954
+1600344412
+1600153175
+1565872730
+1498764629
+1431655764
+1431655764
+1414746963
+1414813013
+1448825662
+1044266558
+1044266558
+1044266558
+1044266558
+1482184792
+1482184792
+1482184792
+1482184792
+1482184792
+1482184792
+1482184792
+1482184792
+1465341783
+1465341784
+1705418628
+-1885303401
+-1718711188
+-1251105371
+-1821993332
+-1602902888
+2023517837
+-1635873641
+-1769364852
+-1953923434
+2007402124
+-1686793063
+1482184792
+1482184535
+1499093593
+1498962009
+1532779867
+1532974914
+1111638594
+1111638594
+1111638594
+1111638594
+1499027801
+1499027801
+1499027801
+1499027801
+1499027801
+1499027801
+1499027801
+1499027801
+1465341783
+1465341785
+-1971226458
+-1385408594
+-1736463449
+-1652772506
+-1149590369
+-1602242133
+-2086045542
+-1383359580
+-1936873842
+2121364114
+1956809871
+-1551524437
+1532713819
+1515870554
+1532779611
+1532648025
+1482053461
+1431851066
+976894522
+976894522
+976894522
+976894522
+1482184792
+1482184792
+1482184792
+1482184792
+1482184792
+1482184793
+1499093594
+1515870809
+1482118999
+1465341787
+1721604218
+1937667446
+1801278553
+1821750170
+-1939377550
+1616213621
+1500731753
+1885694829
+1684238948
+1565480039
+1566665565
+1852663160
+1600019805
+1549491035
+1532713562
+1499027799
+1414681169
+1364544824
+943208504
+943208504
+943208504
+943208504
+1482184792
+1482184792
+1482184792
+1482184792
+1482184792
+1482184793
+1499093594
+1515870809
+1465275991
+1465407574
+1415668830
+1313888612
+1247698055
+-1211526041
+1650613346
+1364676438
+1381587033
+1365007451
+1481724500
+1633377634
+1700685918
+1717985891
+1616797021
+1549556827
+1498962008
+1465341782
+1414747219
+1398296380
+1010580540
+1010580540
+1010580540
+1010580540
+1465341783
+1465341783
+1465341783
+1465341783
+1465341783
+1465341784
+1499093337
+1499028057
+1465341783
+1482185047
+1347769170
+1364414549
+1465341314
+-1384234693
+1836016218
+1314413137
+1381521494
+1482250073
+1566794593
+1650549346
+1650285661
+1583308122
+1549688157
+1549491033
+1482118999
+1465341783
+1448367445
+1431850557
+1027423549
+1027423549
+1027423549
+1027423549
+1465341783
+1465341783
+1465341783
+1465341783
+1465341783
+1465341784
+1482250843
+1532647769
+1499027801
+1499027543
+1448432981
+1431655764
+1346776114
+1330334306
+-1366266533
+1465408092
+1583308639
+1600085856
+1616994657
+1633771872
+1566334044
+1549556828
+1566399580
+1549491034
+1482118999
+1465341784
+1465210198
+1431784764
+1010580540
+1010580540
+1010580540
+1010580540
+1482184792
+1482184792
+1482184792
+1482184792
+1482184792
+1482184792
+1465407834
+1515804760
+1515936345
+1482118740
+1364152143
+1330597711
+1381184286
+793274772
+-1703321761
+1717723748
+1684037728
+1616928863
+1583177053
+1566399837
+1549556828
+1549556828
+1566399836
+1549556570
+1498962008
+1482184793
+1482053206
+1431785020
+1010580540
+1010580540
+1010580540
+1010580540
+1482184792
+1482184792
+1482184792
+1482184792
+1482184792
+1482184793
+1499027801
+1499027802
+1498962007
+1465275989
+1397903954
+1381126738
+1449283115
+759254103
+1767725667
+1767988058
+1532713819
+1532713819
+1532713819
+1532713820
+1549622621
+1566399837
+1583242589
+1566334043
+1498962008
+1482184793
+1482053207
+1448627773
+1027423549
+1027423549
+1027423549
+1027423549
+1499027801
+1499027801
+1499027801
+1499027801
+1499027801
+1499027802
+1532713303
+1465473883
+1515870811
+1532779613
+1600085855
+1600085853
+1566658087
+590555936
+1230857825
+1516002137
+1482316378
+1515870811
+1532779612
+1549556828
+1566399837
+1566399838
+1583242846
+1566399579
+1515805017
+1499027802
+1498896215
+1465470781
+1027423549
+1027423549
+1027423549
+1027423549
+1499027801
+1499027801
+1499027801
+1499027801
+1499027801
+1499027800
+1482118485
+1431656282
+1549754465
+1650680932
+1650614882
+1650614884
+1650479147
+607597091
+760111708
+1432183904
+1566268251
+1532713820
+1549622621
+1566399837
+1583242846
+1583242846
+1600085854
+1583177052
+1515805017
+1499027802
+1498896216
+1465470782
+1044266558
+1044266558
+1044266558
+1044266558
+1515870810
+1515870810
+1515870810
+1515870810
+1515870810
+1515870810
+1515937633
+1633639261
+1617126243
+1667458146
+1599954269
+1566399840
+1633770297
+573385768
+557338715
+1515805532
+1549556828
+1549556829
+1566465630
+1583242846
+1583242846
+1583242847
+1600085855
+1583242588
+1532648026
+1515870811
+1515739224
+1482313790
+1044266558
+1044266558
+1044266558
+1044266558
+1566399837
+1566399837
+1566399837
+1566399837
+1566399837
+1566399838
+1634299509
+1970169955
+1650549089
+1616928607
+1583242846
+1583242846
+1600217672
+741093949
+505821272
+1599888479
+1566268251
+1532713819
+1566465630
+1583242846
+1600085855
+1600085856
+1616928864
+1600085854
+1566334044
+1549491035
+1532581977
+1482314047
+1061109567
+1061109567
+1061109567
+1061109567
+1600085855
+1600085855
+1600085855
+1600085855
+1600085855
+1600085856
+1616929121
+1616994914
+1616928863
+1600020062
+1583242846
+1583242849
+1616731729
+992883522
+639706415
+1247502432
+1566268508
+1549556828
+1566465630
+1583242846
+1616994657
+1633771873
+1616928864
+1616928863
+1583242845
+1566334044
+1549359450
+1499156799
+1061109567
+1061109567
+1061109567
+1061109567
+1566399837
+1566399837
+1566399837
+1566399837
+1566399837
+1566399837
+1566399837
+1566399837
+1583308639
+1600085855
+1600085855
+1600085858
+1633310293
+1211380026
+942284840
+1062559325
+1549557085
+1566399837
+1583243103
+1600085855
+1616994657
+1633771873
+1600085855
+1600085855
+1600020062
+1566399581
+1549359705
+1499091519
+1061109567
+1061109567
+1061109567
+1061109567
+1499027801
+1499027801
+1499027801
+1499027801
+1499027801
+1499027801
+1515936860
+1549556829
+1566465887
+1600085855
+1600085855
+1600085859
+1633113951
+1396190778
+1144398626
+927815513
+1549622878
+1583242846
+1600086112
+1616928864
+1633771873
+1633771872
+1600020062
+1583242846
+1583242845
+1566334045
+1532516697
+1499091262
+1044266558
+1044266558
+1044266558
+1044266558
+1515870810
+1515870810
+1515870810
+1515870810
+1515870810
+1515870810
+1499093851
+1532713819
+1566465887
+1600085855
+1600085855
+1600085858
+1649957221
+1480075827
+1346250016
+843864410
+1566465887
+1600085855
+1600151648
+1616928864
+1633771873
+1633771872
+1600020062
+1583242846
+1600020062
+1566399580
+1549359449
+1482314047
+1061109567
+1061109567
+1061109567
+1061109567
+1532713819
+1532713819
+1532713819
+1532713819
+1532713819
+1532713819
+1515871067
+1532713819
+1566465887
+1600085855
+1600085855
+1600085858
+1650154850
+1395861041
+1228744739
+911302238
+1583308896
+1616928864
+1616994657
+1633771873
+1650614882
+1650614881
+1616863071
+1600085855
+1616863071
+1583242589
+1549359450
+1499156800
+1077952576
+1077952576
+1077952576
+1077952576
+1532713819
+1532713819
+1532713819
+1532713819
+1532713819
+1532713819
+1532779612
+1549556829
+1566465887
+1600085855
+1600085855
+1600085856
+1633705816
+1143743792
+909585450
+1045914465
+1616929121
+1633771873
+1633771873
+1633771873
+1667523684
+1684300900
+1667457891
+1667457891
+1650549089
+1616928607
+1582979930
+1515934528
+1077952576
+1077952576
+1077952576
+1077952576
+1532713819
+1532713819
+1532713819
+1532713819
+1532713819
+1532713819
+1549557085
+1566399837
+1583308639
+1600085855
+1600085855
+1600085855
+1600216907
+824517929
+707604787
+1163551071
+1600217698
+1650614882
+1650614882
+1650614883
+1684432486
+1717986918
+1717986918
+1717986918
+1684235107
+1650614625
+1599822940
+1549620290
+1111638594
+1111638594
+1111638594
+1111638594
+1532713819
+1532713819
+1532713819
+1532713819
+1532648028
+1566399323
+1549556830
+1599888992
+1600020064
+1616863330
+1650483297
+1650614365
+1583307837
+437396028
+589307694
+1196842333
+1600217442
+1667392098
+1667392097
+1667523941
+1718052968
+1734764135
+1734829928
+1734830182
+1701208930
+1667457890
+1650285915
+1516000063
+1061109567
+1061109567
+1061109567
+1061109567
+1566399837
+1566399837
+1566399837
+1566399837
+1566202460
+1566267740
+1717262687
+1599757412
+1583177310
+1600085857
+1616863331
+1701077344
+1599821874
+320084253
+672863011
+1096047710
+1616863330
+1633772387
+1650680418
+1684366950
+1718052969
+1751475814
+1734895722
+1768384870
+1701274465
+1717920099
+1667260509
+1549685308
+1010580540
+1010580540
+1010580540
+1010580540
+1583242846
+1583242846
+1583242846
+1583242846
+1583242330
+1481987933
+1532384860
+1549293145
+1549753947
+1566530907
+1516002655
+1633771360
+1633506607
+404825134
+588976412
+995318622
+1599888480
+1583374944
+1633837667
+1684431972
+1684367208
+1751607400
+1768647277
+1835690855
+1701274722
+1717854050
+1684366946
+1650677052
+1010580540
+1010580540
+1010580540
+1010580540
+1280068684
+1280068684
+1280068684
+1280068684
+1280002638
+1381059915
+1297570136
+1549951840
+1634034013
+1600151131
+1650482010
+1549754466
+1582648876
+388115517
+774907948
+1180460134
+1684104553
+1701275491
+1684498536
+1734763875
+1633837923
+1735093354
+1768581995
+1835755623
+1718117988
+1684168289
+1684367204
+1667520575
+1061109567
+1061109567
+1061109567
+1061109567
+842150450
+842150450
+842150450
+842150450
+841887550
+1347501865
+556280620
+1046244204
+1936748144
+1869246326
+1953261158
+1751936884
+1986946880
+606944086
+-2088341160
+1448694867
+1465540704
+1499159895
+1600284520
+1734698343
+1717920866
+1650746722
+1667589989
+1734828902
+1718052193
+1616863331
+1684300893
+1516131648
+1077952576
+1077952576
+1077952576
+1077952576
+724249387
+724249387
+724249387
+724249387
+724184898
+1465666873
+774646056
+1012623977
+1852204656
+1818258827
+-1751805292
+-1734565723
+-1482779029
+1212901003
+-1010387051
+-2139128972
+1920037222
+1499623017
+1684236392
+1700880997
+1700748896
+1684300131
+1683973730
+1600479846
+1734631774
+1583375716
+1667457883
+1448760129
+1094795585
+1094795585
+1094795585
+1094795585
+892679477
+892679477
+892679477
+892679477
+892745528
+942878253
+724117290
+1028873307
+1868915822
+1801482126
+-1684564844
+-1717591130
+-1550017673
+1398439336
+-1094532440
+-1851740507
+-1684763530
+1702203281
+2122021748
+1734105701
+1953525619
+1919508832
+1868392805
+1516726631
+1667062879
+1634101601
+1532979560
+1667454529
+1094795585
+1094795585
+1094795585
+1094795585
+1212696648
+1212696648
+1212696648
+1212696648
+1212961365
+1397839975
+1919310430
+1735225458
+2003790186
+1768320893
+2087938920
+1802664314
+1970437481
+1263892908
+-1010911603
+1567325812
+-2038005143
+1466599049
+-2021293191
+1733908834
+-1382180450
+-1736413333
+2086366312
+1416130919
+1548900965
+1802464348
+1264483208
+-2055511742
+1111638594
+1111638594
+1111638594
+1111638594
+1263225675
+1263225675
+1263225675
+1263225675
+1263226968
+1498370652
+1716731457
+1280333408
+1532118075
+1027884101
+1178810934
+943605071
+1465675355
+1382056116
+-1163021189
+1381001825
+1667986020
+1382120055
+1852730987
+1650155116
+2054124415
+-2106431893
+2052812911
+1349415274
+1481529451
+1886546785
+1080134051
+-1617989556
+1280068684
+1280068684
+1280068684
+1280068684
+1347440720
+1347440720
+1347440720
+1347440720
+1347309656
+1549752407
+1481462622
+1935830367
+1532978276
+1616599387
+1548632383
+1044467554
+1852727369
+1164812976
+-1245989770
+1415076435
+1398431811
+994265954
+1666276448
+1633772133
+1650680687
+1970236782
+1936561264
+1886020707
+1600482412
+1869506921
+1836350848
+-2055181742
+1381126738
+1381126738
+1381126738
+1381126738
+1431655765
+1431655765
+1431655765
+1431655765
+1431524437
+1397574219
+1195196232
+1598904652
+1128153409
+1077887300
+1380268604
+1094928975
+1364610622
+1215798695
+-1363888776
+1263685968
+1448894297
+1685288311
+1598246490
+1667588961
+1633838446
+1970564972
+1819053415
+1482181460
+1549952871
+1734764135
+1785752423
+1751339323
+993737531
+993737531
+993737531
+993737531
+1061109567
+1061109567
+1061109567
+1061109567
+1061109566
+908996407
+959788606
+1447317314
+807740710
+623257901
+1026631468
+892811065
+1045187134
+1248955542
+-1515144836
+1078871621
+1230001756
+1753456811
+1547386951
+1297175375
+1245989207
+1600084308
+1381201483
+926626623
+1213157714
+1381060949
+1414547523
+1178810149
+623191333
+623191333
+623191333
+623191333
+993737531
+993737531
+993737531
+993737531
+993738048
+1044003904
+993210937
+1413433668
+1026830381
+724184113
+841688877
+859058993
+708328501
+1029272193
+-1565344382
+876818475
+673924466
+-1867660114
+1362768685
+724646206
+1010253386
+1364017980
+1010919741
+657403186
+858796081
+791555630
+757803304
+707404314
+437918234
+437918234
+437918234
+437918234
+404232216
+404232216
+404232216
+404232216
+404035617
+673719849
+690364968
+1160524595
+757341723
+404166937
+404100889
+471538198
+320282404
+776298099
+-1565084026
+657726233
+403580786
+-1463566727
+1482248520
+1162432852
+1195591244
+1296250411
+657217837
+320410902
+370546968
+387323418
+454695193
+420876558
+235802126
+235802126
+235802126
+235802126
+370546198
+370546198
+370546198
+370546198
+370283806
+623124253
+437785371
+958144034
+555489559
+404298008
+370612505
+387389464
+403903775
+758925398
+-1565546611
+624106779
+471608669
+1870827339
+792279354
+993869635
+1196116812
+1211969838
+825582393
+471734812
+471538203
+437984542
+488250398
+521934609
+286331153
+286331153
+286331153
+286331153
+404232216
+404232216
+404232216
+404232216
+404100891
+488183319
+404165148
+991565853
+505157913
+471736093
+471670042
+437984288
+538383391
+775632185
+-1481335402
+623844375
+489570391
+1129412157
+657339192
+1010646592
+1128613449
+1246183998
+925785659
+522265123
+404430882
+589637674
+724447795
+892414749
+488447261
+488447261
+488447261
+488447261
+404232216
+404232216
+404232216
+404232216
+404298267
+403969561
+421008158
+941101591
+437654292
+387454486
+404428820
+387585815
+420681767
+791294770
+-1195664749
+541137692
+454959158
+827555890
+977158209
+1145391183
+1482580586
+1869772152
+2020908156
+1920496773
+-1886021995
+-1802069607
+-1751739498
+-1937014420
+1819044972
+1819044972
+1819044972
+1819044972
+437918234
+437918234
+437918234
+437918234
+437919005
+420944158
+487924008
+992354077
+420812823
+336993564
+471604767
+572994621
+1094665551
+1110061925
+-1699766377
+1935308412
+2088663677
+-2070964855
+-1937010535
+-1667655530
+-1785425008
+-1886417006
+-1819113066
+-1869377134
+-1886680180
+-1903260786
+-1835886196
+-1970111413
+1263225675
+1263225675
+1263225675
+1263225675
+488447261
+488447261
+488447261
+488447261
+488382499
+572596776
+758200635
+1279673671
+1398168153
+1583376491
+1954383247
+-1835690347
+-1768449905
+1800631464
+-1768450398
+-1837596021
+-1920102506
+-1819373429
+-1987475318
+-1902930795
+-1853191800
+-1987474805
+-1953591148
+2138734222
+-1938066321
+1835887721
+1684105850
+2104183865
+960051513
+960051513
+960051513
+960051513
+-1701143910
+-1701143910
+-1701143910
+-1701143910
+-1701341029
+-1701407074
+-1617325949
+-1886350706
+-1836018802
+-1768975988
+-2004380262
+-1920497528
+-1919969383
+-1970754098
+2068995454
+-1887468914
+-1852929648
+-1853125761
+-2087154052
+2054977392
+1784963424
+1600019544
+1533375605
+1330339966
+-2123932588
+1364218705
+1398630776
+1967922960
+269488144
+269488144
+269488144
+269488144
+-1920103027
+-1920103027
+-1920103027
+-1920103027
+-1920432247
+-2004712568
+-2088271758
+-2071228021
+-2004053628
+-1870362487
+-1936481377
+-2004777084
+-2139521146
+2105446546
+857349949
+1448962153
+1617390446
+1683380827
+1855095136
+1515934545
+1364481364
+1397903960
+1701937021
+1347052671
+-2106167704
+1701275757
+2005303157
+1952794151
+656877351
+656877351
+656877351
+656877351
+-1852730991
+-1852730991
+-1852730991
+-1852730991
+-1853060469
+-1987606389
+-1953855878
+-2004186494
+-2087939456
+-1803384433
+2105048708
+-2122155673
+1583112282
+1178749239
+522329379
+809653840
+1500611461
+1614299234
+1652782939
+1533239397
+1768713327
+1937276285
+2003664518
+1633314674
+1936616557
+1869640309
+2140047234
+-1784311708
+1684300900
+1684300900
+1684300900
+1684300900
+-1835887982
+-1835887982
+-1835887982
+-1835887982
+-1836086909
+-2139127939
+2088599156
+2054320490
+1769177454
+2136163657
+1262897770
+-1852080288
+1347376470
+1364678456
+639968033
+658596191
+1954314873
+1597717328
+1753776240
+1920563833
+2004054645
+2038400646
+-2105306463
+-1954317191
+1970303348
+2021358457
+2071889810
+-1515351193
+1734829927
+1734829927
+1734829927
+1734829927
+1717986918
+1717986918
+1717986918
+1717986918
+1718051158
+1432116566
+1415144288
+1717331058
+1686214783
+-2042683624
+961368431
+-1853332135
+1448631908
+1735683911
+353244182
+591227270
+-1836550271
+-2123537307
+1887402870
+1970632053
+1936945519
+1886813571
+-1600019795
+-1651475337
+1936814707
+1970698362
+-2138468464
+-1987743148
+1414812756
+1414812756
+1414812756
+1414812756
+1751672936
+1751672936
+1751672936
+1751672936
+1752264290
+1837007743
+2122219638
+1868062580
+2005704572
+2083985945
+675764593
+-2123604623
+1718384239
+1752200806
+605951767
+540697489
+-2123269488
+-1820362887
+2037674872
+2021095547
+2071820409
+2139656337
+-1869838195
+-2021691021
+2004514675
+1920169078
+-2137547127
+2037738313
+1229539657
+1229539657
+1229539657
+1229539657
+1600085855
+1600085855
+1600085855
+1600085855
+1600086115
+1600151907
+1735360379
+1953855882
+-1434167202
+-2122024591
+1632790135
+2054780012
+1802333554
+1852862312
+1226316055
+489312635
+-1802269808
+-1802599300
+2037741432
+2021095546
+1970435965
+-2003790704
+-2055243143
+1987407985
+1987671666
+1869706875
+-1617393794
+1835623234
+1111638594
+1111638594
+1111638594
+1111638594
+1936946035
+1936946035
+1936946035
+1936946035
+1936946289
+1869575026
+1869443954
+1988267427
+-1670092931
+-1599099738
+-1922271873
+2088400752
+1869837685
+1970631795
+1631396121
+507474580
+-1600746876
+-2038071948
+1903392118
+1970632311
+1768649857
+-1936683645
+2071492212
+1920169076
+1936813931
+1819509133
+-1886880908
+1785291585
+1094795585
+1094795585
+1094795585
+1094795585
+1869573999
+1869573999
+1869573999
+1869573999
+1869771636
+1970830209
+-2139325062
+2106101140
+-2039054442
+-1397509975
+-1685683071
+2054715252
+1937143158
+1987409783
+1834238533
+1382845082
+-1735754377
+1987473773
+1852994676
+1920037490
+1920566412
+-1903591563
+1903325552
+1886483572
+1936748142
+1920897433
+-2055573139
+1768645950
+1044266558
+1044266558
+1044266558
+1044266558
+1785358954
+1785358954
+1785358954
+1785358954
+1785556847
+1903392889
+2003924595
+1920298607
+2056362653
+-1684433776
+-1903458690
+2021029491
+1903194738
+1936946290
+1801479801
+-1970368884
+-2072415889
+1886548077
+1869837427
+1869442676
+-2121232502
+-2089193107
+1836019311
+1903326840
+2021161341
+-2070963299
+-2122549388
+1937272386
+1111638594
+1111638594
+1111638594
+1111638594
+2105376125
+2105376125
+2105376125
+2105376125
+2105375867
+2021095802
+1987082361
+2055176070
+-1817598567
+-1937076853
+-1987806346
+1987408753
+1886417267
+1970631278
+1835825037
+-1735161727
+2020766066
+1953854320
+1869640049
+1886483834
+-1819046781
+2037675129
+2105574019
+-2054583409
+-1852797035
+-1633245279
+-1650813035
+-1801811110
+1515870810
+1515870810
+1515870810
+1515870810
+-2054847099
+-2054847099
+-2054847099
+-2054847099
+-2054913152
+2122153854
+2037478511
+1904184480
+-1465476218
+2054914177
+2138665584
+1987539569
+1903391605
+1987343472
+1887012240
+-1802928774
+1953526388
+1987408240
+1903326584
+2072152723
+-1751871349
+-1970499175
+-1599822424
+-1414614603
+-1212895054
+-1195524677
+-1145061957
+-1145000841
+2004318071
+2004318071
+2004318071
+2004318071
+2054847098
+2054847098
+2054847098
+2054847098
+2054847355
+2054847871
+2088071786
+1887737252
+-1634169988
+1902996590
+1937141872
+2038002289
+1903259759
+1869640307
+1972474255
+-1954515336
+2021161596
+2088599425
+-2054648688
+-1784895828
+-1431918164
+-1330465607
+-1128415294
+-976762676
+-825373752
+-943076406
+-892482613
+-892290176
+-2139062144
+-2139062144
+-2139062144
+-2139062144
+2021161080
+2021161080
+2021161080
+2021161080
+2021095027
+1920169078
+1987409010
+2106957736
+-1953856131
+2003988078
+1886613616
+2004250991
+1852598890
+1836218755
+-1902668914
+-2004779377
+-2071425393
+-1835557729
+-1532515925
+-1346978624
+-1061174329
+-976894523
+-976894008
+-892547633
+-791688246
+-993539128
+-943077432
+-942817670
+2054847098
+2054847098
+2054847098
+2054847098
+2004318071
+2004318071
+2004318071
+2004318071
+2004317041
+1886483060
+1869903998
+-1733714550
+2139061627
+2020962671
+1886613874
+1987540596
+1920037235
+2038598803
+-1667196008
+-1802461531
+-1414748250
+-1431062601
+-1161706556
+-976894007
+-909521973
+-859059511
+-943274039
+-892547633
+-808466761
+-1094268216
+-959854904
+-926104712
+2021161080
+2021161080
+2021161080
+2021161080
+2038004089
+2038004089
+2038004089
+2038004089
+2038003574
+1987475318
+1735688583
+-1784704383
+2004186485
+1970632054
+1987475321
+2088731267
+-2054649203
+-1801606994
+-1280004175
+-1381452870
+-1077755714
+-1010053430
+-926431031
+-909456694
+-909588537
+-943208505
+-976894522
+-926299444
+-842218825
+-1144534329
+-943077176
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+1903260017
+1903260017
+1903260017
+1903260017
+1903326325
+1953789043
+1837404815
+-1852602244
+1970566776
+2055045250
+-2088466806
+-1902996069
+-1582979157
+-1330069306
+-909524285
+-1112162621
+-993738306
+-1010053428
+-875902262
+-909522488
+-943274298
+-960051515
+-976894522
+-943142708
+-808334653
+-959524917
+-909522744
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+1920103026
+1920103026
+1920103026
+1920103026
+1920235127
+2021359235
+-2086820713
+-1886550398
+-2138930040
+-1936616040
+-1667259739
+-1448300621
+-1195787588
+-1043804718
+-724383031
+-1028079420
+-960118596
+-1060582455
+-892613943
+-926431546
+-993737532
+-993737532
+-993737531
+-960051254
+-808136243
+-824978739
+-892745528
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+2004318071
+2004318071
+2004318071
+2004318071
+2004384379
+2105707409
+-1666143595
+-1886088043
+-1717789279
+-1515540813
+-1195524416
+-1027291707
+-1010711869
+-942944046
+-758003255
+-1061699388
+-993804871
+-1111111480
+-926233911
+-926497340
+-1027357757
+-1010580541
+-1010580284
+-993671737
+-892416307
+-842084917
+-909522744
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-2105376126
+-2105376126
+-2105376126
+-2105376126
+-2105310076
+-2054449502
+-1414288746
+-1733907281
+-1279936840
+-1145192254
+-976762937
+-926365497
+-993803581
+-976630579
+-842152251
+-1078476861
+-1027754063
+-1262632511
+-1010317370
+-976960574
+-1044266559
+-1044266558
+-1027357500
+-993803324
+-993539896
+-926431801
+-926299960
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1734829928
+-1734829928
+-1734829928
+-1734829928
+-1734697828
+-1684101457
+-1229147484
+-1380007231
+-1010448955
+-976894523
+-976960316
+-993737532
+-1010646333
+-993605431
+-926432830
+-1112030779
+-960250955
+-1195326269
+-1027357501
+-1027489344
+-1044266816
+-1061109567
+-1044134717
+-1010580542
+-993605945
+-943274553
+-926299960
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1600085856
+-1600085856
+-1600085856
+-1600085856
+-1599821656
+-1532778319
+-1161510730
+-1076900151
+-909391159
+-943274812
+-993671482
+-959985721
+-993869374
+-1010448442
+-976896063
+-1112030778
+-960119113
+-1161574459
+-1010580542
+-1027489343
+-1061109568
+-1061109568
+-1044134973
+-1010580797
+-993605688
+-943274296
+-892745528
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1600085856
+-1600085856
+-1600085856
+-1600085856
+-1599821656
+-1532778319
+-1161510730
+-1076900151
+-909391159
+-943274812
+-993671482
+-959985721
+-993869374
+-1010448442
+-976896063
+-1112030778
+-960119113
+-1161574459
+-1010580542
+-1027489343
+-1061109568
+-1061109568
+-1044134973
+-1010580797
+-993605688
+-943274296
+-892745528
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1600085856
+-1600085856
+-1600085856
+-1600085856
+-1599821656
+-1532778319
+-1161510730
+-1076900151
+-909391159
+-943274812
+-993671482
+-959985721
+-993869374
+-1010448442
+-976896063
+-1112030778
+-960119113
+-1161574459
+-1010580542
+-1027489343
+-1061109568
+-1061109568
+-1044134973
+-1010580797
+-993605688
+-943274296
+-892745528
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1600085856
+-1600085856
+-1600085856
+-1600085856
+-1599821656
+-1532778319
+-1161510730
+-1076900151
+-909391159
+-943274812
+-993671482
+-959985721
+-993869374
+-1010448442
+-976896063
+-1112030778
+-960119113
+-1161574459
+-1010580542
+-1027489343
+-1061109568
+-1061109568
+-1044134973
+-1010580797
+-993605688
+-943274296
+-892745528
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1600085856
+-1600085856
+-1600085856
+-1600085856
+-1599821656
+-1532778319
+-1161510730
+-1076900151
+-909391159
+-943274812
+-993671482
+-959985721
+-993869374
+-1010448442
+-976896063
+-1112030778
+-960119113
+-1161574459
+-1010580542
+-1027489343
+-1061109568
+-1061109568
+-1044134973
+-1010580797
+-993605688
+-943274296
+-892745528
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1600085856
+-1600085856
+-1600085856
+-1600085856
+-1599821656
+-1532778319
+-1161510730
+-1076900151
+-909391159
+-943274812
+-993671482
+-959985721
+-993869374
+-1010448442
+-976896063
+-1112030778
+-960119113
+-1161574459
+-1010580542
+-1027489343
+-1061109568
+-1061109568
+-1044134973
+-1010580797
+-993605688
+-943274296
+-892745528
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1600085856
+-1600085856
+-1600085856
+-1600085856
+-1599821656
+-1532778319
+-1161510730
+-1076900151
+-909391159
+-943274812
+-993671482
+-959985721
+-993869374
+-1010448442
+-976896063
+-1112030778
+-960119113
+-1161574459
+-1010580542
+-1027489343
+-1061109568
+-1061109568
+-1044134973
+-1010580797
+-993605688
+-943274296
+-892745528
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1600085856
+-1600085856
+-1600085856
+-1600085856
+-1599821656
+-1532778319
+-1161510730
+-1076900151
+-909391159
+-943274812
+-993671482
+-959985721
+-993869374
+-1010448442
+-976896063
+-1112030778
+-960119113
+-1161574459
+-1010580542
+-1027489343
+-1061109568
+-1061109568
+-1044134973
+-1010580797
+-993605688
+-943274296
+-892745528
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1600085856
+-1600085856
+-1600085856
+-1600085856
+-1599821656
+-1532778319
+-1161510730
+-1076900151
+-909391159
+-943274812
+-993671482
+-959985721
+-993869374
+-1010448442
+-976896063
+-1112030778
+-960119113
+-1161574459
+-1010580542
+-1027489343
+-1061109568
+-1061109568
+-1044134973
+-1010580797
+-993605688
+-943274296
+-892745528
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1600085856
+-1600085856
+-1600085856
+-1600085856
+-1599821656
+-1532778319
+-1161510730
+-1076900151
+-909391159
+-943274812
+-993671482
+-959985721
+-993869374
+-1010448442
+-976896063
+-1112030778
+-960119113
+-1161574459
+-1010580542
+-1027489343
+-1061109568
+-1061109568
+-1044134973
+-1010580797
+-993605688
+-943274296
+-892745528
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1600085856
+-1600085856
+-1600085856
+-1600085856
+-1599821656
+-1532778319
+-1161510730
+-1076900151
+-909391159
+-943274812
+-993671482
+-959985721
+-993869374
+-1010448442
+-976896063
+-1112030778
+-960119113
+-1161574459
+-1010580542
+-1027489343
+-1061109568
+-1061109568
+-1044134973
+-1010580797
+-993605688
+-943274296
+-892745528
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1600085856
+-1600085856
+-1600085856
+-1600085856
+-1599821656
+-1532778319
+-1161510730
+-1076900151
+-909391159
+-943274812
+-993671482
+-959985721
+-993869374
+-1010448442
+-976896063
+-1112030778
+-960119113
+-1161574459
+-1010580542
+-1027489343
+-1061109568
+-1061109568
+-1044134973
+-1010580797
+-993605688
+-943274296
+-892745528
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1600085856
+-1600085856
+-1600085856
+-1600085856
+-1599821656
+-1532778319
+-1161510730
+-1076900151
+-909391159
+-943274812
+-993671482
+-959985721
+-993869374
+-1010448442
+-976896063
+-1112030778
+-960119113
+-1161574459
+-1010580542
+-1027489343
+-1061109568
+-1061109568
+-1044134973
+-1010580797
+-993605688
+-943274296
+-892745528
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1600085856
+-1600085856
+-1600085856
+-1600085856
+-1599821656
+-1532778319
+-1161510730
+-1076900151
+-909391159
+-943274812
+-993671482
+-959985721
+-993869374
+-1010448442
+-976896063
+-1112030778
+-960119113
+-1161574459
+-1010580542
+-1027489343
+-1061109568
+-1061109568
+-1044134973
+-1010580797
+-993605688
+-943274296
+-892745528
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1600085856
+-1600085856
+-1600085856
+-1600085856
+-1599821656
+-1532778319
+-1161510730
+-1076900151
+-909391159
+-943274812
+-993671482
+-959985721
+-993869374
+-1010448442
+-976896063
+-1112030778
+-960119113
+-1161574459
+-1010580542
+-1027489343
+-1061109568
+-1061109568
+-1044134973
+-1010580797
+-993605688
+-943274296
+-892745528
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1600085856
+-1600085856
+-1600085856
+-1600085856
+-1599821656
+-1532778319
+-1161510730
+-1076900151
+-909391159
+-943274812
+-993671482
+-959985721
+-993869374
+-1010448442
+-976896063
+-1112030778
+-960119113
+-1161574459
+-1010580542
+-1027489343
+-1061109568
+-1061109568
+-1044134973
+-1010580797
+-993605688
+-943274296
+-892745528
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1600085856
+-1600085856
+-1600085856
+-1600085856
+-1599821656
+-1532778319
+-1161510730
+-1076900151
+-909391159
+-943274812
+-993671482
+-959985721
+-993869374
+-1010448442
+-976896063
+-1112030778
+-960119113
+-1161574459
+-1010580542
+-1027489343
+-1061109568
+-1061109568
+-1044134973
+-1010580797
+-993605688
+-943274296
+-892745528
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-2004318072
+-2004318072
+-2012541882
+1795620730
+318794160
+-1488371695
+1863053564
+-1070858208
+11668988
+1410230210
+293725365
+-1115694074
+1465742650
+-1810615036
+67372036
+67372036
+-2004318072
+-2004318072
+-2012541882
+1795620730
+318794160
+-1488371695
+1863053564
+-1070858208
+11668988
+1410230210
+293725365
+-1115694074
+1465742650
+-1810615036
+67372036
+67372036
+-2004318072
+-2004318072
+-2012541882
+1795620730
+318794160
+-1488371695
+1863053564
+-1070858208
+11668988
+1410230210
+293725365
+-1115694074
+1465742650
+-1810615036
+67372036
+67372036
+-2004318072
+-2004318072
+-2012541882
+1795620730
+318794160
+-1488371695
+1863053564
+-1070858208
+11668988
+1410230210
+293725365
+-1115694074
+1465742650
+-1810615036
+67372036
+67372036
+-2004318072
+-2004318072
+-2012541882
+1795620730
+318794160
+-1488371695
+1863053564
+-1070858208
+11668988
+1410230210
+293725365
+-1115694074
+1465742650
+-1810615036
+67372036
+67372036
+-2004318072
+-2004318072
+-2012541882
+1795620730
+318794160
+-1488371695
+1863053564
+-1070858208
+11668988
+1410230210
+293725365
+-1115694074
+1465742650
+-1810615036
+67372036
+67372036
+-2004318072
+-2004318072
+-2012541882
+1795620730
+318794160
+-1488371695
+1863053564
+-1070858208
+11668988
+1410230210
+293725365
+-1115694074
+1465742650
+-1810615036
+67372036
+67372036
+-2004318072
+-2004318072
+-2012541882
+1795620730
+318794160
+-1488371695
+1863053564
+-1070858208
+11668988
+1410230210
+293725365
+-1115694074
+1465742650
+-1810615036
+67372036
+67372036
+-2004318072
+-2004318072
+-2012541882
+1795620730
+318794160
+-1488371695
+1863053564
+-1070858208
+11668988
+1410230210
+293725365
+-1115694074
+1465742650
+-1810615036
+67372036
+67372036
+1061109567
+1061109567
+1058067648
+-848375510
+-311739113
+-1401952840
+872432650
+1818045202
+-2008964585
+1066607525
+1144596224
+287114710
+-737780114
+326555912
+134744072
+134744072
+623191333
+623191333
+622920139
+1376002693
+-1654015917
+-713227752
+-1104084778
+-872377847
+26784305
+-1335358413
+-872071398
+3932340
+-754495516
+340786654
+-555819298
+-555819298
+-1482184793
+-1482184793
+-1487470080
+-153151359
+1491528586
+-367999253
+-2106914959
+1863709059
+475229977
+1973361285
+203130537
+349789189
+-1433002694
+5669437
+1027423549
+1027423549
+1768515945
+1768515945
+1769430641
+1736666723
+1787125097
+1953067366
+1836279131
+-2023661204
+1835821165
+2104255337
+1751479657
+1801547877
+1719032184
+1852534911
+2139062143
+2139062143
+1886417008
+1886417008
+1885963872
+1700946541
+1901887328
+1852471412
+1851946349
+1786016097
+1785617258
+2086700134
+1652120175
+1634890090
+1902473060
+1734569067
+1802201963
+1802201963
+2021161080
+2021161080
+2019259747
+1801813605
+1735353453
+1634885228
+1869112940
+1818648702
+1802008180
+1634626669
+-2124843666
+1935045237
+1617980004
+1902799477
+1970632053
+1970632053
+1802201963
+1802201963
+1802330990
+1651269487
+1902865246
+2136570219
+1718576747
+1785621610
+1835822698
+1852531836
+1852861548
+1585212010
+1768842616
+1768512132
+-2071690108
+-2071690108
+1734829927
+1734829927
+1735421294
+1751935851
+1802202477
+1818849131
+1752001387
+1785817963
+1835887721
+1819043692
+1802529389
+1836214375
+1835887724
+1751805036
+1819044972
+1819044972
+1802201963
+1802201963
+1802201963
+1802201963
+1802201964
+1819110766
+1869705842
+1920102768
+1903260017
+1903260017
+1920036975
+1852665195
+1819110764
+1785359470
+1852730990
+1852730990
+1802201963
+1802201963
+1802201963
+1802201963
+1802201964
+1819110767
+1920234870
+1987409012
+1920103026
+1920103026
+1886416750
+1852664940
+1819110764
+1785359470
+1852730990
+1852730990
+1802201963
+1802201963
+1802201963
+1802201963
+1802201964
+1819110766
+1869705843
+1936879984
+1852730990
+1852730991
+1869573998
+1852665196
+1819110764
+1785359470
+1852730990
+1852730990
+1802201963
+1802201963
+1802201963
+1802201963
+1802201964
+1819110765
+1835954031
+1869573740
+1802136170
+1785358955
+1835953773
+1835887724
+1819110764
+1785359470
+1852730990
+1852730990
+1802201963
+1802201963
+1802201963
+1802201963
+1802201964
+1819110766
+1835954032
+1886350957
+1802136170
+1785358955
+1802267756
+1819044972
+1819110764
+1785359470
+1852730990
+1852730990
+1802201963
+1802201963
+1802201963
+1802201963
+1802201964
+1819110766
+1852862833
+1903259758
+1852665197
+1835887981
+1819044972
+1819044972
+1819110764
+1785359470
+1852730990
+1852730990
+1802201963
+1802201963
+1802201963
+1802201963
+1802201964
+1819044972
+1835954033
+1920036718
+1835887980
+1835822188
+1785424747
+1802202219
+1819045228
+1802202222
+1852730990
+1852730990
+1819044972
+1819044972
+1819044972
+1819044972
+1802136170
+1785424747
+1819045489
+1936945005
+1802267756
+1802201963
+1768450409
+1785358955
+1785424747
+1802268014
+1852730990
+1852730990
+1819044972
+1819044972
+1819044972
+1819044972
+1802136170
+1785358954
+1785425779
+1987407980
+1802333548
+1802201705
+1751672937
+1785358955
+1785359211
+1819045229
+1835887981
+1835887981
+1835887981
+1835887981
+1835887981
+1835887980
+1802136170
+1785358954
+1785491574
+2037805422
+1819044971
+1768515688
+1751672937
+1768516202
+1785359211
+1802267756
+1819044972
+1819044972
+1869573999
+1869573999
+1869573999
+1869573998
+1835756395
+1802201962
+1802400889
+2071491183
+1818913385
+1751672422
+1734829927
+1751672937
+1751738986
+1785358954
+1785358954
+1785358954
+1936946035
+1936946035
+1936946035
+1936946034
+1903128431
+1869573998
+1869706616
+2020963184
+1835756138
+1768515944
+1768515945
+1751672937
+1785358954
+1785358954
+1785358954
+1785358954
+2021161080
+2021161080
+2021161080
+2021161079
+1970500467
+1936946035
+1953722735
+1835888753
+1886219630
+1852731247
+1886351214
+1852730733
+1852730989
+1835887724
+1819044972
+1819044972
+2122219134
+2122219134
+2122219134
+2122219133
+2071492728
+2021161081
+2020829278
+1516334451
+1970500468
+1970763897
+2021095286
+1987409268
+1953788787
+1920037233
+1903260017
+1903260017
+-2139062144
+-2139062144
+-2139062144
+-2139062145
+2122021755
+2071690109
+2054316369
+1297508725
+2054715513
+2071756157
+2105310331
+2071689850
+2054846841
+2021161080
+2021161080
+2021161080
+-2139062144
+-2139062144
+-2139062144
+-2139062145
+2122087548
+2088533119
+2104779087
+1263822709
+2088467067
+2088533373
+2105375869
+2088533116
+2088533116
+2088467323
+2071690107
+2071690107
+-2139062144
+-2139062144
+-2139062144
+-2139062145
+2122087548
+2088533119
+2138663257
+1381591414
+2071689850
+2054847098
+2054847355
+2071690107
+2071690364
+2088533116
+2088533116
+2088533116
+2139062143
+2139062143
+2139062143
+2139062142
+2105310332
+2088533118
+2122018913
+1465608308
+2021095287
+2004318071
+2021226873
+2038004089
+2038070139
+2071690107
+2071690107
+2071690107
+2071690107
+2071690107
+2071690107
+2071690106
+2054847098
+2054847098
+2054713701
+1515939441
+1970697846
+1987475062
+1987540855
+2004318071
+2021227130
+2054847098
+2054847098
+2054847098
+1987475062
+1987475062
+1987475062
+1987475062
+1987540855
+2004318071
+1987474538
+1650616689
+1953855094
+1987475062
+2004318328
+2021161080
+2038004346
+2054847098
+2054847098
+2054847098
+1970632053
+1970632053
+1970632053
+1970632053
+1987540855
+2004318070
+1987540338
+1835823477
+1987475319
+2004318071
+2021226873
+2038004089
+2038069882
+2054847098
+2054847098
+2054847098
+2038004089
+2038004089
+2038004089
+2038004089
+2021161080
+2021161079
+2004318328
+1987540856
+2038069882
+2054847098
+2054847098
+2054847098
+2071690107
+2071690107
+2071690107
+2071690107
+2071690107
+2071690107
+2071690107
+2071690107
+2071690107
+2071690106
+2037938554
+2071755386
+2054912891
+2071690107
+2054847098
+2054847098
+2071690364
+2088533116
+2088533116
+2088533116
+2071690107
+2071690107
+2071690107
+2071690107
+2071690107
+2071690107
+2071624572
+2105375868
+2071624314
+2054847098
+2054847098
+2054847099
+2088598909
+2105376125
+2105376125
+2105376125
+2088533116
+2088533116
+2088533116
+2088533116
+2071690107
+2071690107
+2088533373
+2105376125
+2071690107
+2071690107
+2088533373
+2105376125
+2122219134
+2122219134
+2122219134
+2122219134
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2105441918
+2122219134
+2105310332
+2088533117
+2122350720
+-2139062144
+2139062143
+2139062143
+2139062143
+2139062143
+2105376125
+2105376125
+2105376125
+2105376125
+2088598909
+2105376125
+2122284927
+2139062143
+2139062143
+2139062143
+-2122153342
+-2105376126
+-2122219135
+-2122219135
+-2122219135
+-2122219135
+2122219134
+2122219134
+2122219134
+2122219134
+2122219391
+2139062143
+-2139062144
+-2139062144
+-2122219135
+-2122219134
+-2088467324
+-2071690108
+-2088533117
+-2088533117
+-2088533117
+-2088533117
+2139062143
+2139062143
+2139062143
+2139062143
+-2139061887
+-2122219135
+-2105375869
+-2088533117
+-2088532860
+-2071690107
+-2054781049
+-2021161082
+-2054912892
+-2071690108
+-2071690108
+-2071690108
+2139062143
+2139062143
+2139062143
+2139062143
+-2138996094
+-2105376126
+-2088467324
+-2071690108
+-2071624315
+-2054847099
+-2037938297
+-2021161081
+-2054847099
+-2054847099
+-2054847099
+-2054847099
+-2139062144
+-2139062144
+-2139062144
+-2139062144
+-2105310076
+-2071690108
+-2071624315
+-2054847099
+-2054846842
+-2038004090
+-2038003833
+-2021161082
+-2038069883
+-2054847099
+-2054847099
+-2054847099
+-2139062144
+-2139062144
+-2139062144
+-2139062144
+-2105310076
+-2071690108
+-2071624315
+-2054847099
+-2054846842
+-2038004090
+-2038003833
+-2021161082
+-2038069883
+-2054847099
+-2054847099
+-2054847099
+-2139062144
+-2139062144
+-2139062144
+-2139062144
+-2105310076
+-2071690108
+-2071624315
+-2054847099
+-2054846842
+-2038004090
+-2038003833
+-2021161082
+-2038069883
+-2054847099
+-2054847099
+-2054847099
+-2139062144
+-2139062144
+-2139062144
+-2139062144
+-2105310076
+-2071690108
+-2071624315
+-2054847099
+-2054846842
+-2038004090
+-2038003833
+-2021161082
+-2038069883
+-2054847099
+-2054847099
+-2054847099
+-2139062144
+-2139062144
+-2139062144
+-2139062144
+-2105310076
+-2071690108
+-2071624315
+-2054847099
+-2054846842
+-2038004090
+-2038003833
+-2021161082
+-2038069883
+-2054847099
+-2054847099
+-2054847099
+-2139062144
+-2139062144
+-2139062144
+-2139062144
+-2105310076
+-2071690108
+-2071624315
+-2054847099
+-2054846842
+-2038004090
+-2038003833
+-2021161082
+-2038069883
+-2054847099
+-2054847099
+-2054847099
+-2139062144
+-2139062144
+-2139062144
+-2139062144
+-2105310076
+-2071690108
+-2071624315
+-2054847099
+-2054846842
+-2038004090
+-2038003833
+-2021161082
+-2038069883
+-2054847099
+-2054847099
+-2054847099
+-2139062144
+-2139062144
+-2139062144
+-2139062144
+-2105310076
+-2071690108
+-2071624315
+-2054847099
+-2054846842
+-2038004090
+-2038003833
+-2021161082
+-2038069883
+-2054847099
+-2054847099
+-2054847099
+-2139062144
+-2139062144
+-2139062144
+-2139062144
+-2105310076
+-2071690108
+-2071624315
+-2054847099
+-2054846842
+-2038004090
+-2038003833
+-2021161082
+-2038069883
+-2054847099
+-2054847099
+-2054847099
+2088533116
+2088533116
+2082108904
+71042816
+13570461
+323496968
+621757444
+-1470349338
+-519240938
+2067997850
+47811084
+1507865859
+-896700156
+1544020822
+1448498774
+1448498774
+2088533116
+2088533116
+2082108904
+71042816
+13570461
+323496968
+621757444
+-1470349338
+-519240938
+2067997850
+47811084
+1507865859
+-896700156
+1544020822
+1448498774
+1448498774
+2088533116
+2088533116
+2082108904
+71042816
+13570461
+323496968
+621757444
+-1470349338
+-519240938
+2067997850
+47811084
+1507865859
+-896700156
+1544020822
+1448498774
+1448498774
+2088533116
+2088533116
+2082108904
+71042816
+13570461
+323496968
+621757444
+-1470349338
+-519240938
+2067997850
+47811084
+1507865859
+-896700156
+1544020822
+1448498774
+1448498774
+2088533116
+2088533116
+2082108904
+71042816
+13570461
+323496968
+621757444
+-1470349338
+-519240938
+2067997850
+47811084
+1507865859
+-896700156
+1544020822
+1448498774
+1448498774
+2088533116
+2088533116
+2082108904
+71042816
+13570461
+323496968
+621757444
+-1470349338
+-519240938
+2067997850
+47811084
+1507865859
+-896700156
+1544020822
+1448498774
+1448498774
+2088533116
+2088533116
+2082108904
+71042816
+13570461
+323496968
+621757444
+-1470349338
+-519240938
+2067997850
+47811084
+1507865859
+-896700156
+1544020822
+1448498774
+1448498774
+2088533116
+2088533116
+2082108904
+71042816
+13570461
+323496968
+621757444
+-1470349338
+-519240938
+2067997850
+47811084
+1507865859
+-896700156
+1544020822
+1448498774
+1448498774
+2088533116
+2088533116
+2082108904
+71042816
+13570461
+323496968
+621757444
+-1470349338
+-519240938
+2067997850
+47811084
+1507865859
+-896700156
+1544020822
+1448498774
+1448498774
+1347440720
+1347440720
+1356140841
+-1729396130
+52075278
+1779590153
+1439563898
+426969716
+285197444
+-1497659175
+-1103364083
+-1003785088
+1960978266
+798885935
+791621423
+791621423
+1465341783
+1465341783
+1459883960
+739814165
+-660048124
+423751661
+-314827794
+393159833
+415208504
+377722218
+1845518339
+2030816833
+-925078269
+-1307973057
+1061109567
+1061109567
+471604252
+471604252
+469770322
+219843939
+7879442
+-786816993
+-392705524
+-1994455773
+-1862230015
+-1751016498
+1971042074
+-1803773535
+1726109447
+-1137745078
+1246382666
+1246382666
+-2021161081
+-2021161081
+-2021359257
+1871148909
+-2105316487
+2054910080
+-2021038210
+2004841091
+2039834738
+-2038471563
+-1889043582
+1954511221
+2004649844
+2140237951
+2139062143
+2139062143
+1835887981
+1835887981
+1837267336
+2104850562
+-2089121667
+1989173377
+2037547644
+2005433985
+-2056680328
+2021426296
+2022206348
+-2106361734
+2105504129
+1987478911
+2139062143
+2139062143
+2122219134
+2122219134
+2123067008
+2088139893
+2056025726
+1970829184
+2121368444
+-2140046218
+1971290752
+2004647548
+2038137206
+2021624184
+1937470335
+1988061815
+2004318071
+2004318071
+2122219134
+2122219134
+2121825410
+1904312189
+-2056159625
+-1921939849
+2121694330
+-1972663935
+2054850162
+2088663934
+-2122806153
+2072475013
+2072279167
+2071821946
+2054847098
+2054847098
+2071690107
+2071690107
+2071298171
+2071690876
+2054913659
+2105113725
+2121955963
+2088533373
+2088336762
+2122152573
+-2139259015
+2088531835
+2122152829
+2105245052
+2088533116
+2088533116
+2071690107
+2071690107
+2071690107
+2054847099
+2071755900
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2105376125
+2105376125
+2105375867
+2071624058
+2071755900
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2105376125
+2105376125
+2105375868
+2088467323
+2071755900
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2105376125
+2105376125
+2105375869
+2105376124
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533117
+2122219390
+2105310332
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2038004089
+2038004089
+2038070142
+2139193985
+2122087548
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2038004089
+2038004089
+2038070141
+2122351232
+2122087548
+2071690107
+2088533375
+2138930300
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2071690107
+2071690107
+2071690108
+2105441918
+2105310075
+2071690106
+2071822208
+-2139128453
+2071690107
+2088533373
+2071690107
+2071690107
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2105376124
+2088533115
+2071822465
+-2122285701
+2071690108
+2088533373
+2071690107
+2071690107
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533117
+2105442176
+-2139128195
+2088533116
+2088533116
+2071690107
+2071690107
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2054847355
+2088533374
+2122219135
+2138996351
+2122153340
+2088467323
+2071690107
+2071690107
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2071755901
+2122285185
+-2122350979
+2105442176
+2139061885
+2088467066
+2071690107
+2071690107
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533117
+2122350978
+-2071624058
+-2088731269
+2071822465
+-2139062403
+2088401273
+2054912891
+2071690107
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2122285442
+-2071558009
+-2088796805
+2071822466
+-2122219394
+2088401016
+2054912891
+2071690107
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2071690365
+2139128450
+-2139194245
+2071822208
+-2105376642
+2105244025
+2038069882
+2054847097
+2071755901
+2105376125
+2105376125
+2105376125
+2105376125
+2105376125
+2105376125
+2105376125
+2054847355
+2088533372
+2105310332
+2071690622
+-2122219393
+2105309817
+2054847354
+2054847098
+2071756157
+2105442175
+2139062143
+2139062143
+2088533116
+2088533116
+2088533116
+2088533116
+2071690107
+2071690107
+2071755899
+2054912893
+-2139062145
+2122153084
+2088664958
+2139061885
+2088533373
+2122219391
+2139062143
+2139062143
+2105376125
+2105376125
+2105376125
+2105376125
+2088598909
+2105376125
+2105441915
+2054913149
+2139193471
+2138996093
+2122350719
+-2139128194
+2122219134
+2139062144
+-2139062144
+-2139062144
+2139062143
+2139062143
+2139062143
+2139062143
+2139062400
+-2139062144
+-2122153859
+2088533374
+-2138996095
+-2122219135
+-2105310333
+-2105442174
+-2105375869
+-2088533116
+-2071690108
+-2071690108
+-2088533117
+-2088533117
+-2088533117
+-2088533117
+-2105376126
+-2105376125
+-2054847359
+2138996610
+-2088467067
+-2038004089
+-1987343478
+-1970698104
+-2021095288
+-2004318072
+-2004318072
+-2004318072
+-2004318072
+-2004318072
+-2004318072
+-2004318072
+-2038004090
+-2038004088
+-1987343995
+-2088598651
+-2054781305
+-2004317814
+-1936946293
+-1987541112
+-2004252279
+-2004318072
+-2004318072
+-2004318072
+-1920103027
+-1920103027
+-1920103027
+-1920103028
+-1970763640
+-2004318070
+-1919972472
+-2038069368
+-2021226617
+-2004252021
+-1953855353
+-2054913148
+-2021095545
+-2038004347
+-2054847099
+-2054847099
+-1903260018
+-1903260018
+-1903325811
+-1936946037
+-2021358459
+-2037938295
+-1953657976
+-2037938041
+-2021226873
+-2004252279
+-1987541114
+-2038135676
+-2054847356
+-2071756158
+-2105376126
+-2105376126
+-1936946036
+-1936946036
+-1936946037
+-1953854841
+-2071953279
+-2088401016
+-2004121208
+-2021161082
+-2038004090
+-2037938041
+-2038070396
+-2088533117
+-2105376127
+-2122219135
+-2122219135
+-2122219135
+-1953789045
+-1953789045
+-1953789303
+-1987541115
+-2105573503
+-2105244025
+-2004318330
+-2038070139
+-2054781306
+-2038004091
+-2105507712
+-2139062144
+2139062143
+2139062143
+2139062143
+2139062143
+-1936946036
+-1936946036
+-1937011830
+-1987540857
+-2038135675
+-2054781048
+-2021227131
+-2071756157
+-2071624315
+-2054847101
+-2139259780
+2088533116
+2071690107
+2071690107
+2071690107
+2071690107
+-1953789045
+-1953789045
+-1953789303
+-2004318329
+-2004318329
+-2021160826
+-2054978942
+-2122285185
+-2139062144
+-2139062146
+2088335480
+2021161080
+2021161080
+2021161080
+2021161080
+2021161080
+-1987475063
+-1987475063
+-1987540857
+-2038069883
+-2038004090
+-2038069885
+-2122350721
+2122153083
+2054781305
+2038004088
+2021095030
+1987475062
+1987475062
+1987475062
+1987475062
+1987475062
+-2054847099
+-2054847099
+-2054912893
+-2105441919
+-2122153343
+-2122285186
+2088467579
+2054781303
+1987409269
+1970632053
+1970632053
+1970632053
+1987475062
+1987475062
+1987475062
+1987475062
+-2122219135
+-2122219135
+-2122284929
+2122153341
+2088533116
+2071690106
+2021161080
+2004252277
+1987475062
+1987475062
+1970632310
+1987475062
+2004318071
+2004318071
+2004318071
+2004318071
+2122219134
+2122219134
+2122218877
+2088467065
+2021161080
+2037938295
+1987475318
+1970631797
+1987540855
+2004318071
+1970632310
+1987475062
+2004318071
+2004318071
+2004318071
+2004318071
+2122219134
+2122219134
+2122218877
+2088467065
+2021161080
+2037938295
+1987475318
+1970631797
+1987540855
+2004318071
+1970632310
+1987475062
+2004318071
+2004318071
+2004318071
+2004318071
+2122219134
+2122219134
+2122218877
+2088467065
+2021161080
+2037938295
+1987475318
+1970631797
+1987540855
+2004318071
+1970632310
+1987475062
+2004318071
+2004318071
+2004318071
+2004318071
+2122219134
+2122219134
+2122218877
+2088467065
+2021161080
+2037938295
+1987475318
+1970631797
+1987540855
+2004318071
+1970632310
+1987475062
+2004318071
+2004318071
+2004318071
+2004318071
+2122219134
+2122219134
+2122218877
+2088467065
+2021161080
+2037938295
+1987475318
+1970631797
+1987540855
+2004318071
+1970632310
+1987475062
+2004318071
+2004318071
+2004318071
+2004318071
+2122219134
+2122219134
+2122218877
+2088467065
+2021161080
+2037938295
+1987475318
+1970631797
+1987540855
+2004318071
+1970632310
+1987475062
+2004318071
+2004318071
+2004318071
+2004318071
+2122219134
+2122219134
+2122218877
+2088467065
+2021161080
+2037938295
+1987475318
+1970631797
+1987540855
+2004318071
+1970632310
+1987475062
+2004318071
+2004318071
+2004318071
+2004318071
+2122219134
+2122219134
+2122218877
+2088467065
+2021161080
+2037938295
+1987475318
+1970631797
+1987540855
+2004318071
+1970632310
+1987475062
+2004318071
+2004318071
+2004318071
+2004318071
+2122219134
+2122219134
+2122218877
+2088467065
+2021161080
+2037938295
+1987475318
+1970631797
+1987540855
+2004318071
+1970632310
+1987475062
+2004318071
+2004318071
+2004318071
+2004318071
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+-1313754703
+-1313754703
+-1313754703
+-1313754703
+-1309682045
+1279267943
+1180434447
+906297348
+-542962148
+851968
+928779776
+117441793
+2826
+50331649
+17172992
+12
+-1174269933
+-1125321554
+-1701967616
+-247337284
+1984690357
+-986775529
+15138947
+285736960
+-115140859
+1406306994
+-136970240
+527616
+0
+0
+0
+0
+151587081
+151587081
+151587081
+151587081
+156343830
+520355843
+1588856326
+1436748036
+465731963
+1560315777
+-330563568
+958070799
+1868365829
+256
+-1186462462
+335741440
+201786368
+787456
+34537480
+268439552
+-1240397824
+-791675980
+-1484974827
+-481756490
+1867117742
+-241560319
+137049740
+1598543662
+774778414
+774778414
+774778414
+774778414
+252645135
+252645135
+252645135
+252645135
+256007959
+-725677600
+-89125152
+-869396887
+1838387480
+1393318227
+-1843897185
+1961072414
+471501765
+315661956
+-971009632
+-1815961607
+-1347692506
+-1977332225
+1793149445
+-988945568
+227529292
+891396299
+-1353946026
+657609427
+453895015
+145731089
+50397201
+920458
+-1970632054
+-1970632054
+-1970632054
+-1970632054
+218959117
+218959117
+218959117
+218959117
+218235655
+101018884
+491782164
+-1643577327
+151977984
+210894835
+1947009024
+83980421
+-1283961224
+-248617515
+-1733071193
+637779792
+-331939642
+1319415853
+-648088662
+-481558036
+1891297551
+24196662
+1750599371
+15602043
+-1406242702
+1674510152
+-223527917
+1731951319
+-673720361
+-673720361
+-673720361
+-673720361
+-1077952577
+-1077952577
+-1077952577
+-1077952577
+-1075729206
+577324646
+-1305717895
+-996832804
+408010295
+-2099408356
+-1974197762
+674089301
+-1676449643
+-1592993586
+-624834520
+927758521
+543050036
+209181738
+1254105424
+-1700013127
+-156328020
+-1857545599
+-1282481477
+-1892374695
+1012306117
+2069285186
+1347960866
+-318242560
+0
+0
+0
+0
+-1970632054
+-1970632054
+-1970632054
+-1970632054
+-1964527726
+240140813
+1116642918
+1447710607
+-5333940
+-445870070
+-1691278170
+-1185106354
+-1366594010
+-955587938
+1383857056
+-1570213822
+1452953585
+1809735388
+2015690197
+-102961302
+1658164377
+-2090372439
+1428185247
+-896864459
+1411269094
+1253619585
+1561746310
+1068106381
+-1920103027
+-1920103027
+-1920103027
+-1920103027
+-640034343
+-640034343
+-640034343
+-640034343
+-641901875
+-1318565045
+1178002294
+-1351070257
+731835885
+923179858
+-852389571
+-717024363
+-527117405
+-1504395362
+-753577040
+-1081723431
+-1276231972
+880826125
+-1200264994
+1671905573
+-1915227737
+1082347499
+975530879
+-1237484990
+835185263
+1152039327
+-1716598685
+-690680568
+134744072
+134744072
+134744072
+134744072
+1313754702
+1313754702
+1313754702
+1313754702
+1313755470
+1313754703
+1280200270
+1313754446
+1313754702
+1313754702
+1280003405
+1330401874
+1347440720
+1347506256
+1364283729
+1364283729
+1364282961
+1364283472
+1330531918
+1313754701
+1246316873
+1229539401
+1145521991
+1195787079
+1212762440
+1145653576
+1195853125
+1145454899
+858993459
+858993459
+858993459
+858993459
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754701
+1296911951
+1347506514
+1364283729
+1364283729
+1364283729
+1364283729
+1364283729
+1364283728
+1330531918
+1313754701
+1263159882
+1246382665
+1212630855
+1195853639
+1212696648
+1212696647
+1195853122
+1145454131
+858993459
+858993459
+858993459
+858993459
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1330597711
+1330597711
+1330597711
+1330597711
+1313755216
+1364349522
+1364283729
+1364283729
+1364283729
+1364283729
+1364283729
+1364283728
+1330531918
+1313754701
+1280002891
+1263225674
+1229473864
+1212696648
+1195853639
+1195853639
+1179076163
+1162231604
+875836468
+875836468
+875836468
+875836468
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1330597711
+1330597711
+1347440720
+1347440720
+1347440977
+1381126739
+1381126738
+1381126738
+1364283729
+1364283729
+1364283729
+1364283728
+1330531918
+1313754702
+1280068684
+1280068683
+1246316873
+1229539657
+1195853639
+1195853639
+1195918915
+1162297140
+875836468
+875836468
+875836468
+875836468
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754703
+1330663504
+1347440720
+1364283729
+1364283729
+1364283986
+1397970004
+1381126738
+1381126738
+1364283729
+1364283729
+1364283729
+1364283728
+1330531918
+1313754702
+1296911693
+1296911693
+1263225675
+1263225674
+1229473864
+1212696648
+1195919172
+1179074613
+892679477
+892679477
+892679477
+892679477
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754703
+1330663504
+1347440721
+1364349522
+1381126738
+1397970003
+1414812756
+1397969747
+1397969747
+1364283729
+1364283729
+1364283729
+1364283728
+1330531918
+1313754702
+1313754702
+1313754702
+1280068684
+1280068683
+1246316873
+1229539657
+1212761925
+1179140149
+892679477
+892679477
+892679477
+892679477
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754703
+1347506513
+1364283730
+1381192531
+1397969748
+1414813012
+1431589972
+1414746963
+1397969747
+1364283729
+1364283729
+1364283729
+1364283728
+1330531918
+1313754702
+1330597711
+1330597710
+1296845900
+1280068684
+1263225675
+1263225674
+1229539397
+1195917622
+909522486
+909522486
+909522486
+909522486
+1330597711
+1330597711
+1330597711
+1330597711
+1330597711
+1330597712
+1364349522
+1381126739
+1414878549
+1431655765
+1448629591
+1532384342
+1397643083
+1531794261
+1347309395
+1313821007
+1330859600
+1380929617
+1330532174
+1296649551
+1330532431
+1330466385
+1296911693
+1313754702
+1313754445
+1296911692
+1246382150
+1212760372
+875836468
+875836468
+875836468
+875836468
+1364283729
+1364283729
+1364283729
+1364283729
+1364283729
+1364283730
+1398035540
+1414812757
+1431721558
+1448498773
+1448563548
+1515605586
+1381128268
+1548505941
+1397578579
+1363826770
+1364479831
+1364283730
+1364284752
+1363692625
+1347441999
+1380733265
+1330531919
+1330597968
+1330531918
+1296911692
+1263159880
+1212957489
+825307441
+825307441
+825307441
+825307441
+1397969747
+1397969747
+1397969747
+1397969747
+1397969747
+1397969748
+1414878549
+1431655766
+1448564567
+1465341778
+1364677716
+1331188561
+1398558807
+1381390157
+1280530515
+1532253527
+1431589718
+1314148693
+1431526482
+1447906392
+1347702867
+1447648079
+1347374928
+1364283985
+1330531917
+1296845899
+1229474120
+1213023537
+825307441
+825307441
+825307441
+825307441
+1431655765
+1431655765
+1431655765
+1431655765
+1431655765
+1431655765
+1448498774
+1448498774
+1465341783
+1465341779
+1432246872
+1347966295
+1431258208
+1246453839
+1281054536
+1582321244
+1398101078
+1297502551
+1464621132
+1465273174
+1447778381
+1330531663
+1347506770
+1397969746
+1364217935
+1330531916
+1246317386
+1280395573
+892679477
+892679477
+892679477
+892679477
+1465341783
+1465341783
+1465341783
+1465341783
+1465341783
+1465341783
+1465341783
+1465341783
+1465341783
+1465341777
+1382112348
+1549422691
+1348557664
+-1672454298
+1616011856
+1800101729
+1449414495
+1633180516
+1632591954
+1600344412
+1600153175
+1565872730
+1498764629
+1431655764
+1431655764
+1414746963
+1414813013
+1448825662
+1044266558
+1044266558
+1044266558
+1044266558
+1482184792
+1482184792
+1482184792
+1482184792
+1482184792
+1482184792
+1482184792
+1482184792
+1465341783
+1465341784
+1705418628
+-1885303398
+-1702197394
+-1150377307
+-1855547764
+-1602902888
+2023517837
+-1635873641
+-1769364852
+-1953923434
+2007402124
+-1686793063
+1482184792
+1482184535
+1499093593
+1498962009
+1532779867
+1532974914
+1111638594
+1111638594
+1111638594
+1111638594
+1499027801
+1499027801
+1499027801
+1499027801
+1499027801
+1499027801
+1499027801
+1499027801
+1465341783
+1465341785
+-1971226458
+-1385408594
+-1653170261
+-1400525219
+-1149590369
+-1602242133
+-2086045542
+-1383359580
+-1936873842
+2121364114
+1956809871
+-1551524437
+1532713819
+1515870554
+1532779611
+1532648025
+1482053461
+1431851066
+976894522
+976894522
+976894522
+976894522
+1482184792
+1482184792
+1482184792
+1482184792
+1482184792
+1482184793
+1499093594
+1515870809
+1482118999
+1465341787
+1721604218
+1937667444
+1784504687
+1971822997
+-1989709198
+1616213621
+1500731753
+1885694829
+1684238948
+1565480039
+1566665565
+1852663160
+1600019805
+1549491035
+1532713562
+1499027799
+1414681169
+1364544824
+943208504
+943208504
+943208504
+943208504
+1482184792
+1482184792
+1482184792
+1482184792
+1482184792
+1482184793
+1499093594
+1515870809
+1465275991
+1465407574
+1415668830
+1313888612
+1030852019
+-1315410591
+1633770847
+1331122006
+1381587033
+1365007451
+1481724500
+1633377634
+1700685918
+1717985891
+1616797021
+1549556827
+1498962008
+1465341782
+1414747219
+1398296380
+1010580540
+1010580540
+1010580540
+1010580540
+1465341783
+1465341783
+1465341783
+1465341783
+1465341783
+1465341784
+1499093337
+1499028057
+1465341783
+1482185047
+1347769170
+1364414552
+1617010611
+1782599490
+1214143575
+1264147793
+1347967062
+1482250073
+1566794593
+1650549346
+1650285661
+1583308122
+1549688157
+1549491033
+1482118999
+1465341783
+1448367445
+1431850557
+1027423549
+1027423549
+1027423549
+1027423549
+1465341783
+1465341783
+1465341783
+1465341783
+1465341783
+1465341784
+1482250843
+1532647769
+1499027801
+1499027543
+1448432981
+1431655761
+1076645228
+1346258748
+-1534234787
+1499225694
+1583308639
+1600085856
+1616994657
+1633771872
+1566334044
+1549556828
+1566399580
+1549491034
+1482118999
+1465341784
+1465210198
+1431784764
+1010580540
+1010580540
+1010580540
+1010580540
+1482184792
+1482184792
+1482184792
+1482184792
+1482184792
+1482184792
+1465407834
+1515804760
+1515936345
+1482118740
+1364152143
+1330597713
+1177230903
+1263162219
+-1417452444
+1801741414
+1700814944
+1616928863
+1583177053
+1566399837
+1549556828
+1549556828
+1566399836
+1549556570
+1498962008
+1482184793
+1482053206
+1431785020
+1010580540
+1010580540
+1010580540
+1010580540
+1482184792
+1482184792
+1482184792
+1482184792
+1482184792
+1482184793
+1499027801
+1499027802
+1498962007
+1465275989
+1397903954
+1381126741
+1463885610
+1414878591
+-2056824733
+1784502107
+1532713819
+1532713819
+1532713819
+1532713820
+1549622621
+1566399837
+1583242589
+1566334043
+1498962008
+1482184793
+1482053207
+1448627773
+1027423549
+1027423549
+1027423549
+1027423549
+1499027801
+1499027801
+1499027801
+1499027801
+1499027801
+1499027802
+1532713303
+1465473883
+1515870811
+1532779613
+1600085855
+1600085855
+1481056807
+1431056719
+1617125726
+1498961753
+1499093594
+1515870811
+1532779612
+1549556828
+1566399837
+1566399838
+1583242846
+1566399579
+1515805017
+1499027802
+1498896215
+1465470781
+1027423549
+1027423549
+1027423549
+1027423549
+1499027801
+1499027801
+1499027801
+1499027801
+1499027801
+1499027800
+1482118485
+1431656282
+1549754465
+1650680932
+1650614882
+1650614885
+1548298277
+1313480475
+945054558
+1465738337
+1583045467
+1532713820
+1549622621
+1566399837
+1583242846
+1583242846
+1600085854
+1583177052
+1515805017
+1499027802
+1498896216
+1465470782
+1044266558
+1044266558
+1044266558
+1044266558
+1515870810
+1515870810
+1515870810
+1515870810
+1515870810
+1515870810
+1515937633
+1633639261
+1617126243
+1667458146
+1599954269
+1566399843
+1615803688
+1062418465
+574511457
+1566268250
+1532779612
+1549556829
+1566465630
+1583242846
+1583242846
+1583242847
+1600085855
+1583242588
+1532648026
+1515870811
+1515739224
+1482313790
+1044266558
+1044266558
+1044266558
+1044266558
+1566399837
+1566399837
+1566399837
+1566399837
+1566399837
+1566399838
+1617324916
+1953130082
+1650549089
+1616928607
+1583242846
+1583242849
+1700480301
+826952499
+388776539
+1549622362
+1515936603
+1532713819
+1566465630
+1583242846
+1600085855
+1600085856
+1616928864
+1600085854
+1566334044
+1549491035
+1532581977
+1482314047
+1061109567
+1061109567
+1061109567
+1061109567
+1600085855
+1600085855
+1600085855
+1600085855
+1600085855
+1600085856
+1633969249
+1650877537
+1616928863
+1600020062
+1583242846
+1583242847
+1650413624
+775769915
+556085059
+1398562653
+1549491292
+1549556828
+1566465630
+1583242846
+1616994657
+1633771872
+1616928864
+1616928606
+1583242845
+1566334044
+1549359450
+1499156799
+1061109567
+1061109567
+1061109567
+1061109567
+1566399837
+1566399837
+1566399837
+1566399837
+1566399837
+1566399837
+1566399837
+1566399838
+1583308639
+1600085855
+1600085855
+1600085854
+1532450377
+909460289
+891692594
+1180196446
+1549557085
+1566399837
+1583243103
+1600085855
+1616994657
+1633771872
+1600085855
+1600085855
+1600020062
+1566399581
+1549359705
+1499091519
+1061109567
+1061109567
+1061109567
+1061109567
+1499027801
+1499027801
+1499027801
+1499027801
+1499027801
+1499027801
+1532779612
+1549557085
+1566465887
+1600085855
+1600085855
+1600085854
+1515807061
+976239431
+1177559077
+944527453
+1583177310
+1583242846
+1600086112
+1616928864
+1633771873
+1633771615
+1583242846
+1583242846
+1583242845
+1566334045
+1532516697
+1499091262
+1044266558
+1044266558
+1044266558
+1044266558
+1515870810
+1515870810
+1515870810
+1515870810
+1515870810
+1515870810
+1515936603
+1532713821
+1566465887
+1600085855
+1600085855
+1600085855
+1583113302
+908603213
+1446453021
+843733086
+1600020319
+1600085855
+1600151648
+1616928864
+1633771873
+1633771615
+1583242846
+1583242846
+1600020062
+1566399580
+1549359449
+1482314047
+1061109567
+1061109567
+1061109567
+1061109567
+1532713819
+1532713819
+1532713819
+1532713819
+1532713819
+1532713819
+1515936603
+1532713821
+1566465887
+1600085855
+1600085855
+1600085858
+1684036682
+723660359
+1446650401
+927947872
+1600086112
+1616928864
+1616994657
+1633771873
+1650614882
+1650614624
+1600085855
+1600085855
+1616863071
+1583242589
+1549359450
+1499156800
+1077952576
+1077952576
+1077952576
+1077952576
+1532713819
+1532713819
+1532713819
+1532713819
+1532713819
+1532713819
+1549556828
+1549557085
+1566465887
+1600085855
+1600085855
+1600085860
+1717521975
+606286135
+1228482604
+1113088098
+1633706337
+1633771873
+1633771873
+1633771873
+1667523684
+1684300899
+1667457891
+1667457890
+1650549089
+1616928607
+1582979930
+1515934528
+1077952576
+1077952576
+1077952576
+1077952576
+1532713819
+1532713819
+1532713819
+1532713819
+1532713819
+1532713819
+1549622621
+1566399838
+1583308639
+1600085855
+1600085855
+1600085857
+1633238822
+573123886
+859255096
+1264279648
+1616994914
+1650614882
+1650614882
+1650614883
+1701209702
+1717986918
+1717986918
+1717986917
+1684235107
+1650614625
+1599822940
+1549620290
+1111638594
+1111638594
+1111638594
+1111638594
+1515870810
+1515870810
+1515870810
+1515870810
+1515871069
+1566333791
+1583112032
+1549754975
+1583177311
+1600020578
+1616797536
+1650548832
+1565535510
+405291562
+555953726
+1280991587
+1633837667
+1684366436
+1667392097
+1667589478
+1718052967
+1717986918
+1734829927
+1734829925
+1701209186
+1667457890
+1633508698
+1516065599
+1061109567
+1061109567
+1061109567
+1061109567
+1515870810
+1515870810
+1515870810
+1515870810
+1515805275
+1515805535
+1549426527
+1532781407
+1583111520
+1599888736
+1616797537
+1667457378
+1565008147
+488710185
+605891391
+1280926051
+1633706594
+1701275493
+1684169058
+1684367207
+1718052968
+1717921383
+1734895977
+1751672678
+1701209444
+1667392353
+1633705820
+1583305278
+1044266558
+1044266558
+1044266558
+1044266558
+1549556828
+1549556828
+1549556828
+1549556828
+1549424726
+1398102873
+1448500316
+1482053981
+1616862817
+1616665182
+1583243105
+1667456866
+1531256597
+488056877
+689840696
+1314544987
+1532780639
+1667654756
+1650549347
+1701078373
+1701209960
+1734830185
+1768581997
+1802135910
+1701144166
+1684169055
+1617192290
+1701139517
+1027423549
+1027423549
+1027423549
+1027423549
+1313754702
+1313754702
+1313754702
+1313754702
+1313689941
+1414549073
+1448695900
+1650679907
+1684168289
+1633442397
+1566267995
+1566399065
+1346575885
+404565802
+707077439
+1550609249
+1583573092
+1734829157
+1701209959
+1734763875
+1633837925
+1768647529
+1768581996
+1818847078
+1717921382
+1684234333
+1566795364
+1717916476
+1010580540
+1010580540
+1010580540
+1010580540
+808464432
+808464432
+808464432
+808464432
+808534098
+1396779813
+623520573
+1533700978
+1919905133
+1802138231
+1919576426
+1835953518
+1818373909
+927680081
+1548762434
+1364678741
+1465802840
+1482315101
+1634035560
+1734830183
+1701077858
+1667523426
+1684432486
+1734698086
+1734697826
+1667391839
+1600480864
+1633834049
+1094795585
+1094795585
+1094795585
+1094795585
+640034342
+640034342
+640034342
+640034342
+640368211
+1481192748
+673654330
+1500014444
+1835887979
+1718321041
+-1802596977
+-1818781283
+-1516742849
+1989900385
+-1785562262
+1819241835
+1836149082
+1600808804
+1650944359
+1684235363
+1650351970
+1684169314
+1650615392
+1650680934
+1734631519
+1650680673
+1634166109
+1549751622
+1179010630
+1179010630
+1179010630
+1179010630
+909522486
+909522486
+909522486
+909522486
+909588536
+858664235
+656746555
+1364875626
+1869376360
+1701610390
+-1651075946
+-1667062104
+-1482724002
+-1767012777
+-1262506864
+-1733910890
+-1836024470
+1955303810
+2071820395
+1599692909
+1919906162
+1835360358
+1734567775
+1617455205
+1667260001
+1718051677
+1533175134
+1549553728
+1077952576
+1077952576
+1077952576
+1077952576
+1313754702
+1313754702
+1313754702
+1313754702
+1314150229
+1398434160
+1733778276
+1785556851
+1919706468
+1701476222
+2071031407
+1954185086
+2021684082
+-2056098173
+-892821655
+1955101832
+-1953794720
+1820625805
+-1970765971
+1549228704
+-1499751525
+-1938330255
+1835231838
+1584163937
+1532583784
+1869439574
+1483241336
+1970099775
+1061109567
+1061109567
+1061109567
+1061109567
+1179010630
+1179010630
+1179010630
+1179010630
+1179341651
+1179211103
+1429945929
+1297309789
+1430863166
+1128613450
+1280068169
+1297306453
+1450408332
+2101436064
+-1246396584
+1585082731
+1836938334
+1652193654
+1937011304
+1583047021
+1953725570
+2087742321
+1852141665
+1651469663
+1448566377
+1970036312
+1618579353
+-1853330353
+1330597711
+1330597711
+1330597711
+1330597711
+1263225675
+1263225675
+1263225675
+1263225675
+1263359322
+1616467539
+1314218100
+1668111449
+1533240417
+1549294171
+1430862647
+1011374432
+1718254706
+1196790699
+-1347783596
+1483297111
+1566131265
+1364682085
+1600415589
+1633707626
+1835756661
+1987080813
+1904833891
+1802201183
+1532846695
+1667588959
+1736214918
+-1920438446
+1381126738
+1381126738
+1381126738
+1381126738
+1414812756
+1414812756
+1414812756
+1414812756
+1414878804
+1313557574
+1061112160
+1314541124
+1044267071
+1027490376
+1229208633
+1044861273
+1549690967
+1130731181
+-1196525227
+1583106901
+1634358087
+1399092837
+1331257960
+1768384356
+1650616433
+1936616553
+1955559775
+1667457120
+1701538924
+1835954030
+1819176558
+1936808769
+1094795585
+1094795585
+1094795585
+1094795585
+1077952576
+1077952576
+1077952576
+1077952576
+1077952311
+791689272
+892616023
+1179797046
+791555630
+758199866
+959721520
+893009730
+1230398036
+1231854513
+-1162445497
+1414546509
+1415206229
+1804047708
+1078349141
+1482184532
+1347377252
+1734368085
+1568170049
+1061242187
+1381521755
+1549622626
+1700746582
+1566131504
+808464432
+808464432
+808464432
+808464432
+1010580540
+1010580540
+1010580540
+1010580540
+1010712895
+993870137
+841955156
+1095584065
+908995111
+623324207
+825241650
+909719862
+927290706
+1264946605
+-1145405644
+1127886643
+926899325
+-1632391067
+1060977724
+1095256647
+1094601045
+1464747326
+1248416562
+774846525
+1077952578
+1111638597
+1127820849
+892413212
+471604252
+471604252
+471604252
+471604252
+370546198
+370546198
+370546198
+370546198
+370745897
+690432552
+606021189
+775370802
+673192727
+370612762
+387323674
+505289496
+455225916
+1028551848
+-1095072476
+858069785
+489516194
+-1027105687
+1279605302
+994397253
+1044137036
+1228615718
+776944666
+336730137
+420812567
+387322904
+471537433
+454563351
+387389207
+387389207
+387389207
+387389207
+320017171
+320017171
+320017171
+320017171
+320216870
+622861851
+370219578
+505488932
+504894483
+353835033
+454761246
+555818524
+437393707
+859856292
+-1095594207
+790829592
+304767353
+-1851628220
+1111439928
+994133315
+1145325387
+1144334883
+793918748
+370218264
+404364061
+488315416
+421207582
+505290269
+488447261
+488447261
+488447261
+488447261
+387389207
+387389207
+387389207
+387389207
+387456030
+437721113
+387063100
+454631200
+488249112
+471801372
+437786135
+421140762
+605362215
+893010326
+-1230727392
+791026458
+607671624
+1467827242
+758396987
+1027424067
+1179142734
+1262566196
+995574050
+538911778
+522002467
+623191327
+438116380
+488642570
+168430090
+168430090
+168430090
+168430090
+437918234
+437918234
+437918234
+437918234
+437918232
+353835544
+353574200
+420484120
+403968277
+404296725
+421139990
+404298013
+454432800
+758522760
+-1281713894
+908531736
+471873334
+1316040238
+741291323
+1010580802
+1162168657
+1414681169
+1433558080
+1128878425
+1701605233
+1937012084
+2055372154
+2005167957
+1431655765
+1431655765
+1431655765
+1431655765
+471604252
+471604252
+471604252
+471604252
+471603735
+404495898
+437986107
+622401561
+404100370
+320083998
+487919381
+505488165
+505558582
+623129737
+-1398890922
+1397445975
+1482055518
+1989174895
+2021557642
+-1953590633
+-1734830187
+-1802267756
+-1751476592
+-1869178730
+-1852862834
+-1903128173
+-1751214454
+-1886616752
+1347440720
+1347440720
+1347440720
+1347440720
+471604252
+471604252
+471604252
+471604252
+471670046
+539174440
+724578886
+1077689930
+1297176156
+1616994402
+1769110656
+-2139060854
+-1953986706
+1297251472
+-1667587445
+1938263953
+-1903522418
+-1852403568
+-1903324781
+-1836020083
+-1852599663
+-1869574259
+-1919839348
+-2020896624
+-1937210240
+2122219645
+1853128329
+2070372169
+1229539657
+1229539657
+1229539657
+1229539657
+-1768515946
+-1768515946
+-1768515946
+-1768515946
+-1768581482
+-1785357157
+-1718319216
+-1852403054
+-1886482542
+-1802268278
+-2003591530
+-2038463605
+-1869441139
+-2069702729
+1684702346
+2089259411
+-1836084078
+-1936815989
+-1954053756
+-1987475584
+1869245291
+1818979176
+1819571816
+1566732927
+1650416214
+1414747479
+1516269440
+1580083240
+673720360
+673720360
+673720360
+673720360
+-2004318072
+-2004318072
+-2004318072
+-2004318072
+-2004449145
+-2105309053
+-2105313920
+-2020307321
+-1903064185
+-2037805429
+-2003723886
+-1987605880
+-2071950710
+-2070960025
+623528292
+1769306742
+2021228152
+1852927097
+-1853658782
+1633243728
+1330664277
+1465341530
+1735882336
+1314288265
+1701011292
+1515937124
+1936814202
+1546593566
+505290270
+505290270
+505290270
+505290270
+-1920103027
+-1920103027
+-1920103027
+-1920103027
+-1920168309
+-1987474036
+-1970569338
+-2003859581
+-2020634741
+-2021093488
+-1920101742
+-1887079579
+1751608680
+1548897321
+420947516
+1331846493
+1735751777
+1179409510
+-1954784170
+1498501462
+1600612716
+1852863088
+1937736560
+1549694340
+2121757811
+1937144191
+-2105377915
+-2055509436
+1145324612
+1145324612
+1145324612
+1145324612
+-1886417009
+-1886417009
+-1886417009
+-1886417009
+-1886681213
+-2139127936
+-2105115521
+2004447854
+1887011451
+1733644108
+1212833916
+-1988403378
+1162169422
+1364081718
+689905190
+1029264484
+1920827233
+993876067
+-1903857293
+2105442944
+2054518393
+2088862854
+1904579208
+1970107255
+1970302574
+1869837945
+2122679185
+-1548970405
+1532713819
+1532713819
+1532713819
+1532713819
+1667457891
+1667457891
+1667457891
+1667457891
+1667258453
+1498960981
+1516330599
+1566732392
+1870892153
+1361976861
+1196321933
+-1871356323
+1566399837
+1683897892
+404363295
+912026751
+-2089189259
+1498569582
+-2021427339
+2004186227
+1920037492
+2038465926
+-1919244898
+-1887141763
+2020963186
+1937144441
+-2138272111
+-1818983084
+1414812756
+1414812756
+1414812756
+1414812756
+1734829927
+1734829927
+1734829927
+1734829927
+1734893161
+2004515199
+-2105576077
+1650619008
+-2037345158
+1294145055
+1061906820
+-2107218579
+1886283876
+1836211501
+353770017
+828410763
+-2088924274
+2104718197
+2004252022
+2004384378
+2054715258
+-2138336878
+-1869507701
+-2139391881
+1987540338
+1903326841
+-2003397748
+2071097168
+1347440720
+1347440720
+1347440720
+1347440720
+1633771873
+1633771873
+1633771873
+1633771873
+1633772384
+1566400097
+1735686774
+1836089236
+-1956030356
+1969773659
+1280863613
+2071358833
+1970631279
+1920101718
+504502559
+793209991
+-1920561774
+-1920631176
+1920169590
+1987476090
+2037938559
+-2003856242
+-1987804548
+2004120435
+1937077363
+1920301440
+-1718253182
+1868981578
+1246382666
+1246382666
+1246382666
+1246382666
+1936946035
+1936946035
+1936946035
+1936946035
+1936945519
+1835954029
+1836085876
+2089261215
+2070572431
+-1482384486
+1768978813
+2071426163
+1953986423
+1987408746
+958601500
+895782558
+-1651405944
+-2004517771
+1920235125
+1953789813
+1920105350
+-1903195261
+2071492213
+1936814192
+1903325813
+2055243147
+-1937278602
+1835689797
+1162167621
+1162167621
+1162167621
+1162167621
+1903260017
+1903260017
+1903260017
+1903260017
+1903326067
+1970764670
+2122153084
+-2088005236
+2004387745
+-1229476450
+-1987738754
+2037740918
+1970632055
+1987606899
+1363296073
+1652923805
+-1803059590
+2037937008
+1903457652
+1920103796
+1987741072
+-1836417676
+1886548593
+1903194224
+1869442678
+-2104716916
+-2139722901
+1718051903
+1061109567
+1061109567
+1061109567
+1061109567
+1819044972
+1819044972
+1819044972
+1819044972
+1819242608
+1903392373
+1936814704
+1903127669
+-1969972835
+-1583245426
+-2004253828
+2004120690
+1869574514
+1953855086
+1717792637
+-1986948728
+2104848495
+1886416494
+1886680178
+1869574778
+-2104849011
+-1988201876
+1802333807
+1886483059
+1936683129
+-2020436595
+2054384492
+1785620542
+1044266558
+1044266558
+1044266558
+1044266558
+2139062143
+2139062143
+2139062143
+2139062143
+2138996090
+2004318326
+1920104055
+2055045261
+-1582915951
+-1919773813
+-2105640329
+1970566000
+1852665971
+1970565743
+1853195406
+-1852995974
+1936814450
+1936879726
+1836020080
+1903458692
+-1903196032
+2037740918
+1987541371
+2105573765
+-1987541363
+-1734369385
+-1886615930
+-2054586545
+1330597711
+1330597711
+1330597711
+1330597711
+-2021161081
+-2021161081
+-2021161081
+-2021161081
+-2021227648
+2122219130
+2020963443
+2072549798
+-1499558274
+2021623425
+2037543539
+1970631280
+1869705844
+1953788527
+1920961166
+-1954119559
+1953789302
+1987342703
+1869640823
+2089061780
+-1785624191
+2122418834
+-1751540834
+-1583044950
+-1381127250
+-1279871824
+-1330336083
+-1397710484
+1819044972
+1819044972
+1819044972
+1819044972
+2122219134
+2122219134
+2122219134
+2122219134
+2122153596
+2071756414
+2071425649
+2123407524
+-1651605643
+1869376881
+1920036979
+1987540082
+1886416494
+1836019570
+2140377739
+-2072086152
+2038069882
+2071756416
+-2088334963
+-1818515800
+-1516067933
+-1549357644
+-1195655744
+-1010382647
+-943274298
+-960051772
+-942815290
+-976636034
+2122219134
+2122219134
+2122219134
+2122219134
+2088533116
+2088533116
+2088533116
+2088533116
+2088400756
+1936946293
+1970566011
+-1952669801
+-1887076997
+2003856751
+1903259762
+1953854577
+1818912873
+1819441540
+-1902537591
+-2105506943
+-2071361399
+-1936549989
+-1566201943
+-1397573190
+-1178943291
+-976960060
+-993737272
+-892547377
+-825439542
+-892613430
+-909195062
+-926105988
+2088533116
+2088533116
+2088533116
+2088533116
+2038004089
+2038004089
+2038004089
+2038004089
+2037937265
+1886417264
+1920235913
+-1600154231
+-2105771398
+2037608560
+1903194226
+1970763636
+1919905649
+2021756054
+-1667656302
+-1936811872
+-1566597472
+-1481789259
+-1161904192
+-1044134202
+-976761650
+-825373494
+-943273782
+-875704624
+-808728892
+-943010615
+-909391927
+-909261959
+2038004089
+2038004089
+2038004089
+2038004089
+1987475062
+1987475062
+1987475062
+1987475062
+1987409013
+2004384112
+1886945936
+-1667856515
+2004186485
+1970632308
+1936880759
+2055044993
+-2071558518
+-1835161426
+-1364415574
+-1515671112
+-1162233926
+-1043937595
+-959985464
+-909522231
+-926431289
+-943208505
+-976894522
+-926299444
+-876233285
+-1043937337
+-943077176
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+1852730990
+1852730990
+1852730990
+1852730990
+1852863091
+1970697843
+2055835282
+-1802796935
+1970632569
+2088731010
+-2105309558
+-1902996069
+-1599887960
+-1346846523
+-943472450
+-1212694846
+-977027134
+-909193523
+-859059253
+-892679479
+-943274298
+-960051514
+-976894522
+-943142708
+-859323968
+-993474104
+-909522744
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+1987475062
+1987475062
+1987475062
+1987475062
+1987606648
+2021293443
+-1885430891
+-1870167422
+-2105309558
+-1886152806
+-1650416730
+-1431457868
+-1229473606
+-1060647470
+-741422651
+-1111702842
+-977224514
+-993408309
+-875770934
+-909588538
+-976960316
+-993737532
+-993737531
+-960051253
+-808465719
+-858795827
+-892745528
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+2054847098
+2054847098
+2054847098
+2054847098
+2054978685
+2122615703
+-1532256876
+-1819110759
+-1667457117
+-1465012045
+-1212564804
+-1094663742
+-1027555391
+-976564013
+-758133818
+-1111636794
+-994133574
+-1060714553
+-909456952
+-960117565
+-1010580541
+-1010580541
+-1010580284
+-993671736
+-858862388
+-842018868
+-892745528
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+2139062143
+2139062143
+2139062143
+2139062143
+2139128451
+-1986879574
+-1330864487
+-1582847053
+-1229604934
+-1128283710
+-993737531
+-976894267
+-993869631
+-993473329
+-825505852
+-1111637052
+-1044728651
+-1161772349
+-976763195
+-993869119
+-1044266559
+-1044266558
+-1027357500
+-993803324
+-976828730
+-960051513
+-926299960
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1768515946
+-1768515946
+-1768515946
+-1768515946
+-1768383846
+-1650152010
+-1162499670
+-1212235836
+-960117307
+-976894266
+-976894523
+-976894523
+-1010646591
+-1010382647
+-926563648
+-1145191226
+-1027951693
+-1178680894
+-993671740
+-1010646335
+-1061109568
+-1061109567
+-1044134717
+-1010580542
+-1027291707
+-976960571
+-943077176
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1515870811
+-1515870811
+-1515870811
+-1515870811
+-1515607385
+-1566332491
+-1094665796
+-909325877
+-875836728
+-943340349
+-1010514748
+-976894266
+-977157952
+-1027225913
+-960249408
+-1145191225
+-943605063
+-1077557306
+-960117308
+-993803326
+-1061175361
+-1077952576
+-1044134973
+-1010580797
+-976696630
+-909588536
+-909522744
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1515870811
+-1515870811
+-1515870811
+-1515870811
+-1515607385
+-1566332491
+-1094665796
+-909325877
+-875836728
+-943340349
+-1010514748
+-976894266
+-977157952
+-1027225913
+-960249408
+-1145191225
+-943605063
+-1077557306
+-960117308
+-993803326
+-1061175361
+-1077952576
+-1044134973
+-1010580797
+-976696630
+-909588536
+-909522744
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1515870811
+-1515870811
+-1515870811
+-1515870811
+-1515607385
+-1566332491
+-1094665796
+-909325877
+-875836728
+-943340349
+-1010514748
+-976894266
+-977157952
+-1027225913
+-960249408
+-1145191225
+-943605063
+-1077557306
+-960117308
+-993803326
+-1061175361
+-1077952576
+-1044134973
+-1010580797
+-976696630
+-909588536
+-909522744
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1515870811
+-1515870811
+-1515870811
+-1515870811
+-1515607385
+-1566332491
+-1094665796
+-909325877
+-875836728
+-943340349
+-1010514748
+-976894266
+-977157952
+-1027225913
+-960249408
+-1145191225
+-943605063
+-1077557306
+-960117308
+-993803326
+-1061175361
+-1077952576
+-1044134973
+-1010580797
+-976696630
+-909588536
+-909522744
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1515870811
+-1515870811
+-1515870811
+-1515870811
+-1515607385
+-1566332491
+-1094665796
+-909325877
+-875836728
+-943340349
+-1010514748
+-976894266
+-977157952
+-1027225913
+-960249408
+-1145191225
+-943605063
+-1077557306
+-960117308
+-993803326
+-1061175361
+-1077952576
+-1044134973
+-1010580797
+-976696630
+-909588536
+-909522744
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1515870811
+-1515870811
+-1515870811
+-1515870811
+-1515607385
+-1566332491
+-1094665796
+-909325877
+-875836728
+-943340349
+-1010514748
+-976894266
+-977157952
+-1027225913
+-960249408
+-1145191225
+-943605063
+-1077557306
+-960117308
+-993803326
+-1061175361
+-1077952576
+-1044134973
+-1010580797
+-976696630
+-909588536
+-909522744
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1515870811
+-1515870811
+-1515870811
+-1515870811
+-1515607385
+-1566332491
+-1094665796
+-909325877
+-875836728
+-943340349
+-1010514748
+-976894266
+-977157952
+-1027225913
+-960249408
+-1145191225
+-943605063
+-1077557306
+-960117308
+-993803326
+-1061175361
+-1077952576
+-1044134973
+-1010580797
+-976696630
+-909588536
+-909522744
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1515870811
+-1515870811
+-1515870811
+-1515870811
+-1515607385
+-1566332491
+-1094665796
+-909325877
+-875836728
+-943340349
+-1010514748
+-976894266
+-977157952
+-1027225913
+-960249408
+-1145191225
+-943605063
+-1077557306
+-960117308
+-993803326
+-1061175361
+-1077952576
+-1044134973
+-1010580797
+-976696630
+-909588536
+-909522744
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1515870811
+-1515870811
+-1515870811
+-1515870811
+-1515607385
+-1566332491
+-1094665796
+-909325877
+-875836728
+-943340349
+-1010514748
+-976894266
+-977157952
+-1027225913
+-960249408
+-1145191225
+-943605063
+-1077557306
+-960117308
+-993803326
+-1061175361
+-1077952576
+-1044134973
+-1010580797
+-976696630
+-909588536
+-909522744
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1515870811
+-1515870811
+-1515870811
+-1515870811
+-1515607385
+-1566332491
+-1094665796
+-909325877
+-875836728
+-943340349
+-1010514748
+-976894266
+-977157952
+-1027225913
+-960249408
+-1145191225
+-943605063
+-1077557306
+-960117308
+-993803326
+-1061175361
+-1077952576
+-1044134973
+-1010580797
+-976696630
+-909588536
+-909522744
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1515870811
+-1515870811
+-1515870811
+-1515870811
+-1515607385
+-1566332491
+-1094665796
+-909325877
+-875836728
+-943340349
+-1010514748
+-976894266
+-977157952
+-1027225913
+-960249408
+-1145191225
+-943605063
+-1077557306
+-960117308
+-993803326
+-1061175361
+-1077952576
+-1044134973
+-1010580797
+-976696630
+-909588536
+-909522744
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1515870811
+-1515870811
+-1515870811
+-1515870811
+-1515607385
+-1566332491
+-1094665796
+-909325877
+-875836728
+-943340349
+-1010514748
+-976894266
+-977157952
+-1027225913
+-960249408
+-1145191225
+-943605063
+-1077557306
+-960117308
+-993803326
+-1061175361
+-1077952576
+-1044134973
+-1010580797
+-976696630
+-909588536
+-909522744
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1515870811
+-1515870811
+-1515870811
+-1515870811
+-1515607385
+-1566332491
+-1094665796
+-909325877
+-875836728
+-943340349
+-1010514748
+-976894266
+-977157952
+-1027225913
+-960249408
+-1145191225
+-943605063
+-1077557306
+-960117308
+-993803326
+-1061175361
+-1077952576
+-1044134973
+-1010580797
+-976696630
+-909588536
+-909522744
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1515870811
+-1515870811
+-1515870811
+-1515870811
+-1515607385
+-1566332491
+-1094665796
+-909325877
+-875836728
+-943340349
+-1010514748
+-976894266
+-977157952
+-1027225913
+-960249408
+-1145191225
+-943605063
+-1077557306
+-960117308
+-993803326
+-1061175361
+-1077952576
+-1044134973
+-1010580797
+-976696630
+-909588536
+-909522744
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1515870811
+-1515870811
+-1515870811
+-1515870811
+-1515607385
+-1566332491
+-1094665796
+-909325877
+-875836728
+-943340349
+-1010514748
+-976894266
+-977157952
+-1027225913
+-960249408
+-1145191225
+-943605063
+-1077557306
+-960117308
+-993803326
+-1061175361
+-1077952576
+-1044134973
+-1010580797
+-976696630
+-909588536
+-909522744
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1515870811
+-1515870811
+-1515870811
+-1515870811
+-1515607385
+-1566332491
+-1094665796
+-909325877
+-875836728
+-943340349
+-1010514748
+-976894266
+-977157952
+-1027225913
+-960249408
+-1145191225
+-943605063
+-1077557306
+-960117308
+-993803326
+-1061175361
+-1077952576
+-1044134973
+-1010580797
+-976696630
+-909588536
+-909522744
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1515870811
+-1515870811
+-1515870811
+-1515870811
+-1515607385
+-1566332491
+-1094665796
+-909325877
+-875836728
+-943340349
+-1010514748
+-976894266
+-977157952
+-1027225913
+-960249408
+-1145191225
+-943605063
+-1077557306
+-960117308
+-993803326
+-1061175361
+-1077952576
+-1044134973
+-1010580797
+-976696630
+-909588536
+-909522744
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-2004318072
+-2004318072
+-2012541882
+1795620730
+318794160
+-1488371695
+1863053564
+-1070858208
+11668988
+1410230210
+293725365
+-1115694074
+1465742650
+-1810615036
+67372036
+67372036
+-2004318072
+-2004318072
+-2012541882
+1795620730
+318794160
+-1488371695
+1863053564
+-1070858208
+11668988
+1410230210
+293725365
+-1115694074
+1465742650
+-1810615036
+67372036
+67372036
+-2004318072
+-2004318072
+-2012541882
+1795620730
+318794160
+-1488371695
+1863053564
+-1070858208
+11668988
+1410230210
+293725365
+-1115694074
+1465742650
+-1810615036
+67372036
+67372036
+-2004318072
+-2004318072
+-2012541882
+1795620730
+318794160
+-1488371695
+1863053564
+-1070858208
+11668988
+1410230210
+293725365
+-1115694074
+1465742650
+-1810615036
+67372036
+67372036
+-2004318072
+-2004318072
+-2012541882
+1795620730
+318794160
+-1488371695
+1863053564
+-1070858208
+11668988
+1410230210
+293725365
+-1115694074
+1465742650
+-1810615036
+67372036
+67372036
+-2004318072
+-2004318072
+-2012541882
+1795620730
+318794160
+-1488371695
+1863053564
+-1070858208
+11668988
+1410230210
+293725365
+-1115694074
+1465742650
+-1810615036
+67372036
+67372036
+-2004318072
+-2004318072
+-2012541882
+1795620730
+318794160
+-1488371695
+1863053564
+-1070858208
+11668988
+1410230210
+293725365
+-1115694074
+1465742650
+-1810615036
+67372036
+67372036
+-2004318072
+-2004318072
+-2012541882
+1795620730
+318794160
+-1488371695
+1863053564
+-1070858208
+11668988
+1410230210
+293725365
+-1115694074
+1465742650
+-1810615036
+67372036
+67372036
+-2004318072
+-2004318072
+-2012541882
+1795620730
+318794160
+-1488371695
+1863053564
+-1070858208
+11668988
+1410230210
+293725365
+-1115694074
+1465742650
+-1810615036
+67372036
+67372036
+1061109567
+1061109567
+1058067648
+-848375510
+-311739113
+-1401952840
+872432650
+1818045202
+-2008964585
+1066607525
+1144596224
+287114710
+-737780114
+326555912
+134744072
+134744072
+623191333
+623191333
+622920139
+1376002693
+-1654015917
+-713227752
+-1104084778
+-872377847
+26784305
+-1335358413
+-872071398
+3932340
+-754495516
+340786654
+-555819298
+-555819298
+-1482184793
+-1482184793
+-1487470080
+-153151359
+1491528586
+-367999253
+-2106914959
+1863709059
+475229977
+1973361285
+203130537
+349789189
+-1433002694
+5669437
+1027423549
+1027423549
+1768515945
+1768515945
+1769430641
+1736666723
+1787125097
+1953067366
+1836279131
+-2023661204
+1835821165
+2104255337
+1751479657
+1801547877
+1719032184
+1852534911
+2139062143
+2139062143
+1886417008
+1886417008
+1885963872
+1700946541
+1901887328
+1852471412
+1851946349
+1786016097
+1785617258
+2086700134
+1652120175
+1634890090
+1902473060
+1734569067
+1802201963
+1802201963
+2021161080
+2021161080
+2019259747
+1801813605
+1735353453
+1634885228
+1869112940
+1818648702
+1802008180
+1634626669
+-2124843666
+1935045237
+1617980004
+1902799477
+1970632053
+1970632053
+1802201963
+1802201963
+1802330990
+1651269487
+1902865246
+2136570219
+1718576747
+1785621610
+1835822698
+1852531836
+1852861548
+1585212010
+1768842616
+1768512132
+-2071690108
+-2071690108
+1734829927
+1734829927
+1735421294
+1751935851
+1802202477
+1818849131
+1752001387
+1785817963
+1835887721
+1819043692
+1802529389
+1836214375
+1835887724
+1751805036
+1819044972
+1819044972
+1802201963
+1802201963
+1802201963
+1802201963
+1802201964
+1819110766
+1869705842
+1920102768
+1903260017
+1903260017
+1920036975
+1852665195
+1819110764
+1785359470
+1852730990
+1852730990
+1802201963
+1802201963
+1802201963
+1802201963
+1802201964
+1819110767
+1920234870
+1987409012
+1920103026
+1920103026
+1886416750
+1852664940
+1819110764
+1785359470
+1852730990
+1852730990
+1802201963
+1802201963
+1802201963
+1802201963
+1802201964
+1819110766
+1869705843
+1936879984
+1852730990
+1852730991
+1869573998
+1852665196
+1819110764
+1785359470
+1852730990
+1852730990
+1802201963
+1802201963
+1802201963
+1802201963
+1802201964
+1819110765
+1835954031
+1869573740
+1802136170
+1785358955
+1835953773
+1835887724
+1819110764
+1785359470
+1852730990
+1852730990
+1802201963
+1802201963
+1802201963
+1802201963
+1802201964
+1819110766
+1835954032
+1886350957
+1802136170
+1785358955
+1802267756
+1819044972
+1819110764
+1785359470
+1852730990
+1852730990
+1802201963
+1802201963
+1802201963
+1802201963
+1802201964
+1819110766
+1852862833
+1903259758
+1852665197
+1835887981
+1819044972
+1819044972
+1819110764
+1785359470
+1852730990
+1852730990
+1802201963
+1802201963
+1802201963
+1802201963
+1802201964
+1819044972
+1835954033
+1920036718
+1835887980
+1835822188
+1785359211
+1802202219
+1819045228
+1802202222
+1852730990
+1852730990
+1819044972
+1819044972
+1819044972
+1819044972
+1802136170
+1785424747
+1819111282
+1936813676
+1802267755
+1802201962
+1751738729
+1785358955
+1802267756
+1819044972
+1819044972
+1819044972
+1819044972
+1819044972
+1819044972
+1819044972
+1802136170
+1785358954
+1785557364
+1970433644
+1802333291
+1802135912
+1751672937
+1785358954
+1802201963
+1802201963
+1802201963
+1802201963
+1835887981
+1835887981
+1835887981
+1835887980
+1802136170
+1785358954
+1802400631
+2004053869
+1819044714
+1768450152
+1751672937
+1768516202
+1768581738
+1785358954
+1785358954
+1785358954
+1869573999
+1869573999
+1869573999
+1869573998
+1835756395
+1802201962
+1819375226
+2037739629
+1802135912
+1751606886
+1734829927
+1751672936
+1768581738
+1785358954
+1785358954
+1785358954
+1936946035
+1936946035
+1936946035
+1936946034
+1903128431
+1869573998
+1886615160
+1987342702
+1818913385
+1768515688
+1768515944
+1751672937
+1802267756
+1819044972
+1819044972
+1819044972
+2021161080
+2021161080
+2021161080
+2021161079
+1970500467
+1936946035
+1936879726
+1835954288
+1852665198
+1852731247
+1869573742
+1852665198
+1852796783
+1869573999
+1869573999
+1869573999
+2122219134
+2122219134
+2122219134
+2122219133
+2071492728
+2021161081
+1970103132
+1567060084
+1953723252
+1987541112
+2004317814
+1970631796
+1936880242
+1920103026
+1920103026
+1920103026
+-2139062144
+-2139062144
+-2139062144
+-2139062145
+2122021755
+2071690109
+1986747730
+1365143159
+2037938298
+2071756157
+2088532859
+2071624313
+2021095287
+2004318071
+2004318071
+2004318071
+-2139062144
+-2139062144
+-2139062144
+-2139062145
+2122087548
+2088533118
+2037342290
+1314417785
+2105244283
+2088533373
+2105375869
+2088533116
+2071690107
+2071624314
+2054847098
+2054847098
+-2139062144
+-2139062144
+-2139062144
+-2139062145
+2122087548
+2088533118
+2071225944
+1364880762
+2105244282
+2054847098
+2054847355
+2071690107
+2071690364
+2088533116
+2088533116
+2088533116
+2139062143
+2139062143
+2139062143
+2139062142
+2105310332
+2088533118
+2105044319
+1465806456
+2054649719
+2004318071
+2021226873
+2038004089
+2038070139
+2071690107
+2071690107
+2071690107
+2071690107
+2071690107
+2071690107
+2071690106
+2054847098
+2054847099
+2071556194
+1516203381
+2004252278
+1987475062
+1987540855
+2004318071
+2021227130
+2054847098
+2054847098
+2054847098
+1987475062
+1987475062
+1987475062
+1987475062
+1987540855
+2004318072
+2021093733
+1600417396
+1970632310
+1987475062
+2004318328
+2021161080
+2038004346
+2054847098
+2054847098
+2054847098
+1970632053
+1970632053
+1970632053
+1970632053
+1987540855
+2004318071
+2004382316
+1768715126
+1987475319
+2004318071
+2021226873
+2038004089
+2038069882
+2054847098
+2054847098
+2054847098
+2038004089
+2038004089
+2038004089
+2038004089
+2021161080
+2021161080
+2037937780
+1953986937
+2038069882
+2054847098
+2054847098
+2054847098
+2071690107
+2071690107
+2071690107
+2071690107
+2071690107
+2071690107
+2071690107
+2071690107
+2071690107
+2071690107
+2054781049
+2071755899
+2054912891
+2071690107
+2054847098
+2054847098
+2071690364
+2088533116
+2088533116
+2088533116
+2071690107
+2071690107
+2071690107
+2071690107
+2071690107
+2071690107
+2071624572
+2122218620
+2071624314
+2054847098
+2054847098
+2054847099
+2088598909
+2105376125
+2105376125
+2105376125
+2088533116
+2088533116
+2088533116
+2088533116
+2071690107
+2071690107
+2088533373
+2105376125
+2071690107
+2071690107
+2088533373
+2105376125
+2122219134
+2122219134
+2122219134
+2122219134
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2105441918
+2122219134
+2105310332
+2088533117
+2122350720
+-2139062144
+2139062143
+2139062143
+2139062143
+2139062143
+2105376125
+2105376125
+2105376125
+2105376125
+2088598909
+2105376125
+2122284927
+2139062143
+2139062143
+2139062143
+-2122153342
+-2105376126
+-2122219135
+-2122219135
+-2122219135
+-2122219135
+2122219134
+2122219134
+2122219134
+2122219134
+2122219391
+2139062143
+-2139062144
+-2139062144
+-2122219135
+-2122219134
+-2088467324
+-2071690108
+-2088533117
+-2088533117
+-2088533117
+-2088533117
+2139062143
+2139062143
+2139062143
+2139062143
+-2139061887
+-2122219135
+-2105375869
+-2088533117
+-2088532860
+-2071690107
+-2054781049
+-2021161082
+-2054912892
+-2071690108
+-2071690108
+-2071690108
+2139062143
+2139062143
+2139062143
+2139062143
+-2138996094
+-2105376126
+-2088467324
+-2071690108
+-2071624315
+-2054847099
+-2037938297
+-2021161081
+-2054847099
+-2054847099
+-2054847099
+-2054847099
+-2139062144
+-2139062144
+-2139062144
+-2139062144
+-2105310076
+-2071690108
+-2071624315
+-2054847099
+-2054846842
+-2038004090
+-2038003833
+-2021161082
+-2038069883
+-2054847099
+-2054847099
+-2054847099
+-2139062144
+-2139062144
+-2139062144
+-2139062144
+-2105310076
+-2071690108
+-2071624315
+-2054847099
+-2054846842
+-2038004090
+-2038003833
+-2021161082
+-2038069883
+-2054847099
+-2054847099
+-2054847099
+-2139062144
+-2139062144
+-2139062144
+-2139062144
+-2105310076
+-2071690108
+-2071624315
+-2054847099
+-2054846842
+-2038004090
+-2038003833
+-2021161082
+-2038069883
+-2054847099
+-2054847099
+-2054847099
+-2139062144
+-2139062144
+-2139062144
+-2139062144
+-2105310076
+-2071690108
+-2071624315
+-2054847099
+-2054846842
+-2038004090
+-2038003833
+-2021161082
+-2038069883
+-2054847099
+-2054847099
+-2054847099
+-2139062144
+-2139062144
+-2139062144
+-2139062144
+-2105310076
+-2071690108
+-2071624315
+-2054847099
+-2054846842
+-2038004090
+-2038003833
+-2021161082
+-2038069883
+-2054847099
+-2054847099
+-2054847099
+-2139062144
+-2139062144
+-2139062144
+-2139062144
+-2105310076
+-2071690108
+-2071624315
+-2054847099
+-2054846842
+-2038004090
+-2038003833
+-2021161082
+-2038069883
+-2054847099
+-2054847099
+-2054847099
+-2139062144
+-2139062144
+-2139062144
+-2139062144
+-2105310076
+-2071690108
+-2071624315
+-2054847099
+-2054846842
+-2038004090
+-2038003833
+-2021161082
+-2038069883
+-2054847099
+-2054847099
+-2054847099
+-2139062144
+-2139062144
+-2139062144
+-2139062144
+-2105310076
+-2071690108
+-2071624315
+-2054847099
+-2054846842
+-2038004090
+-2038003833
+-2021161082
+-2038069883
+-2054847099
+-2054847099
+-2054847099
+-2139062144
+-2139062144
+-2139062144
+-2139062144
+-2105310076
+-2071690108
+-2071624315
+-2054847099
+-2054846842
+-2038004090
+-2038003833
+-2021161082
+-2038069883
+-2054847099
+-2054847099
+-2054847099
+2088533116
+2088533116
+2082108904
+71042816
+13570461
+323496968
+621757444
+-1470349338
+-519240938
+2067997850
+47811084
+1507865859
+-896700156
+1544020822
+1448498774
+1448498774
+2088533116
+2088533116
+2082108904
+71042816
+13570461
+323496968
+621757444
+-1470349338
+-519240938
+2067997850
+47811084
+1507865859
+-896700156
+1544020822
+1448498774
+1448498774
+2088533116
+2088533116
+2082108904
+71042816
+13570461
+323496968
+621757444
+-1470349338
+-519240938
+2067997850
+47811084
+1507865859
+-896700156
+1544020822
+1448498774
+1448498774
+2088533116
+2088533116
+2082108904
+71042816
+13570461
+323496968
+621757444
+-1470349338
+-519240938
+2067997850
+47811084
+1507865859
+-896700156
+1544020822
+1448498774
+1448498774
+2088533116
+2088533116
+2082108904
+71042816
+13570461
+323496968
+621757444
+-1470349338
+-519240938
+2067997850
+47811084
+1507865859
+-896700156
+1544020822
+1448498774
+1448498774
+2088533116
+2088533116
+2082108904
+71042816
+13570461
+323496968
+621757444
+-1470349338
+-519240938
+2067997850
+47811084
+1507865859
+-896700156
+1544020822
+1448498774
+1448498774
+2088533116
+2088533116
+2082108904
+71042816
+13570461
+323496968
+621757444
+-1470349338
+-519240938
+2067997850
+47811084
+1507865859
+-896700156
+1544020822
+1448498774
+1448498774
+2088533116
+2088533116
+2082108904
+71042816
+13570461
+323496968
+621757444
+-1470349338
+-519240938
+2067997850
+47811084
+1507865859
+-896700156
+1544020822
+1448498774
+1448498774
+2088533116
+2088533116
+2082108904
+71042816
+13570461
+323496968
+621757444
+-1470349338
+-519240938
+2067997850
+47811084
+1507865859
+-896700156
+1544020822
+1448498774
+1448498774
+1347440720
+1347440720
+1356140841
+-1729396130
+52075278
+1779590153
+1439563898
+426969716
+285197444
+-1497659175
+-1103364083
+-1003785088
+1960978266
+798885935
+791621423
+791621423
+1465341783
+1465341783
+1459883960
+739814165
+-660048124
+423751661
+-314827794
+393159833
+415208504
+377722218
+1845518339
+2030816833
+-925078269
+-1307973057
+1061109567
+1061109567
+471604252
+471604252
+469770322
+219843939
+7879442
+-786816993
+-392705524
+-1994455773
+-1862230015
+-1751016498
+1971042074
+-1803773535
+1726109447
+-1137745078
+1246382666
+1246382666
+-2021161081
+-2021161081
+-2021359257
+1871148909
+-2105316487
+2054910080
+-2021038210
+2004841091
+2039834738
+-2038471563
+-1889043582
+1954511221
+2004649844
+2140237951
+2139062143
+2139062143
+1835887981
+1835887981
+1837267336
+2104850562
+-2089121667
+1989173377
+2037547644
+2005433985
+-2056680328
+2021426296
+2022206348
+-2106361734
+2105504129
+1987478911
+2139062143
+2139062143
+2122219134
+2122219134
+2123067008
+2088139893
+2056025726
+1970829184
+2121368444
+-2140046218
+1971290752
+2004647548
+2038137206
+2021624184
+1937470335
+1988061815
+2004318071
+2004318071
+2122219134
+2122219134
+2121825410
+1904312189
+-2056159625
+-1921939849
+2121694330
+-1972663935
+2054850162
+2088663934
+-2122806153
+2072475013
+2072279167
+2071821946
+2054847098
+2054847098
+2071690107
+2071690107
+2071298171
+2071690876
+2054913659
+2105113725
+2121955963
+2088533373
+2088336762
+2122152573
+-2139259015
+2088531835
+2122152829
+2105245052
+2088533116
+2088533116
+2071690107
+2071690107
+2071690107
+2054847099
+2071755900
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2105376125
+2105376125
+2105375867
+2071624058
+2071755900
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2105376125
+2105376125
+2105375868
+2088467323
+2071755900
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2105376125
+2105376125
+2105375869
+2105376124
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533117
+2122219390
+2105310332
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2038004089
+2038004089
+2038070142
+2139193985
+2122087548
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2038004089
+2038004089
+2038070141
+2122351232
+2122087548
+2071690107
+2088599167
+2138930300
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2071690107
+2071690107
+2071690108
+2105441918
+2105244539
+2071690107
+2088664961
+-2139128452
+2071690107
+2088533373
+2071690107
+2071690107
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533115
+2071690107
+2088731010
+-2122351236
+2071690108
+2088533373
+2071690107
+2071690107
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533373
+2122285185
+-2139128195
+2088533116
+2088533116
+2071690107
+2071690107
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088598910
+2122284927
+2139062144
+2139062143
+2122153340
+2088467323
+2071690107
+2071690107
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2105376383
+-2138996094
+-2122350978
+2122285184
+2139061885
+2088467066
+2071690107
+2071690107
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533117
+2105442176
+-2105310076
+-2105574020
+2105508225
+-2139062403
+2088401273
+2054912891
+2071690107
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2105442433
+-2088401018
+-2105574020
+2105508482
+-2122219394
+2088401016
+2054912891
+2071690107
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533631
+-2122153086
+-2122417028
+2105507970
+-2105376642
+2105244025
+2038069882
+2054847097
+2071755901
+2105376125
+2105376125
+2105376125
+2105376125
+2105376125
+2105376125
+2105376124
+2071690108
+2088599166
+2122153084
+2105442177
+-2122219393
+2105309817
+2054847354
+2054847098
+2071756157
+2105442175
+2139062143
+2139062143
+2088533116
+2088533116
+2088533116
+2088533116
+2054847098
+2054847099
+2088598908
+2071821696
+-2139062145
+2122153084
+2088664958
+2139061885
+2088533373
+2122219391
+2139062143
+2139062143
+2105376125
+2105376125
+2105376125
+2105376125
+2105376125
+2105376125
+2105441659
+2071756159
+2139193471
+2138996093
+2122350719
+-2139128194
+2122219134
+2139062144
+-2139062144
+-2139062144
+2139062143
+2139062143
+2139062143
+2139062143
+2139127936
+-2139062144
+-2138997124
+2088599167
+-2138996095
+-2122219135
+-2105310333
+-2105442174
+-2105375869
+-2088533116
+-2071690108
+-2071690108
+-2088533117
+-2088533117
+-2088533117
+-2088533117
+-2105376126
+-2105376125
+-2071756417
+2122219394
+-2088467067
+-2038004089
+-1987343478
+-1970698104
+-2021095288
+-2004318072
+-2004318072
+-2004318072
+-2004318072
+-2004318072
+-2004318072
+-2004318072
+-2038004090
+-2038004088
+-2004318589
+-2122218619
+-2054781305
+-2004317814
+-1936946293
+-1987541112
+-2004252279
+-2004318072
+-2004318072
+-2004318072
+-1920103027
+-1920103027
+-1920103027
+-1920103028
+-1970697847
+-1987475061
+-1920104058
+-2054846585
+-2021226617
+-2004252021
+-1953855353
+-2054913148
+-2021095545
+-2038004347
+-2054847099
+-2054847099
+-1903260018
+-1903260018
+-1903325811
+-1936946037
+-2004449658
+-2021095285
+-1936881016
+-2037872248
+-2021226873
+-2004252279
+-1987541114
+-2038135676
+-2054847356
+-2071756158
+-2105376126
+-2105376126
+-1936946036
+-1936946036
+-1936946037
+-1953854841
+-2071887486
+-2071623799
+-1987343992
+-2021161082
+-2038004090
+-2037938041
+-2038070396
+-2088533117
+-2105376127
+-2122219135
+-2122219135
+-2122219135
+-1953789045
+-1953789045
+-1953789303
+-1987541115
+-2105573503
+-2105244025
+-2004318330
+-2038070139
+-2054781306
+-2038004091
+-2105507712
+-2139062144
+2139062143
+2139062143
+2139062143
+2139062143
+-1936946036
+-1936946036
+-1937011830
+-1987540857
+-2038135675
+-2054781048
+-2021227131
+-2071756157
+-2071624315
+-2054847101
+-2139259780
+2088533116
+2071690107
+2071690107
+2071690107
+2071690107
+-1953789045
+-1953789045
+-1953789303
+-2004318329
+-2004318329
+-2021160826
+-2054978942
+-2122285185
+-2139062144
+-2139062146
+2088335480
+2021161080
+2021161080
+2021161080
+2021161080
+2021161080
+-1987475063
+-1987475063
+-1987540857
+-2038069883
+-2038004090
+-2038069885
+-2122350721
+2122153083
+2054781305
+2038004088
+2021095030
+1987475062
+1987475062
+1987475062
+1987475062
+1987475062
+-2054847099
+-2054847099
+-2054912893
+-2105441919
+-2122153343
+-2122285186
+2088467579
+2054781303
+1987409269
+1970632053
+1970632053
+1970632053
+1987475062
+1987475062
+1987475062
+1987475062
+-2122219135
+-2122219135
+-2122284929
+2122153341
+2088533116
+2071690106
+2021161080
+2004252277
+1987475062
+1987475062
+1970632310
+1987475062
+2004318071
+2004318071
+2004318071
+2004318071
+2122219134
+2122219134
+2122218877
+2088467065
+2021161080
+2037938295
+1987475318
+1970631797
+1987540855
+2004318071
+1970632310
+1987475062
+2004318071
+2004318071
+2004318071
+2004318071
+2122219134
+2122219134
+2122218877
+2088467065
+2021161080
+2037938295
+1987475318
+1970631797
+1987540855
+2004318071
+1970632310
+1987475062
+2004318071
+2004318071
+2004318071
+2004318071
+2122219134
+2122219134
+2122218877
+2088467065
+2021161080
+2037938295
+1987475318
+1970631797
+1987540855
+2004318071
+1970632310
+1987475062
+2004318071
+2004318071
+2004318071
+2004318071
+2122219134
+2122219134
+2122218877
+2088467065
+2021161080
+2037938295
+1987475318
+1970631797
+1987540855
+2004318071
+1970632310
+1987475062
+2004318071
+2004318071
+2004318071
+2004318071
+2122219134
+2122219134
+2122218877
+2088467065
+2021161080
+2037938295
+1987475318
+1970631797
+1987540855
+2004318071
+1970632310
+1987475062
+2004318071
+2004318071
+2004318071
+2004318071
+2122219134
+2122219134
+2122218877
+2088467065
+2021161080
+2037938295
+1987475318
+1970631797
+1987540855
+2004318071
+1970632310
+1987475062
+2004318071
+2004318071
+2004318071
+2004318071
+2122219134
+2122219134
+2122218877
+2088467065
+2021161080
+2037938295
+1987475318
+1970631797
+1987540855
+2004318071
+1970632310
+1987475062
+2004318071
+2004318071
+2004318071
+2004318071
+2122219134
+2122219134
+2122218877
+2088467065
+2021161080
+2037938295
+1987475318
+1970631797
+1987540855
+2004318071
+1970632310
+1987475062
+2004318071
+2004318071
+2004318071
+2004318071
+2122219134
+2122219134
+2122218877
+2088467065
+2021161080
+2037938295
+1987475318
+1970631797
+1987540855
+2004318071
+1970632310
+1987475062
+2004318071
+2004318071
+2004318071
+2004318071
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+-1313754703
+-1313754703
+-1313754703
+-1313754703
+-1309682045
+1279267943
+1180434447
+906297348
+-542962148
+851968
+928779776
+117441793
+2826
+50331649
+17172992
+12
+-1174269933
+-1125321554
+-1701967616
+-247337284
+1984690357
+-986775529
+15138947
+285736960
+-115140859
+1406306994
+-136970240
+527616
+0
+0
+0
+0
+151587081
+151587081
+151587081
+151587081
+156343830
+520355843
+1588856326
+1436748036
+465731963
+1560315777
+-330563568
+958070799
+1868365829
+256
+-1186462462
+335741440
+201786368
+787456
+34537480
+268439552
+-1240397824
+-791675980
+-1484974827
+-481756490
+1867117742
+-241560319
+137049740
+1598543662
+774778414
+774778414
+774778414
+774778414
+252645135
+252645135
+252645135
+252645135
+256007959
+-725677600
+-89125152
+-869396887
+1838387480
+1393318227
+-1843897185
+1961072414
+471501765
+315661956
+-971009632
+-1815961607
+-1347692506
+-1977332225
+1793149445
+-988945568
+227529292
+891396299
+-1353946026
+657609427
+453895015
+145731089
+50397201
+920458
+-1970632054
+-1970632054
+-1970632054
+-1970632054
+218959117
+218959117
+218959117
+218959117
+218235655
+101018884
+491782164
+-1643577327
+151977984
+210894835
+1947009024
+83980421
+-1283961224
+-248617515
+-1733071193
+637779792
+-331939642
+1319415853
+-648088662
+-481558036
+1891297551
+24196662
+1750599371
+15602043
+-1406242702
+1674510152
+-223527917
+1731951319
+-673720361
+-673720361
+-673720361
+-673720361
+-1077952577
+-1077952577
+-1077952577
+-1077952577
+-1075729206
+577324646
+-1305717895
+-996832804
+408010295
+-2099408356
+-1974197762
+674089301
+-1676449643
+-1592993586
+-624834520
+927758521
+543050036
+209181738
+1254105424
+-1700013127
+-156328020
+-1857545599
+-1282481477
+-1892374695
+1012306117
+2069285186
+1347960866
+-318242560
+0
+0
+0
+0
+-1970632054
+-1970632054
+-1970632054
+-1970632054
+-1964527726
+240140813
+1116642918
+1447710607
+-5333940
+-445870070
+-1691278170
+-1185106354
+-1366594010
+-955587938
+1383857056
+-1570213822
+1452953585
+1809735388
+2015690197
+-102961302
+1658164377
+-2090372439
+1428185247
+-896864459
+1411269094
+1253619585
+1561746310
+1068106381
+-1920103027
+-1920103027
+-1920103027
+-1920103027
+-640034343
+-640034343
+-640034343
+-640034343
+-641901875
+-1318565045
+1178002294
+-1351070257
+731835885
+923179858
+-852389571
+-717024363
+-527117405
+-1504395362
+-753577040
+-1081723431
+-1276231972
+880826125
+-1200264994
+1671905573
+-1915227737
+1082347499
+975530879
+-1237484990
+835185263
+1152039327
+-1716598685
+-690680568
+134744072
+134744072
+134744072
+134744072
+1313754702
+1313754702
+1313754702
+1313754702
+1313755470
+1313754703
+1280200270
+1313754446
+1313754702
+1313754702
+1280003405
+1330401874
+1347440720
+1347506256
+1364283729
+1364283729
+1364282961
+1364283472
+1330531918
+1313754701
+1246316873
+1229539401
+1145521991
+1195787079
+1212762440
+1145653576
+1195853125
+1145454899
+858993459
+858993459
+858993459
+858993459
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754701
+1296911951
+1347506514
+1364283729
+1364283729
+1364283729
+1364283729
+1364283729
+1364283728
+1330531918
+1313754701
+1263159882
+1246382665
+1212630855
+1195853639
+1212696648
+1212696647
+1195853122
+1145454131
+858993459
+858993459
+858993459
+858993459
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1330597711
+1330597711
+1330597711
+1330597711
+1313755216
+1364349522
+1364283729
+1364283729
+1364283729
+1364283729
+1364283729
+1364283728
+1330531918
+1313754701
+1280002891
+1263225674
+1229473864
+1212696648
+1195853639
+1195853639
+1179076163
+1162231604
+875836468
+875836468
+875836468
+875836468
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1330597711
+1330597711
+1347440720
+1347440720
+1347440977
+1381126739
+1381126738
+1381126738
+1364283729
+1364283729
+1364283729
+1364283728
+1330531918
+1313754702
+1280068684
+1280068683
+1246316873
+1229539657
+1195853639
+1195853639
+1195918915
+1162297140
+875836468
+875836468
+875836468
+875836468
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754703
+1330663504
+1347440720
+1364283729
+1364283729
+1364283986
+1397970004
+1381126738
+1381126738
+1364283729
+1364283729
+1364283729
+1364283728
+1330531918
+1313754702
+1296911693
+1296911693
+1263225675
+1263225674
+1229473864
+1212696648
+1195919172
+1179074613
+892679477
+892679477
+892679477
+892679477
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754703
+1330663504
+1347440721
+1364349522
+1381126738
+1397970003
+1414812756
+1397969747
+1397969747
+1364283729
+1364283729
+1364283729
+1364283728
+1330531918
+1313754702
+1313754702
+1313754702
+1280068684
+1280068683
+1246316873
+1229539657
+1212761925
+1179140149
+892679477
+892679477
+892679477
+892679477
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754703
+1347506513
+1364283730
+1381192531
+1397969748
+1414813012
+1431589972
+1414746963
+1397969747
+1364283729
+1364283729
+1364283729
+1364283728
+1330531918
+1313754702
+1330597711
+1330597710
+1296845900
+1280068684
+1263225675
+1263225674
+1229539397
+1195917622
+909522486
+909522486
+909522486
+909522486
+1330597711
+1330597711
+1330597711
+1330597711
+1330597711
+1330597712
+1364349522
+1381126739
+1414878549
+1431655765
+1448629591
+1532384342
+1414552140
+1531662933
+1347309395
+1313821007
+1330859600
+1380929617
+1330532174
+1296649551
+1330532431
+1330466385
+1296911693
+1313754702
+1313754445
+1296911692
+1246382150
+1212760372
+875836468
+875836468
+875836468
+875836468
+1364283729
+1364283729
+1364283729
+1364283729
+1364283729
+1364283730
+1398035540
+1414812757
+1431721558
+1448498773
+1448563548
+1515605586
+1431657038
+1531662932
+1380801363
+1363826770
+1364479831
+1364283730
+1364284752
+1363692625
+1347441999
+1380733265
+1330531919
+1330597968
+1330531918
+1296911692
+1263159880
+1212957489
+825307441
+825307441
+825307441
+825307441
+1397969747
+1397969747
+1397969747
+1397969747
+1397969747
+1397969748
+1414878549
+1431655766
+1448564567
+1465341778
+1364677716
+1331188561
+1415401816
+1398233166
+1280530515
+1532253527
+1431589718
+1314148693
+1431526482
+1447906392
+1347702867
+1447648079
+1347374928
+1364283985
+1330531917
+1296845899
+1229474120
+1213023537
+825307441
+825307441
+825307441
+825307441
+1431655765
+1431655765
+1431655765
+1431655765
+1431655765
+1431655765
+1448498774
+1448498774
+1465341783
+1465341779
+1432246872
+1347966296
+1481721185
+1280139342
+1281054536
+1582321244
+1398101078
+1297502551
+1464621132
+1465273174
+1447778381
+1330531663
+1347506770
+1397969746
+1364217935
+1330531916
+1246317386
+1280395573
+892679477
+892679477
+892679477
+892679477
+1465341783
+1465341783
+1465341783
+1465341783
+1465341783
+1465341783
+1465341783
+1465341783
+1465341783
+1465341777
+1382112348
+1549422690
+1499946594
+-1655743390
+1599234640
+1800101729
+1449414495
+1633180516
+1632591954
+1600344412
+1600153175
+1565872730
+1498764629
+1431655764
+1431655764
+1414746963
+1414813013
+1448825662
+1044266558
+1044266558
+1044266558
+1044266558
+1482184792
+1482184792
+1482184792
+1482184792
+1482184792
+1482184792
+1482184792
+1482184792
+1465341783
+1465341784
+1705418628
+-1885303397
+-1685222287
+-1150508634
+-1855547764
+-1602902888
+2023517837
+-1635873641
+-1769364852
+-1953923434
+2007402124
+-1686793063
+1482184792
+1482184535
+1499093593
+1498962009
+1532779867
+1532974914
+1111638594
+1111638594
+1111638594
+1111638594
+1499027801
+1499027801
+1499027801
+1499027801
+1499027801
+1499027801
+1499027801
+1499027801
+1465341783
+1465341785
+-1971226458
+-1385408594
+-1787386192
+-1451184025
+-1149590369
+-1602242133
+-2086045542
+-1383359580
+-1936873842
+2121364114
+1956809871
+-1551524437
+1532713819
+1515870554
+1532779611
+1532648025
+1482053461
+1431851066
+976894522
+976894522
+976894522
+976894522
+1482184792
+1482184792
+1482184792
+1482184792
+1482184792
+1482184793
+1499093594
+1515870809
+1482118999
+1465341787
+1721604218
+1937667440
+1734635896
+1853463965
+-1972931982
+1616213621
+1500731753
+1885694829
+1684238948
+1565480039
+1566665565
+1852663160
+1600019805
+1549491035
+1532713562
+1499027799
+1414681169
+1364544824
+943208504
+943208504
+943208504
+943208504
+1482184792
+1482184792
+1482184792
+1482184792
+1482184792
+1482184793
+1499093594
+1515870552
+1465275991
+1465407574
+1415668830
+1313888612
+1082502081
+-1518378911
+1616993627
+1297437273
+1381587033
+1365007451
+1481724500
+1633377634
+1700685918
+1717985891
+1616797021
+1549556827
+1498962008
+1465341782
+1414747219
+1398296380
+1010580540
+1010580540
+1010580540
+1010580540
+1465341783
+1465341783
+1465341783
+1465341783
+1465341783
+1465407834
+1499027801
+1515804760
+1465341783
+1482185047
+1347769170
+1364414550
+1736747671
+1429752140
+1229343074
+1431063120
+1398298710
+1482250073
+1566794593
+1650549346
+1650285661
+1583308122
+1549688157
+1549491033
+1482118999
+1465341783
+1448367445
+1431850557
+1027423549
+1027423549
+1027423549
+1027423549
+1465341783
+1465341783
+1465341783
+1465341783
+1465341783
+1465407577
+1515936602
+1499027801
+1499027801
+1499027543
+1448432981
+1431655759
+977034341
+1178420536
+1147306894
+2053068894
+1616863071
+1600085856
+1616994657
+1633771872
+1566334044
+1549556828
+1566399580
+1549491034
+1482118999
+1465341784
+1465210198
+1431784764
+1010580540
+1010580540
+1010580540
+1010580540
+1482184792
+1482184792
+1482184792
+1482184792
+1482184792
+1482184536
+1499093593
+1482185307
+1515936345
+1482118740
+1364152143
+1330597710
+908143946
+1314084943
+1686345353
+1817863275
+1751146592
+1616928863
+1583177053
+1566399837
+1549556828
+1549556828
+1566399836
+1549556570
+1498962008
+1482184793
+1482053206
+1431785020
+1010580540
+1010580540
+1010580540
+1010580540
+1482184792
+1482184792
+1482184792
+1482184792
+1482184792
+1482250585
+1499027801
+1499093337
+1482184791
+1465275989
+1397903954
+1381126742
+1193683531
+1550149470
+-2037809566
+1313692769
+1599822683
+1532713819
+1532713819
+1532713820
+1549622621
+1566399837
+1583242589
+1566334043
+1498962008
+1482184793
+1482053207
+1448627773
+1027423549
+1027423549
+1027423549
+1027423549
+1499027801
+1499027801
+1499027801
+1499027801
+1499027801
+1499093851
+1498896217
+1532713562
+1515870811
+1532779613
+1600085855
+1600085858
+1395271236
+1516130628
+1214080095
+1533108056
+1482316378
+1515870811
+1532779612
+1549556828
+1566399837
+1566399838
+1583242846
+1566399579
+1515805017
+1499027802
+1498896215
+1465470781
+1027423549
+1027423549
+1027423549
+1027423549
+1499027801
+1499027801
+1499027801
+1499027801
+1499027801
+1498962007
+1431655765
+1465539678
+1566531681
+1650680932
+1650614882
+1650614889
+1546724406
+1364935463
+355684448
+1684365659
+1532713819
+1532713820
+1549622621
+1566399837
+1583242846
+1583242846
+1600085854
+1583177052
+1515805017
+1499027802
+1498896216
+1465470782
+1044266558
+1044266558
+1044266558
+1044266558
+1515870810
+1515870810
+1515870810
+1515870810
+1515870810
+1515870812
+1583440223
+1532846178
+1633903459
+1667458146
+1599954269
+1566399845
+1547447087
+1180783934
+607011411
+1481986903
+1516002396
+1549556829
+1566465630
+1583242846
+1583242846
+1583242847
+1600085855
+1583242588
+1532648026
+1515870811
+1515739224
+1482313790
+1044266558
+1044266558
+1044266558
+1044266558
+1566399837
+1566399837
+1566399837
+1566399837
+1566399837
+1566465892
+1735487847
+1684300642
+1633771873
+1616928607
+1583242846
+1583242850
+1548498476
+1012227413
+690302029
+1566661978
+1515936603
+1532713819
+1566465630
+1583242846
+1600085855
+1600085856
+1616928864
+1600085854
+1566334044
+1549491035
+1532581977
+1482314047
+1061109567
+1061109567
+1061109567
+1061109567
+1600085855
+1600085855
+1600085855
+1600085855
+1600085855
+1600086114
+1701275492
+1684300641
+1616928863
+1600020062
+1583242846
+1583242851
+1616330285
+894065490
+908469057
+1465999453
+1549491292
+1549556828
+1566465630
+1583242846
+1600151648
+1616928864
+1616928864
+1616928606
+1583242845
+1566334044
+1549359450
+1499156799
+1061109567
+1061109567
+1061109567
+1061109567
+1566399837
+1566399837
+1566399837
+1566399837
+1566399837
+1566399837
+1566399837
+1566399838
+1583308639
+1600085855
+1600085855
+1600085598
+1599818038
+893408082
+1126834479
+1197039454
+1566334301
+1566399837
+1583243103
+1600085855
+1616994657
+1633771872
+1600085855
+1600085855
+1600020062
+1566399581
+1549359705
+1499091519
+1061109567
+1061109567
+1061109567
+1061109567
+1499027801
+1499027801
+1499027801
+1499027801
+1499027801
+1499027801
+1532779612
+1549557085
+1566465887
+1600085855
+1600085855
+1600085596
+1549555011
+926500946
+1278748709
+877419615
+1599954526
+1583242846
+1600086112
+1616928864
+1616994657
+1633771615
+1583242846
+1583242846
+1583242845
+1566334045
+1532516697
+1499091262
+1044266558
+1044266558
+1044266558
+1044266558
+1515870810
+1515870810
+1515870810
+1515870810
+1515870810
+1515870810
+1515936603
+1532713821
+1566465887
+1600085855
+1600085855
+1600085853
+1566662471
+875773010
+1430597150
+641816672
+1616797535
+1600085855
+1600151648
+1616928864
+1633771873
+1633771615
+1583242846
+1583242846
+1600020062
+1566399580
+1549359449
+1482314047
+1061109567
+1061109567
+1061109567
+1061109567
+1532713819
+1532713819
+1532713819
+1532713819
+1532713819
+1532713819
+1515936603
+1532713821
+1566465887
+1600085855
+1600085855
+1600086113
+1650744642
+740962895
+1481191709
+608196704
+1633640544
+1616928864
+1616994657
+1633771873
+1633771873
+1633771615
+1600085855
+1600085855
+1616863071
+1583242589
+1549359450
+1499156800
+1077952576
+1077952576
+1077952576
+1077952576
+1532713819
+1532713819
+1532713819
+1532713819
+1532713819
+1532713819
+1549556828
+1549557085
+1566465887
+1600085855
+1600085855
+1600086372
+1667255860
+623193925
+1380134435
+810048097
+1650483553
+1633771873
+1633771873
+1633771873
+1650680675
+1667457634
+1650680675
+1667457890
+1650549089
+1616928607
+1582979930
+1515934528
+1077952576
+1077952576
+1077952576
+1077952576
+1532713819
+1532713819
+1532713819
+1532713819
+1532713819
+1532713819
+1549622621
+1566399838
+1583308639
+1600085855
+1600085855
+1600086113
+1599552036
+606481724
+1111107885
+1079073375
+1633772130
+1650614882
+1650614882
+1650614883
+1684366693
+1701143909
+1701209702
+1717986917
+1684235107
+1650614625
+1599822940
+1549620290
+1111638594
+1111638594
+1111638594
+1111638594
+1499027801
+1499027801
+1499027801
+1499027801
+1499028060
+1549490783
+1583112032
+1566532447
+1566334302
+1583243104
+1616797537
+1633771616
+1565337108
+539439926
+824845364
+1247041633
+1650614883
+1667589219
+1650549088
+1650746469
+1701209958
+1717986918
+1734829927
+1734829925
+1701209185
+1650615139
+1633573979
+1532777535
+1061109567
+1061109567
+1061109567
+1061109567
+1515870810
+1515870810
+1515870810
+1515870810
+1515805275
+1515805534
+1566269536
+1532846944
+1583045726
+1566334558
+1600020578
+1667326306
+1565006351
+589507114
+639772218
+1364679011
+1650483553
+1684366435
+1667326048
+1650746725
+1718052967
+1717921382
+1734830184
+1734829926
+1734828897
+1633838178
+1650613597
+1583175230
+1044266558
+1044266558
+1044266558
+1044266558
+1600085855
+1600085855
+1600085855
+1600085855
+1599953753
+1448631899
+1482120541
+1498896990
+1616797280
+1583111261
+1583243362
+1667326047
+1464015640
+706417954
+623127871
+1398628964
+1633575264
+1684432229
+1684235108
+1717987431
+1717987176
+1717987176
+1751738987
+1768515687
+1734763618
+1616995169
+1634099041
+1667192636
+1010580540
+1010580540
+1010580540
+1010580540
+1246382666
+1246382666
+1246382666
+1246382666
+1246317905
+1347177039
+1431984477
+1667522916
+1667326050
+1599822942
+1549425244
+1566267735
+1413947418
+740368672
+555690562
+1415800669
+1549887075
+1734895206
+1701144167
+1751607141
+1684301158
+1751738729
+1768581996
+1802070119
+1717986660
+1650549086
+1583767908
+1717655098
+976894522
+976894522
+976894522
+976894522
+892679477
+892679477
+892679477
+892679477
+892749143
+1480994857
+657140798
+1550543985
+1869442412
+1735094899
+1869179243
+1835887981
+1683102726
+658260548
+992357194
+1499488854
+1499686753
+1650679650
+1667458405
+1701078115
+1667457891
+1718052709
+1718118505
+1768383846
+1734698083
+1650614365
+1566990690
+1667126587
+993737531
+993737531
+993737531
+993737531
+555819297
+555819297
+555819297
+555819297
+556153166
+1396977705
+656942907
+1516857450
+1768516454
+1651344271
+-1836216687
+-1785160800
+-1668395993
+1486135722
+1766409316
+1903061861
+1701472092
+1583702369
+1633969765
+1667458147
+1667326306
+1667457634
+1667523939
+1684300902
+1717854561
+1667392094
+1583898718
+1583044160
+1077952576
+1077952576
+1077952576
+1077952576
+976894522
+976894522
+976894522
+976894522
+976960572
+926036270
+690366780
+1381718631
+1768450404
+1634633623
+-1701472871
+-1616599133
+-1650825659
+2076232119
+1986751104
+-1751609462
+-2088602268
+1803320948
+1903456875
+1667261546
+1785096298
+1751343460
+1684170079
+1634035301
+1667326050
+1717985884
+1567056222
+1566135617
+1094795585
+1094795585
+1094795585
+1094795585
+1263225675
+1263225675
+1263225675
+1263225675
+1263621202
+1347905133
+1750621285
+1802399857
+1818782054
+1667856509
+2037345905
+2004647547
+2139583084
+-1682132854
+2005565808
+-1935897713
+-1886553755
+1887932039
+-2071691922
+1599758213
+-1887074682
+2087609963
+1784899678
+1600809570
+1566269287
+1835753814
+1483303789
+1784764222
+1044266558
+1044266558
+1044266558
+1044266558
+1195853639
+1195853639
+1195853639
+1195853639
+1196184919
+1196120417
+1513897802
+1314153821
+1330071110
+1128417616
+1330530633
+1347900503
+1685090441
+-1449755292
+1838908245
+1736338542
+2038657885
+1686012283
+2071556967
+1549295231
+-1887073651
+-2123338384
+1768319583
+1600744284
+1431723368
+1902796115
+1568048268
+-2021955768
+1212696648
+1212696648
+1212696648
+1212696648
+1212696648
+1212696648
+1212696648
+1212696648
+1213093978
+1582650196
+1348035704
+1735482460
+1600546658
+1532583004
+1379874358
+1028217953
+1600417673
+2051164530
+-1348181942
+1449482073
+1515799107
+1583441770
+1549952869
+1616864106
+1802400377
+1986949233
+1803903842
+1617259355
+1448632168
+1835556698
+1685818255
+-1903924660
+1280068684
+1280068684
+1280068684
+1280068684
+1364283729
+1364283729
+1364283729
+1364283729
+1364547925
+1279740742
+1111509601
+1331384132
+1061241665
+1027556938
+1178483003
+1112232793
+1583247215
+1313435277
+-1230609328
+1566198356
+1751994698
+1635287391
+1331192683
+1835756133
+1684566649
+1970172015
+2056940904
+1701342564
+1634101611
+1785424743
+1786083960
+2121883973
+1162167621
+1162167621
+1162167621
+1162167621
+1010580540
+1010580540
+1010580540
+1010580540
+1010777910
+741094967
+892550230
+1162954036
+758067503
+774977592
+875508021
+977091907
+1263758179
+1061912746
+-1146131379
+1565541971
+1583374175
+1889052250
+1011240793
+1549556309
+1415013486
+1801609566
+1804228173
+1246713428
+1499620196
+1701209960
+1717722461
+1667189298
+842150450
+842150450
+842150450
+842150450
+943208504
+943208504
+943208504
+943208504
+943406909
+943275574
+791360336
+1028212027
+824977959
+606481455
+774779189
+943273267
+960717924
+1045334448
+-1129223625
+1262171191
+1011118732
+-1833910940
+960117308
+1095190595
+1094865243
+1464616772
+1400389941
+909721917
+1095124552
+1229539662
+1296382524
+1111371294
+505290270
+505290270
+505290270
+505290270
+336860180
+336860180
+336860180
+336860180
+336993830
+656746276
+538649153
+707998764
+589110039
+336927001
+387323416
+437917980
+556223064
+1078754730
+-1146000348
+958602779
+489323435
+-1380409500
+1178810678
+994265408
+993872207
+1194799144
+912140057
+437852951
+539042339
+589505062
+656612126
+555554323
+320017171
+320017171
+320017171
+320017171
+320017171
+320017171
+320017171
+320017171
+320084771
+606084376
+336599353
+488645921
+454497814
+353703964
+505157914
+471604765
+387065663
+1061709989
+-1078953954
+840635923
+371285110
+-2087231434
+1145191996
+1061373249
+1095060558
+1110452516
+895757082
+471143701
+336794902
+370414356
+336925718
+387388951
+387389207
+387389207
+387389207
+387389207
+421075225
+421075225
+421075225
+421075225
+420943900
+471472151
+387128893
+471474208
+471472925
+488447518
+437654806
+387455007
+504633390
+1078218656
+-1079475169
+857610522
+691095876
+1433746218
+741817407
+1094663743
+1078283085
+1144534579
+845293848
+471210010
+454827553
+572596250
+387456027
+471735059
+320017171
+320017171
+320017171
+320017171
+454761243
+454761243
+454761243
+454761243
+454628885
+370743573
+353640250
+454104090
+353572890
+420746521
+387257882
+454629401
+471602978
+993865366
+-1197700579
+958404379
+522204476
+1432625984
+724514107
+993605688
+943407688
+1178748490
+980564264
+808399938
+1162168395
+1296911945
+1229802827
+1263813941
+892679477
+892679477
+892679477
+892679477
+505290270
+505290270
+505290270
+505290270
+505158167
+421404443
+471737661
+656153628
+538645007
+320543253
+353702416
+371336993
+808531504
+758196347
+-1298425796
+1381126995
+1364154197
+1821007974
+1870036354
+-2088334706
+-1869639794
+-1903259761
+-1903194745
+-1936156786
+-1886153579
+-1768384106
+-1768057707
+-1903393716
+1280068684
+1280068684
+1280068684
+1280068684
+623191333
+623191333
+623191333
+623191333
+623257127
+690761520
+842414156
+1178747981
+1347903584
+1549426274
+1786348417
+-2121823864
+-1987740837
+926372222
+-1365006726
+1971424397
+-1920365427
+-1869246578
+-1937076592
+-1886549110
+-1953591923
+-1920037235
+-1852402293
+-1986816624
+-1903326327
+-2004252022
+-2004385912
+-2021885115
+1162167621
+1162167621
+1162167621
+1162167621
+-1633771874
+-1633771874
+-1633771874
+-1633771874
+-1633837410
+-1650613087
+-1701607793
+-1869246065
+-1919969898
+-1869771894
+-1919180654
+-2037937525
+-1903194505
+1685694103
+-1953982834
+2123405721
+-1751934826
+-1869443953
+-1903524729
+-1936946557
+2088270202
+2071690104
+2055306857
+1600813441
+1667193687
+1431590485
+1516531583
+1513440056
+943208504
+943208504
+943208504
+943208504
+-1970632054
+-1970632054
+-1970632054
+-1970632054
+-1970763127
+-2071623035
+-2071627902
+-1986621299
+-1886682492
+-1953526391
+-1902537078
+-2054582904
+-2037869937
+-1918515056
+1128685421
+1735620985
+2088665981
+1937142144
+-1802998169
+1717458770
+1279937872
+1381126489
+1786672986
+1196848522
+1566266963
+1364284247
+1583902846
+1259610142
+505290270
+505290270
+505290270
+505290270
+-1920103027
+-1920103027
+-1920103027
+-1920103027
+-1920168309
+-1987474037
+-1987478140
+-2037545596
+-1903524471
+-1920037233
+-1886482804
+-2038928533
+1818913892
+1583706426
+488321093
+1314610269
+1735883363
+1213095528
+-1904255143
+1549030486
+1482514017
+1667589990
+1853718116
+1348040322
+2071228526
+1836020348
+-2105840254
+1985563422
+505290270
+505290270
+505290270
+505290270
+-1970632054
+-1970632054
+-1970632054
+-1970632054
+-1970896258
+2071624314
+2071884919
+1869703785
+1903918968
+1598638158
+1213164421
+-2056630201
+1213026895
+1313751081
+522069297
+1129994083
+1887207008
+977033058
+-1903857293
+2105442945
+-2139390850
+-2121955191
+1786941568
+1818982012
+2088203636
+1970830209
+-2054849387
+-1583444663
+1229539657
+1229539657
+1229539657
+1229539657
+1566399837
+1566399837
+1566399837
+1566399837
+1566200399
+1397902929
+1516462185
+1600418413
+2055636077
+1092293942
+1264089748
+-2006493096
+1448566109
+1633301786
+505356583
+1029663616
+-2106098061
+1464883567
+-2071758987
+2004186226
+1886285423
+1937407615
+-1986155618
+-1937472640
+2105112439
+2021359484
+2123075229
+-1701210531
+1566399837
+1566399837
+1566399837
+1566399837
+1751672936
+1751672936
+1751672936
+1751672936
+1751735660
+2055044226
+-2105707151
+1650816644
+-1752137630
+1108939311
+1230599044
+2019911538
+1953524838
+1835947045
+286464802
+878872470
+-2088990581
+2087874932
+2021160566
+2004318586
+2105244284
+-2121559665
+-1902863731
+2121889910
+1987474546
+1903392634
+-1969779314
+2138667598
+1313754702
+1313754702
+1313754702
+1313754702
+1667457891
+1667457891
+1667457891
+1667457891
+1667523934
+1566400359
+1937800309
+1870105233
+2036031089
+1835624546
+1398895483
+1953263475
+2004382575
+1920165967
+403707936
+826698114
+-1937404783
+-1920631434
+1937078135
+1987475580
+2105376387
+-1970170481
+-2004516227
+1987277168
+1903325552
+1886549884
+-1701476992
+1885955910
+1179010630
+1179010630
+1179010630
+1179010630
+1936946035
+1936946035
+1936946035
+1936946035
+1936879726
+1835953773
+1852928889
+-2070568041
+1768259232
+-1381522811
+1836218746
+2004054385
+1920366455
+1987276645
+756618268
+946443167
+-1668314231
+-1987741069
+1903457909
+1953789814
+1953856903
+-1903195518
+2105178231
+1970500210
+1937011831
+2088929164
+-1954187404
+1802003779
+1128481603
+1128481603
+1128481603
+1128481603
+1903260017
+1903260017
+1903260017
+1903260017
+1903326068
+1987673212
+2054716289
+-1953262717
+1971099312
+-1111971436
+-2021425286
+1987343476
+1953855096
+1987540590
+1144535368
+1703584928
+-1836745093
+2054713710
+1886680436
+1920103797
+1987806607
+-1870103949
+1937209206
+1987409266
+1835559281
+2106035336
+-2122814099
+1751737921
+1094795585
+1094795585
+1094795585
+1094795585
+1835887981
+1835887981
+1835887981
+1835887981
+1836019824
+1920234867
+1903194995
+1936551294
+-1868981347
+-1617128049
+-1987674247
+1970566000
+1869574772
+1970565994
+1684172412
+-2003791739
+2054385776
+1903193196
+1869902962
+1869574778
+-2104849269
+-2038731158
+1785622384
+1903326068
+1902997111
+-2054122613
+2037541483
+1768777533
+1027423549
+1027423549
+1027423549
+1027423549
+2122219134
+2122219134
+2122219134
+2122219134
+2122152824
+2004318067
+1886615419
+2105443220
+-1482254195
+-1936683129
+-2122549130
+1953722735
+1869509238
+2004119662
+1920566925
+-1903656844
+1852797299
+1953656428
+1819242864
+1903458692
+-1920039299
+1970368625
+1886483317
+2004515712
+-2088533624
+-1818584432
+-2072020615
+2021421634
+1111638594
+1111638594
+1111638594
+1111638594
+-2038004090
+-2038004090
+-2038004090
+-2038004090
+-2038136449
+2122218615
+1903063159
+-2087476569
+-1550349953
+2122481784
+1970500469
+1987342960
+1886614903
+2004185454
+1954712204
+-2021491338
+1903326583
+2004119405
+1852863607
+2089061780
+-1802467458
+2055046540
+-1886350699
+-1734632031
+-1549557340
+-1448301914
+-1532386655
+-1599826336
+1616928864
+1616928864
+1616928864
+1616928864
+2105376125
+2105376125
+2105376125
+2105376125
+2105376123
+2071821947
+1987079797
+-2019842141
+-1769636747
+1886153838
+1903326070
+2021094771
+1920168562
+1886416498
+-2120904312
+-2139392136
+2021161595
+2088533118
+-2105112179
+-1818515800
+-1516068191
+-1599886929
+-1296779591
+-1128283708
+-959985721
+-943208763
+-976501308
+-1010322052
+2088533116
+2088533116
+2088533116
+2088533116
+2071690107
+2071690107
+2071690107
+2071690107
+2071491955
+1920169078
+2004187268
+-1801610091
+-1937671305
+1902997105
+1920037492
+1987474287
+1835756396
+1853061509
+-1885564538
+2122154624
+-2138601334
+-1919773030
+-1582979159
+-1397573190
+-1162100540
+-1010646334
+-1027488569
+-926167858
+-842282295
+-909456438
+-892417590
+-926040451
+2105376125
+2105376125
+2105376125
+2105376125
+2021161080
+2021161080
+2021161080
+2021161080
+2021028464
+1903194226
+1970831762
+-1667592057
+-2139326089
+1953526129
+1920037492
+1987540596
+1936814194
+2038598805
+-1684564335
+-1936746077
+-1499488608
+-1481789516
+-1178747201
+-1060977211
+-976761650
+-825373495
+-943208246
+-858927152
+-808729148
+-943010614
+-892483382
+-892419206
+2054847098
+2054847098
+2054847098
+2054847098
+1970632053
+1970632053
+1970632053
+1970632053
+1970566262
+2004382833
+1954450071
+-1701870725
+1987409269
+1970632051
+1920169336
+2071888002
+-2071558518
+-1835161427
+-1415009879
+-1498761797
+-1128679494
+-1043937595
+-976828473
+-926365239
+-943208505
+-943208505
+-976894522
+-926299444
+-876233285
+-1043937337
+-943077176
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+1869573999
+1869573999
+1869573999
+1869573999
+1869705844
+1970697336
+-2138271340
+-1870234248
+1970698362
+2105573762
+-2105243508
+-1869375331
+-1599887960
+-1346846524
+-994001219
+-1195785786
+-960249918
+-909193523
+-875902262
+-909522488
+-943274298
+-960051514
+-976894522
+-943142708
+-859323968
+-993474104
+-909522744
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+2004318071
+2004318071
+2004318071
+2004318071
+2004383864
+2038136971
+-1784833645
+-1937407101
+-2105243508
+-1852467045
+-1633573720
+-1414614603
+-1229473606
+-1060647471
+-775108412
+-1111636792
+-960447298
+-993408310
+-875836727
+-926431546
+-993737532
+-993737532
+-993737531
+-960051252
+-808465719
+-858795827
+-892745528
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+2071690107
+2071690107
+2071690107
+2071690107
+2071755901
+-2121821793
+-1499096684
+-1819044197
+-1667391067
+-1431391819
+-1195787331
+-1077886526
+-1027555391
+-976564013
+-774976826
+-1111571001
+-994133574
+-1060714553
+-926299961
+-976960574
+-1010580541
+-1010580541
+-1010580284
+-993671735
+-858862388
+-842018867
+-892745528
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+2139062143
+2139062143
+2139062143
+2139062143
+2139193990
+-1919376210
+-1364812642
+-1515540300
+-1229539141
+-1111440957
+-993737531
+-976894524
+-993869631
+-993473329
+-825505852
+-1111637052
+-1044728651
+-1161772349
+-993606204
+-1010712128
+-1044266559
+-1044266558
+-1027357500
+-993803324
+-976828730
+-960051513
+-926299960
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1751672937
+-1751672937
+-1751672937
+-1751672937
+-1751541093
+-1599557192
+-1196381519
+-1145060667
+-960117307
+-976894267
+-976894523
+-976894524
+-1010646591
+-1010382647
+-926563648
+-1145191226
+-1027951693
+-1178680894
+-1010514749
+-1027489344
+-1061109568
+-1061109567
+-1044134717
+-1010580542
+-1027291707
+-976960572
+-943077176
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1482184793
+-1482184793
+-1482184793
+-1482184793
+-1482053468
+-1566134342
+-1078084669
+-875836468
+-875902521
+-960183357
+-1010514748
+-976894266
+-993935168
+-1027225913
+-943406656
+-1145191481
+-960382279
+-1077557306
+-976960317
+-1010646335
+-1061175361
+-1077952576
+-1044134973
+-1010580797
+-976696630
+-909588536
+-926299960
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1482184793
+-1482184793
+-1482184793
+-1482184793
+-1482053468
+-1566134342
+-1078084669
+-875836468
+-875902521
+-960183357
+-1010514748
+-976894266
+-993935168
+-1027225913
+-943406656
+-1145191481
+-960382279
+-1077557306
+-976960317
+-1010646335
+-1061175361
+-1077952576
+-1044134973
+-1010580797
+-976696630
+-909588536
+-926299960
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1482184793
+-1482184793
+-1482184793
+-1482184793
+-1482053468
+-1566134342
+-1078084669
+-875836468
+-875902521
+-960183357
+-1010514748
+-976894266
+-993935168
+-1027225913
+-943406656
+-1145191481
+-960382279
+-1077557306
+-976960317
+-1010646335
+-1061175361
+-1077952576
+-1044134973
+-1010580797
+-976696630
+-909588536
+-926299960
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1482184793
+-1482184793
+-1482184793
+-1482184793
+-1482053468
+-1566134342
+-1078084669
+-875836468
+-875902521
+-960183357
+-1010514748
+-976894266
+-993935168
+-1027225913
+-943406656
+-1145191481
+-960382279
+-1077557306
+-976960317
+-1010646335
+-1061175361
+-1077952576
+-1044134973
+-1010580797
+-976696630
+-909588536
+-926299960
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1482184793
+-1482184793
+-1482184793
+-1482184793
+-1482053468
+-1566134342
+-1078084669
+-875836468
+-875902521
+-960183357
+-1010514748
+-976894266
+-993935168
+-1027225913
+-943406656
+-1145191481
+-960382279
+-1077557306
+-976960317
+-1010646335
+-1061175361
+-1077952576
+-1044134973
+-1010580797
+-976696630
+-909588536
+-926299960
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1482184793
+-1482184793
+-1482184793
+-1482184793
+-1482053468
+-1566134342
+-1078084669
+-875836468
+-875902521
+-960183357
+-1010514748
+-976894266
+-993935168
+-1027225913
+-943406656
+-1145191481
+-960382279
+-1077557306
+-976960317
+-1010646335
+-1061175361
+-1077952576
+-1044134973
+-1010580797
+-976696630
+-909588536
+-926299960
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1482184793
+-1482184793
+-1482184793
+-1482184793
+-1482053468
+-1566134342
+-1078084669
+-875836468
+-875902521
+-960183357
+-1010514748
+-976894266
+-993935168
+-1027225913
+-943406656
+-1145191481
+-960382279
+-1077557306
+-976960317
+-1010646335
+-1061175361
+-1077952576
+-1044134973
+-1010580797
+-976696630
+-909588536
+-926299960
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1482184793
+-1482184793
+-1482184793
+-1482184793
+-1482053468
+-1566134342
+-1078084669
+-875836468
+-875902521
+-960183357
+-1010514748
+-976894266
+-993935168
+-1027225913
+-943406656
+-1145191481
+-960382279
+-1077557306
+-976960317
+-1010646335
+-1061175361
+-1077952576
+-1044134973
+-1010580797
+-976696630
+-909588536
+-926299960
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1482184793
+-1482184793
+-1482184793
+-1482184793
+-1482053468
+-1566134342
+-1078084669
+-875836468
+-875902521
+-960183357
+-1010514748
+-976894266
+-993935168
+-1027225913
+-943406656
+-1145191481
+-960382279
+-1077557306
+-976960317
+-1010646335
+-1061175361
+-1077952576
+-1044134973
+-1010580797
+-976696630
+-909588536
+-926299960
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1482184793
+-1482184793
+-1482184793
+-1482184793
+-1482053468
+-1566134342
+-1078084669
+-875836468
+-875902521
+-960183357
+-1010514748
+-976894266
+-993935168
+-1027225913
+-943406656
+-1145191481
+-960382279
+-1077557306
+-976960317
+-1010646335
+-1061175361
+-1077952576
+-1044134973
+-1010580797
+-976696630
+-909588536
+-926299960
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1482184793
+-1482184793
+-1482184793
+-1482184793
+-1482053468
+-1566134342
+-1078084669
+-875836468
+-875902521
+-960183357
+-1010514748
+-976894266
+-993935168
+-1027225913
+-943406656
+-1145191481
+-960382279
+-1077557306
+-976960317
+-1010646335
+-1061175361
+-1077952576
+-1044134973
+-1010580797
+-976696630
+-909588536
+-926299960
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1482184793
+-1482184793
+-1482184793
+-1482184793
+-1482053468
+-1566134342
+-1078084669
+-875836468
+-875902521
+-960183357
+-1010514748
+-976894266
+-993935168
+-1027225913
+-943406656
+-1145191481
+-960382279
+-1077557306
+-976960317
+-1010646335
+-1061175361
+-1077952576
+-1044134973
+-1010580797
+-976696630
+-909588536
+-926299960
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1482184793
+-1482184793
+-1482184793
+-1482184793
+-1482053468
+-1566134342
+-1078084669
+-875836468
+-875902521
+-960183357
+-1010514748
+-976894266
+-993935168
+-1027225913
+-943406656
+-1145191481
+-960382279
+-1077557306
+-976960317
+-1010646335
+-1061175361
+-1077952576
+-1044134973
+-1010580797
+-976696630
+-909588536
+-926299960
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1482184793
+-1482184793
+-1482184793
+-1482184793
+-1482053468
+-1566134342
+-1078084669
+-875836468
+-875902521
+-960183357
+-1010514748
+-976894266
+-993935168
+-1027225913
+-943406656
+-1145191481
+-960382279
+-1077557306
+-976960317
+-1010646335
+-1061175361
+-1077952576
+-1044134973
+-1010580797
+-976696630
+-909588536
+-926299960
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1482184793
+-1482184793
+-1482184793
+-1482184793
+-1482053468
+-1566134342
+-1078084669
+-875836468
+-875902521
+-960183357
+-1010514748
+-976894266
+-993935168
+-1027225913
+-943406656
+-1145191481
+-960382279
+-1077557306
+-976960317
+-1010646335
+-1061175361
+-1077952576
+-1044134973
+-1010580797
+-976696630
+-909588536
+-926299960
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1482184793
+-1482184793
+-1482184793
+-1482184793
+-1482053468
+-1566134342
+-1078084669
+-875836468
+-875902521
+-960183357
+-1010514748
+-976894266
+-993935168
+-1027225913
+-943406656
+-1145191481
+-960382279
+-1077557306
+-976960317
+-1010646335
+-1061175361
+-1077952576
+-1044134973
+-1010580797
+-976696630
+-909588536
+-926299960
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1482184793
+-1482184793
+-1482184793
+-1482184793
+-1482053468
+-1566134342
+-1078084669
+-875836468
+-875902521
+-960183357
+-1010514748
+-976894266
+-993935168
+-1027225913
+-943406656
+-1145191481
+-960382279
+-1077557306
+-976960317
+-1010646335
+-1061175361
+-1077952576
+-1044134973
+-1010580797
+-976696630
+-909588536
+-926299960
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-2004318072
+-2004318072
+-2012541882
+1795620730
+318794160
+-1488371695
+1863053564
+-1070858208
+11668988
+1410230210
+293725365
+-1115694074
+1465742650
+-1810615036
+67372036
+67372036
+-2004318072
+-2004318072
+-2012541882
+1795620730
+318794160
+-1488371695
+1863053564
+-1070858208
+11668988
+1410230210
+293725365
+-1115694074
+1465742650
+-1810615036
+67372036
+67372036
+-2004318072
+-2004318072
+-2012541882
+1795620730
+318794160
+-1488371695
+1863053564
+-1070858208
+11668988
+1410230210
+293725365
+-1115694074
+1465742650
+-1810615036
+67372036
+67372036
+-2004318072
+-2004318072
+-2012541882
+1795620730
+318794160
+-1488371695
+1863053564
+-1070858208
+11668988
+1410230210
+293725365
+-1115694074
+1465742650
+-1810615036
+67372036
+67372036
+-2004318072
+-2004318072
+-2012541882
+1795620730
+318794160
+-1488371695
+1863053564
+-1070858208
+11668988
+1410230210
+293725365
+-1115694074
+1465742650
+-1810615036
+67372036
+67372036
+-2004318072
+-2004318072
+-2012541882
+1795620730
+318794160
+-1488371695
+1863053564
+-1070858208
+11668988
+1410230210
+293725365
+-1115694074
+1465742650
+-1810615036
+67372036
+67372036
+-2004318072
+-2004318072
+-2012541882
+1795620730
+318794160
+-1488371695
+1863053564
+-1070858208
+11668988
+1410230210
+293725365
+-1115694074
+1465742650
+-1810615036
+67372036
+67372036
+-2004318072
+-2004318072
+-2012541882
+1795620730
+318794160
+-1488371695
+1863053564
+-1070858208
+11668988
+1410230210
+293725365
+-1115694074
+1465742650
+-1810615036
+67372036
+67372036
+-2004318072
+-2004318072
+-2012541882
+1795620730
+318794160
+-1488371695
+1863053564
+-1070858208
+11668988
+1410230210
+293725365
+-1115694074
+1465742650
+-1810615036
+67372036
+67372036
+1061109567
+1061109567
+1058067648
+-848375510
+-311739113
+-1401952840
+872432650
+1818045202
+-2008964585
+1066607525
+1144596224
+287114710
+-737780114
+326555912
+134744072
+134744072
+623191333
+623191333
+622920139
+1376002693
+-1654015917
+-713227752
+-1104084778
+-872377847
+26784305
+-1335358413
+-872071398
+3932340
+-754495516
+340786654
+-555819298
+-555819298
+-1482184793
+-1482184793
+-1487470080
+-153151359
+1491528586
+-367999253
+-2106914959
+1863709059
+475229977
+1973361285
+203130537
+349789189
+-1433002694
+5669437
+1027423549
+1027423549
+1768515945
+1768515945
+1769430641
+1736666723
+1787125097
+1953067366
+1836279131
+-2023661204
+1835821165
+2104255337
+1751479657
+1801547877
+1719032184
+1852534911
+2139062143
+2139062143
+1886417008
+1886417008
+1885963872
+1700946541
+1901887328
+1852471412
+1851946349
+1786016097
+1785617258
+2086700134
+1652120175
+1634890090
+1902473060
+1734569067
+1802201963
+1802201963
+2021161080
+2021161080
+2019259747
+1801813605
+1735353453
+1634885228
+1869112940
+1818648702
+1802008180
+1634626669
+-2124843666
+1935045237
+1617980004
+1902799477
+1970632053
+1970632053
+1802201963
+1802201963
+1802330990
+1651269487
+1902865246
+2136570219
+1718576747
+1785621610
+1835822698
+1852531836
+1852861548
+1585212010
+1768842616
+1768512132
+-2071690108
+-2071690108
+1734829927
+1734829927
+1735421294
+1751935851
+1802202477
+1818849131
+1752001387
+1785817963
+1835887721
+1819043692
+1802529389
+1836214375
+1835887724
+1751805036
+1819044972
+1819044972
+1802201963
+1802201963
+1802201963
+1802201963
+1802201964
+1819110766
+1869705842
+1920102768
+1903260017
+1903260017
+1920036975
+1852665195
+1819110764
+1785359470
+1852730990
+1852730990
+1802201963
+1802201963
+1802201963
+1802201963
+1802201964
+1819110767
+1920234870
+1987409012
+1920103026
+1920103026
+1886416750
+1852664940
+1819110764
+1785359470
+1852730990
+1852730990
+1802201963
+1802201963
+1802201963
+1802201963
+1802201964
+1819110766
+1869705843
+1936879984
+1852730990
+1852730991
+1869573998
+1852665196
+1819110764
+1785359470
+1852730990
+1852730990
+1802201963
+1802201963
+1802201963
+1802201963
+1802201964
+1819110765
+1835954031
+1869573740
+1802136170
+1785358955
+1835953773
+1835887724
+1819110764
+1785359470
+1852730990
+1852730990
+1802201963
+1802201963
+1802201963
+1802201963
+1802201964
+1819110766
+1835954032
+1886350957
+1802136170
+1785358955
+1802267756
+1819044972
+1819110764
+1785359470
+1852730990
+1852730990
+1802201963
+1802201963
+1802201963
+1802201963
+1802201964
+1819110766
+1852862833
+1903259758
+1852665197
+1835887981
+1819044972
+1819044972
+1819110764
+1785359470
+1852730990
+1852730990
+1802201963
+1802201963
+1802201963
+1802201963
+1802201964
+1819044972
+1835954033
+1920036718
+1835887980
+1835822188
+1785359211
+1802202219
+1819045228
+1802202222
+1852730990
+1852730990
+1819044972
+1819044972
+1819044972
+1819044972
+1802136170
+1785424747
+1819111281
+1920036461
+1802267755
+1802201962
+1768516202
+1785359211
+1802267756
+1802202221
+1835887981
+1835887981
+1819044972
+1819044972
+1819044972
+1819044972
+1802136170
+1785358954
+1802334323
+1953590892
+1802333291
+1802135912
+1751672937
+1785358954
+1802201963
+1802201963
+1802201963
+1802201963
+1835887981
+1835887981
+1835887981
+1835887980
+1802136170
+1785358954
+1785557621
+1987210860
+1819044714
+1768450152
+1751672937
+1768516202
+1785358954
+1785358954
+1785358954
+1785358954
+1869573999
+1869573999
+1869573999
+1869573998
+1835756395
+1802201962
+1802466424
+2020896621
+1802135912
+1751606886
+1734829928
+1751673193
+1768581738
+1785358954
+1785358954
+1785358954
+1936946035
+1936946035
+1936946035
+1936946034
+1903128431
+1869573998
+1852995193
+2004119661
+1818913385
+1768515688
+1751672935
+1751672936
+1785424747
+1802201963
+1802201963
+1802201963
+2021161080
+2021161080
+2021161080
+2021161079
+1970500467
+1936946034
+1920103283
+1903259759
+1852665198
+1852731246
+1835821931
+1802136171
+1819110765
+1835887981
+1835887981
+1835887981
+2122219134
+2122219134
+2122219134
+2122219133
+2071492728
+2021161080
+1970235749
+1701474418
+1953723252
+1987541111
+1953722994
+1903259761
+1886417008
+1886417008
+1886417008
+1886417008
+-2139062144
+-2139062144
+-2139062144
+-2139062145
+2122021755
+2071690108
+1986814296
+1482846069
+2037938298
+2071756156
+2054846585
+2021161079
+1987409269
+1970632053
+1970632053
+1970632053
+-2139062144
+-2139062144
+-2139062144
+-2139062145
+2122087548
+2088533117
+2020499541
+1381920376
+2105244283
+2088533373
+2105310332
+2088467323
+2054847098
+2054781305
+2038004089
+2038004089
+-2139062144
+-2139062144
+-2139062144
+-2139062145
+2122087548
+2088533118
+2054317657
+1398566265
+2105244282
+2054847098
+2054847355
+2071690107
+2071690364
+2088533116
+2088533116
+2088533116
+2139062143
+2139062143
+2139062143
+2139062142
+2105310332
+2088533118
+2088201311
+1482649208
+2071426935
+2004318071
+2021226873
+2038004089
+2038070139
+2071690107
+2071690107
+2071690107
+2071690107
+2071690107
+2071690107
+2071690106
+2054847098
+2054847100
+2071556452
+1549889141
+2021029494
+1987475062
+1987540855
+2004318071
+2021227130
+2054847098
+2054847098
+2054847098
+1987475062
+1987475062
+1987475062
+1987475062
+1987540855
+2004318072
+2038002535
+1617194612
+1970632310
+1987475062
+2004318328
+2021161080
+2038004346
+2054847098
+2054847098
+2054847098
+1970632053
+1970632053
+1970632053
+1970632053
+1987540855
+2004318071
+2004382828
+1751871861
+1987475319
+2004318071
+2021226873
+2038004089
+2038069882
+2054847098
+2054847098
+2054847098
+2038004089
+2038004089
+2038004089
+2038004089
+2021161080
+2021161080
+2021226356
+1920235383
+2038069882
+2054847098
+2054847098
+2054847098
+2071690107
+2071690107
+2071690107
+2071690107
+2071690107
+2071690107
+2071690107
+2071690107
+2071690107
+2071690107
+2038004346
+2071755642
+2054912891
+2071690107
+2054847098
+2054847098
+2071690364
+2088533116
+2088533116
+2088533116
+2071690107
+2071690107
+2071690107
+2071690107
+2071690107
+2071690107
+2071624572
+2122218620
+2071624314
+2054847098
+2054847098
+2054847099
+2088598909
+2105376125
+2105376125
+2105376125
+2088533116
+2088533116
+2088533116
+2088533116
+2071690107
+2071690107
+2088533373
+2105376125
+2071690107
+2071690107
+2088533373
+2105376125
+2122219134
+2122219134
+2122219134
+2122219134
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2105441918
+2122219134
+2105310332
+2088533117
+2122350720
+-2139062144
+2139062143
+2139062143
+2139062143
+2139062143
+2105376125
+2105376125
+2105376125
+2105376125
+2088598909
+2105376125
+2122284927
+2139062143
+2139062143
+2139062143
+-2122153342
+-2105376126
+-2122219135
+-2122219135
+-2122219135
+-2122219135
+2122219134
+2122219134
+2122219134
+2122219134
+2122219391
+2139062143
+-2139062144
+-2139062144
+-2122219135
+-2122219134
+-2088467324
+-2071690108
+-2088533117
+-2088533117
+-2088533117
+-2088533117
+2139062143
+2139062143
+2139062143
+2139062143
+-2139061887
+-2122219135
+-2105375869
+-2088533117
+-2088532860
+-2071690107
+-2054781049
+-2021161082
+-2054912892
+-2071690108
+-2071690108
+-2071690108
+2139062143
+2139062143
+2139062143
+2139062143
+-2138996094
+-2105376126
+-2088467324
+-2071690108
+-2071624315
+-2054847099
+-2037938297
+-2021161081
+-2054847099
+-2054847099
+-2054847099
+-2054847099
+-2139062144
+-2139062144
+-2139062144
+-2139062144
+-2105310076
+-2071690108
+-2071624315
+-2054847099
+-2054846842
+-2038004090
+-2038003833
+-2021161082
+-2038069883
+-2054847099
+-2054847099
+-2054847099
+-2139062144
+-2139062144
+-2139062144
+-2139062144
+-2105310076
+-2071690108
+-2071624315
+-2054847099
+-2054846842
+-2038004090
+-2038003833
+-2021161082
+-2038069883
+-2054847099
+-2054847099
+-2054847099
+-2139062144
+-2139062144
+-2139062144
+-2139062144
+-2105310076
+-2071690108
+-2071624315
+-2054847099
+-2054846842
+-2038004090
+-2038003833
+-2021161082
+-2038069883
+-2054847099
+-2054847099
+-2054847099
+-2139062144
+-2139062144
+-2139062144
+-2139062144
+-2105310076
+-2071690108
+-2071624315
+-2054847099
+-2054846842
+-2038004090
+-2038003833
+-2021161082
+-2038069883
+-2054847099
+-2054847099
+-2054847099
+-2139062144
+-2139062144
+-2139062144
+-2139062144
+-2105310076
+-2071690108
+-2071624315
+-2054847099
+-2054846842
+-2038004090
+-2038003833
+-2021161082
+-2038069883
+-2054847099
+-2054847099
+-2054847099
+-2139062144
+-2139062144
+-2139062144
+-2139062144
+-2105310076
+-2071690108
+-2071624315
+-2054847099
+-2054846842
+-2038004090
+-2038003833
+-2021161082
+-2038069883
+-2054847099
+-2054847099
+-2054847099
+-2139062144
+-2139062144
+-2139062144
+-2139062144
+-2105310076
+-2071690108
+-2071624315
+-2054847099
+-2054846842
+-2038004090
+-2038003833
+-2021161082
+-2038069883
+-2054847099
+-2054847099
+-2054847099
+-2139062144
+-2139062144
+-2139062144
+-2139062144
+-2105310076
+-2071690108
+-2071624315
+-2054847099
+-2054846842
+-2038004090
+-2038003833
+-2021161082
+-2038069883
+-2054847099
+-2054847099
+-2054847099
+-2139062144
+-2139062144
+-2139062144
+-2139062144
+-2105310076
+-2071690108
+-2071624315
+-2054847099
+-2054846842
+-2038004090
+-2038003833
+-2021161082
+-2038069883
+-2054847099
+-2054847099
+-2054847099
+2088533116
+2088533116
+2082108904
+71042816
+13570461
+323496968
+621757444
+-1470349338
+-519240938
+2067997850
+47811084
+1507865859
+-896700156
+1544020822
+1448498774
+1448498774
+2088533116
+2088533116
+2082108904
+71042816
+13570461
+323496968
+621757444
+-1470349338
+-519240938
+2067997850
+47811084
+1507865859
+-896700156
+1544020822
+1448498774
+1448498774
+2088533116
+2088533116
+2082108904
+71042816
+13570461
+323496968
+621757444
+-1470349338
+-519240938
+2067997850
+47811084
+1507865859
+-896700156
+1544020822
+1448498774
+1448498774
+2088533116
+2088533116
+2082108904
+71042816
+13570461
+323496968
+621757444
+-1470349338
+-519240938
+2067997850
+47811084
+1507865859
+-896700156
+1544020822
+1448498774
+1448498774
+2088533116
+2088533116
+2082108904
+71042816
+13570461
+323496968
+621757444
+-1470349338
+-519240938
+2067997850
+47811084
+1507865859
+-896700156
+1544020822
+1448498774
+1448498774
+2088533116
+2088533116
+2082108904
+71042816
+13570461
+323496968
+621757444
+-1470349338
+-519240938
+2067997850
+47811084
+1507865859
+-896700156
+1544020822
+1448498774
+1448498774
+2088533116
+2088533116
+2082108904
+71042816
+13570461
+323496968
+621757444
+-1470349338
+-519240938
+2067997850
+47811084
+1507865859
+-896700156
+1544020822
+1448498774
+1448498774
+2088533116
+2088533116
+2082108904
+71042816
+13570461
+323496968
+621757444
+-1470349338
+-519240938
+2067997850
+47811084
+1507865859
+-896700156
+1544020822
+1448498774
+1448498774
+2088533116
+2088533116
+2082108904
+71042816
+13570461
+323496968
+621757444
+-1470349338
+-519240938
+2067997850
+47811084
+1507865859
+-896700156
+1544020822
+1448498774
+1448498774
+1347440720
+1347440720
+1356140841
+-1729396130
+52075278
+1779590153
+1439563898
+426969716
+285197444
+-1497659175
+-1103364083
+-1003785088
+1960978266
+798885935
+791621423
+791621423
+1465341783
+1465341783
+1459883960
+739814165
+-660048124
+423751661
+-314827794
+393159833
+415208504
+377722218
+1845518339
+2030816833
+-925078269
+-1307973057
+1061109567
+1061109567
+471604252
+471604252
+469770322
+219843939
+7879442
+-786816993
+-392705524
+-1994455773
+-1862230015
+-1751016498
+1971042074
+-1803773535
+1726109447
+-1137745078
+1246382666
+1246382666
+-2021161081
+-2021161081
+-2021359257
+1871148909
+-2105316487
+2054910080
+-2021038210
+2004841091
+2039834738
+-2038471563
+-1889043582
+1954511221
+2004649844
+2140237951
+2139062143
+2139062143
+1835887981
+1835887981
+1837267336
+2104850562
+-2089121667
+1989173377
+2037547644
+2005433985
+-2056680328
+2021426296
+2022206348
+-2106361734
+2105504129
+1987478911
+2139062143
+2139062143
+2122219134
+2122219134
+2123067008
+2088139893
+2056025726
+1970829184
+2121368444
+-2140046218
+1971290752
+2004647548
+2038137206
+2021624184
+1937470335
+1988061815
+2004318071
+2004318071
+2122219134
+2122219134
+2121825410
+1904312189
+-2056159625
+-1921939849
+2121694330
+-1972663935
+2054850162
+2088663934
+-2122806153
+2072475013
+2072279167
+2071821946
+2054847098
+2054847098
+2071690107
+2071690107
+2071298171
+2071690876
+2054913659
+2105113725
+2121955963
+2088533373
+2088336762
+2122152573
+-2139259015
+2088531835
+2122152829
+2105245052
+2088533116
+2088533116
+2071690107
+2071690107
+2071690107
+2054847099
+2071755900
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2105376125
+2105376125
+2105375867
+2071624058
+2071755900
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2105376125
+2105376125
+2105375868
+2088467323
+2071755900
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2105376125
+2105376125
+2105375869
+2105376124
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533117
+2122219390
+2105310332
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2038004089
+2038004089
+2038070142
+2139193985
+2122087548
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2038004089
+2038004089
+2038070141
+2122351232
+2122087548
+2071690107
+2088599167
+2138930300
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2071690107
+2071690107
+2071690108
+2105441918
+2105244539
+2071690107
+2088599168
+2138995836
+2071690107
+2088533373
+2071690107
+2071690107
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533115
+2071690107
+2088665217
+-2139128452
+2071690108
+2088533373
+2071690107
+2071690107
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533373
+2105507969
+-2139128452
+2088533116
+2088533116
+2071690107
+2071690107
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088598910
+2122284927
+2122284928
+2139061886
+2122153340
+2088467323
+2071690107
+2071690107
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2105376383
+-2138996094
+-2139128193
+2122284927
+2139061885
+2088467066
+2071690107
+2071690107
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533117
+2105442176
+-2105310076
+-2122351235
+2105507968
+-2139062403
+2088401273
+2054912891
+2071690107
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2105442433
+-2088401018
+-2105574020
+2105508225
+-2122219394
+2088401016
+2054912891
+2071690107
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533631
+-2122153086
+-2122417028
+2105508226
+-2105376642
+2105244025
+2038069882
+2054847097
+2071755901
+2105376125
+2105376125
+2105376125
+2105376125
+2105376125
+2105376125
+2105376124
+2071690108
+2088599166
+2122153084
+2105442177
+-2122219393
+2105309817
+2054847354
+2054847098
+2071755901
+2105376382
+2122219134
+2122219134
+2088533116
+2088533116
+2088533116
+2088533116
+2054847098
+2054847099
+2088598908
+2071821696
+-2139062145
+2122153084
+2088664958
+2139061885
+2071756157
+2105442175
+2139062143
+2139062143
+2105376125
+2105376125
+2105376125
+2105376125
+2105376125
+2105376125
+2105441659
+2071756159
+2139193471
+2138996093
+2122350719
+-2139128194
+2105376125
+2122219391
+2139062143
+2139062143
+2139062143
+2139062143
+2139062143
+2139062143
+2139127936
+-2139062144
+-2138997124
+2088599167
+-2138996095
+-2122219135
+-2105310333
+-2105442175
+-2122284928
+-2122219134
+-2105376126
+-2105376126
+-2088533117
+-2088533117
+-2088533117
+-2088533117
+-2105376126
+-2105376125
+-2071756417
+2122219394
+-2088467067
+-2038004089
+-1987343478
+-1970698105
+-2054847099
+-2054847098
+-2038004090
+-2038004090
+-2004318072
+-2004318072
+-2004318072
+-2004318072
+-2038004090
+-2038004088
+-2004318589
+-2122218619
+-2054781305
+-2004317814
+-1936946293
+-1987541112
+-2021095288
+-2004318072
+-2004318072
+-2004318072
+-1920103027
+-1920103027
+-1920103027
+-1920103028
+-1970697847
+-1987475061
+-1920104058
+-2054846585
+-2021226617
+-2004252021
+-1953855353
+-2054913147
+-2037872504
+-2021161338
+-2038004090
+-2038004090
+-1903260018
+-1903260018
+-1903325811
+-1936946037
+-2004449658
+-2021095285
+-1936881016
+-2037872248
+-2021226873
+-2004252279
+-1987541114
+-2038135675
+-2054781563
+-2054913149
+-2088533117
+-2088533117
+-1936946036
+-1936946036
+-1936946037
+-1953854841
+-2071887486
+-2071623799
+-1987343992
+-2021161082
+-2038004090
+-2037938041
+-2054912892
+-2071690365
+-2105376127
+-2122219135
+-2122219135
+-2122219135
+-1953789045
+-1953789045
+-1953789303
+-1987541115
+-2105573503
+-2105244025
+-2004318330
+-2038070139
+-2054781306
+-2038004091
+-2105441919
+-2122219135
+2139062143
+2139062143
+2139062143
+2139062143
+-1936946036
+-1936946036
+-1937011830
+-1987540857
+-2038135675
+-2054781048
+-2021227131
+-2071756157
+-2071624315
+-2054847102
+2138930557
+2105376125
+2071690107
+2071690107
+2071690107
+2071690107
+-1953789045
+-1953789045
+-1953789303
+-2004318329
+-2004318329
+-2021160826
+-2054978942
+-2122285185
+-2139062144
+-2139062146
+2071624314
+2054847098
+2021161080
+2021161080
+2021161080
+2021161080
+-1987475063
+-1987475063
+-1987540857
+-2038069883
+-2038004090
+-2038069885
+-2122350721
+2122153083
+2054781305
+2038004088
+2021095287
+2004318071
+1987475062
+1987475062
+1987475062
+1987475062
+-2054847099
+-2054847099
+-2054912893
+-2105441919
+-2122153343
+-2122285186
+2088467579
+2054781303
+1987409269
+1970632054
+1987475062
+1987475062
+1987475062
+1987475062
+1987475062
+1987475062
+-2122219135
+-2122219135
+-2122284929
+2122153341
+2088533116
+2071690106
+2021161080
+2004252277
+1987475062
+1987475062
+2004318071
+2004318071
+2004318071
+2004318071
+2004318071
+2004318071
+2122219134
+2122219134
+2122218877
+2088467065
+2021161080
+2037938295
+1987475318
+1970631797
+1987540855
+2004318071
+1987540855
+2004318071
+2004318071
+2004318071
+2004318071
+2004318071
+2122219134
+2122219134
+2122218877
+2088467065
+2021161080
+2037938295
+1987475318
+1970631797
+1987540855
+2004318071
+1987540855
+2004318071
+2004318071
+2004318071
+2004318071
+2004318071
+2122219134
+2122219134
+2122218877
+2088467065
+2021161080
+2037938295
+1987475318
+1970631797
+1987540855
+2004318071
+1987540855
+2004318071
+2004318071
+2004318071
+2004318071
+2004318071
+2122219134
+2122219134
+2122218877
+2088467065
+2021161080
+2037938295
+1987475318
+1970631797
+1987540855
+2004318071
+1987540855
+2004318071
+2004318071
+2004318071
+2004318071
+2004318071
+2122219134
+2122219134
+2122218877
+2088467065
+2021161080
+2037938295
+1987475318
+1970631797
+1987540855
+2004318071
+1987540855
+2004318071
+2004318071
+2004318071
+2004318071
+2004318071
+2122219134
+2122219134
+2122218877
+2088467065
+2021161080
+2037938295
+1987475318
+1970631797
+1987540855
+2004318071
+1987540855
+2004318071
+2004318071
+2004318071
+2004318071
+2004318071
+2122219134
+2122219134
+2122218877
+2088467065
+2021161080
+2037938295
+1987475318
+1970631797
+1987540855
+2004318071
+1987540855
+2004318071
+2004318071
+2004318071
+2004318071
+2004318071
+2122219134
+2122219134
+2122218877
+2088467065
+2021161080
+2037938295
+1987475318
+1970631797
+1987540855
+2004318071
+1987540855
+2004318071
+2004318071
+2004318071
+2004318071
+2004318071
+2122219134
+2122219134
+2122218877
+2088467065
+2021161080
+2037938295
+1987475318
+1970631797
+1987540855
+2004318071
+1987540855
+2004318071
+2004318071
+2004318071
+2004318071
+2004318071
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+-1313754703
+-1313754703
+-1313754703
+-1313754703
+-1309682045
+1279267943
+1180434447
+906297348
+-542962148
+851968
+928779776
+117441793
+2826
+50331649
+17172992
+12
+-1174269933
+-1125321554
+-1701967616
+-247337284
+1984690357
+-986775529
+15138947
+285736960
+-115140859
+1406306994
+-136970240
+527616
+0
+0
+0
+0
+151587081
+151587081
+151587081
+151587081
+156343830
+520355843
+1588856326
+1436748036
+465731963
+1560315777
+-330563568
+958070799
+1868365829
+256
+-1186462462
+335741440
+201786368
+787456
+34537480
+268439552
+-1240397824
+-791675980
+-1484974827
+-481756490
+1867117742
+-241560319
+137049740
+1598543662
+774778414
+774778414
+774778414
+774778414
+252645135
+252645135
+252645135
+252645135
+256007959
+-725677600
+-89125152
+-869396887
+1838387480
+1393318227
+-1843897185
+1961072414
+471501765
+315661956
+-971009632
+-1815961607
+-1347692506
+-1977332225
+1793149445
+-988945568
+227529292
+891396299
+-1353946026
+657609427
+453895015
+145731089
+50397201
+920458
+-1970632054
+-1970632054
+-1970632054
+-1970632054
+218959117
+218959117
+218959117
+218959117
+218235655
+101018884
+491782164
+-1643577327
+151977984
+210894835
+1947009024
+83980421
+-1283961224
+-248617515
+-1733071193
+637779792
+-331939642
+1319415853
+-648088662
+-481558036
+1891297551
+24196662
+1750599371
+15602043
+-1406242702
+1674510152
+-223527917
+1731951319
+-673720361
+-673720361
+-673720361
+-673720361
+-1077952577
+-1077952577
+-1077952577
+-1077952577
+-1075729206
+577324646
+-1305717895
+-996832804
+408010295
+-2099408356
+-1974197762
+674089301
+-1676449643
+-1592993586
+-624834520
+927758521
+543050036
+209181738
+1254105424
+-1700013127
+-156328020
+-1857545599
+-1282481477
+-1892374695
+1012306117
+2069285186
+1347960866
+-318242560
+0
+0
+0
+0
+-1970632054
+-1970632054
+-1970632054
+-1970632054
+-1964527726
+240140813
+1116642918
+1447710607
+-5333940
+-445870070
+-1691278170
+-1185106354
+-1366594010
+-955587938
+1383857056
+-1570213822
+1452953585
+1809735388
+2015690197
+-102961302
+1658164377
+-2090372439
+1428185247
+-896864459
+1411269094
+1253619585
+1561746310
+1068106381
+-1920103027
+-1920103027
+-1920103027
+-1920103027
+-640034343
+-640034343
+-640034343
+-640034343
+-641901875
+-1318565045
+1178002294
+-1351070257
+731835885
+923179858
+-852389571
+-717024363
+-527117405
+-1504395362
+-753577040
+-1081723431
+-1276231972
+880826125
+-1200264994
+1671905573
+-1915227737
+1082347499
+975530879
+-1237484990
+835185263
+1152039327
+-1716598685
+-690680568
+134744072
+134744072
+134744072
+134744072
+1313754702
+1313754702
+1313754702
+1313754702
+1313755470
+1313754703
+1280200270
+1313754446
+1313754702
+1313754702
+1280003405
+1330401874
+1347440720
+1347506256
+1364283729
+1364283729
+1364282961
+1364283472
+1330531918
+1313754701
+1246316873
+1229539401
+1145521991
+1195787079
+1212762440
+1145653576
+1195853125
+1145454899
+858993459
+858993459
+858993459
+858993459
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754701
+1296911951
+1347506514
+1364283729
+1364283729
+1364283729
+1364283729
+1364283729
+1364283728
+1330531918
+1313754701
+1263159882
+1246382665
+1212630855
+1195853639
+1212696648
+1212696647
+1195853122
+1145454131
+858993459
+858993459
+858993459
+858993459
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1330597711
+1330597711
+1330597711
+1330597711
+1313755216
+1364349522
+1364283729
+1364283729
+1364283729
+1364283729
+1364283729
+1364283728
+1330531918
+1313754701
+1280002891
+1263225674
+1229473864
+1212696648
+1195853639
+1195853639
+1179076163
+1162231604
+875836468
+875836468
+875836468
+875836468
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1330597711
+1330597711
+1347440720
+1347440720
+1347440977
+1381126739
+1381126738
+1381126738
+1364283729
+1364283729
+1364283729
+1364283728
+1330531918
+1313754702
+1280068684
+1280068683
+1246316873
+1229539657
+1195853639
+1195853639
+1195918915
+1162297140
+875836468
+875836468
+875836468
+875836468
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754703
+1330663504
+1347440720
+1364283729
+1364283729
+1364283986
+1397970004
+1381126738
+1381126738
+1364283729
+1364283729
+1364283729
+1364283728
+1330531918
+1313754702
+1296911693
+1296911693
+1263225675
+1263225674
+1229473864
+1212696648
+1195919172
+1179074613
+892679477
+892679477
+892679477
+892679477
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754703
+1330663504
+1347440721
+1364349522
+1381126738
+1397970003
+1414812756
+1397969747
+1397969747
+1364283729
+1364283729
+1364283729
+1364283728
+1330531918
+1313754702
+1313754702
+1313754702
+1280068684
+1280068683
+1246316873
+1229539657
+1212761925
+1179140149
+892679477
+892679477
+892679477
+892679477
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754703
+1347506513
+1364283730
+1381192531
+1397969748
+1414813012
+1431589972
+1414746963
+1397969747
+1364283729
+1364283729
+1364283729
+1364283728
+1330531918
+1313754702
+1330597711
+1330597710
+1296845900
+1280068684
+1263225675
+1263225674
+1229539397
+1195917622
+909522486
+909522486
+909522486
+909522486
+1330597711
+1330597711
+1330597711
+1330597711
+1330597711
+1330597712
+1364349522
+1381126739
+1414878549
+1431655765
+1448629591
+1532384342
+1397709131
+1497977175
+1364021843
+1313690447
+1330859600
+1380929617
+1330532174
+1296649551
+1330532431
+1330466385
+1296911693
+1313754702
+1313754445
+1296911692
+1246382150
+1212760372
+875836468
+875836468
+875836468
+875836468
+1364283729
+1364283729
+1364283729
+1364283729
+1364283729
+1364283730
+1398035540
+1414812757
+1431721558
+1448498773
+1448563548
+1515605584
+1381194575
+1514754644
+1347245906
+1347114321
+1364479831
+1364283730
+1364284752
+1363692625
+1347441999
+1380733265
+1330531919
+1330597968
+1330531918
+1296911692
+1263159880
+1212957489
+825307441
+825307441
+825307441
+825307441
+1397969747
+1397969747
+1397969747
+1397969747
+1397969747
+1397969748
+1414878549
+1431655766
+1448564567
+1465341778
+1364677716
+1331188559
+1381914722
+1532646986
+1246910290
+1515410518
+1431589718
+1314148693
+1431526482
+1447906392
+1347702867
+1447648079
+1347374928
+1364283985
+1330531917
+1296845899
+1229474120
+1213023537
+825307441
+825307441
+825307441
+825307441
+1431655765
+1431655765
+1431655765
+1431655765
+1431655765
+1431655765
+1448498774
+1448498774
+1465341783
+1465341779
+1432246872
+1347966298
+1515406432
+1263230282
+1247434311
+1565478231
+1465209942
+1297502551
+1464621132
+1465273174
+1447778381
+1330531663
+1347506770
+1397969746
+1364217935
+1330531916
+1246317386
+1280395573
+892679477
+892679477
+892679477
+892679477
+1465341783
+1465341783
+1465341783
+1465341783
+1465341783
+1465341783
+1465341783
+1465341783
+1465341783
+1465341777
+1382112348
+1549422688
+1550344553
+-1504355491
+1548837199
+1783258716
+1516523359
+1633180516
+1632591954
+1600344412
+1600153175
+1565872730
+1498764629
+1431655764
+1431655764
+1414746963
+1414813013
+1448825662
+1044266558
+1044266558
+1044266558
+1044266558
+1482184792
+1482184792
+1482184792
+1482184792
+1482184792
+1482184792
+1482184792
+1482184792
+1465341783
+1465341784
+1705418628
+-1885303395
+-1651735194
+-1301831257
+-1838836341
+-1619745897
+2023517837
+-1635873641
+-1769364852
+-1953923434
+2007402124
+-1686793063
+1482184792
+1482184535
+1499093593
+1498962009
+1532779867
+1532974914
+1111638594
+1111638594
+1111638594
+1111638594
+1499027801
+1499027801
+1499027801
+1499027801
+1499027801
+1499027801
+1499027801
+1499027801
+1465341783
+1465341785
+-1971226458
+-1385408594
+-1736923735
+-1636323732
+-1166433378
+-1619085142
+-2086045542
+-1383359580
+-1936873842
+2121364114
+1956809871
+-1551524437
+1532713819
+1515870554
+1532779611
+1532648025
+1482053461
+1431851066
+976894522
+976894522
+976894522
+976894522
+1482184792
+1482184792
+1482184792
+1482184792
+1482184792
+1482184793
+1499093594
+1515870809
+1482118999
+1465341787
+1721604218
+1937667436
+1752206485
+2138806167
+-2023329423
+1599370612
+1500731753
+1885694829
+1684238948
+1565480039
+1566665565
+1852663160
+1600019805
+1549491035
+1532713562
+1499027799
+1414681169
+1364544824
+943208504
+943208504
+943208504
+943208504
+1482184792
+1482184792
+1482184792
+1482184792
+1482184792
+1482184793
+1499093594
+1515870552
+1465275991
+1465407574
+1415668830
+1313888612
+1318367415
+-1990306718
+1599954010
+1280594774
+1448892506
+1415339101
+1481724500
+1633377634
+1700685918
+1717985891
+1616797021
+1549556827
+1498962008
+1465341782
+1414747219
+1398296380
+1010580540
+1010580540
+1010580540
+1010580540
+1465341783
+1465341783
+1465341783
+1465341783
+1465341783
+1465407834
+1499027801
+1515804760
+1465341783
+1482185047
+1347769170
+1364414553
+2041094247
+1329938510
+1213085238
+1045583450
+1482119767
+1465604441
+1566794593
+1650549346
+1650285661
+1583308122
+1549688157
+1549491033
+1482118999
+1465341783
+1448367445
+1431850557
+1027423549
+1027423549
+1027423549
+1027423549
+1465341783
+1465341783
+1465341783
+1465341783
+1465341783
+1465407577
+1515936602
+1499027801
+1499027801
+1499027543
+1448432981
+1431655759
+844390994
+1229276488
+1246582908
+-1583515556
+1600151648
+1616928865
+1616994657
+1633771872
+1566334044
+1549556828
+1566399580
+1549491034
+1482118999
+1465341784
+1465210198
+1431784764
+1010580540
+1010580540
+1010580540
+1010580540
+1482184792
+1482184792
+1482184792
+1482184792
+1482184792
+1482184536
+1499093593
+1482185307
+1515936345
+1482118740
+1364152143
+1330597710
+438845009
+1465473633
+1734836130
+-1568710070
+1734303583
+1600085854
+1583177053
+1566399837
+1549556828
+1549556828
+1566399836
+1549556570
+1498962008
+1482184793
+1482053206
+1431785020
+1010580540
+1010580540
+1010580540
+1010580540
+1482184792
+1482184792
+1482184792
+1482184792
+1482184792
+1482250585
+1499027801
+1499093337
+1482184791
+1465275989
+1397903954
+1381126742
+773928022
+1667655266
+1480677241
+1766544994
+1616468313
+1499027802
+1515936603
+1532713820
+1549622621
+1566399837
+1583242589
+1566334043
+1498962008
+1482184793
+1482053207
+1448627773
+1027423549
+1027423549
+1027423549
+1027423549
+1499027801
+1499027801
+1499027801
+1499027801
+1499027801
+1499093851
+1498896217
+1532713562
+1515870811
+1532779613
+1600085855
+1600085855
+1143024461
+1515869524
+1075519826
+1616468573
+1498962008
+1482184793
+1532779612
+1549556828
+1566399837
+1566399838
+1583242846
+1566399579
+1515805017
+1499027802
+1498896215
+1465470781
+1027423549
+1027423549
+1027423549
+1027423549
+1499027801
+1499027801
+1499027801
+1499027801
+1499027801
+1498962007
+1431655765
+1465539678
+1566531681
+1650680932
+1650614882
+1650614886
+1260923200
+1381322320
+1479155012
+1650678102
+1465539162
+1515870811
+1549622621
+1566399837
+1583242846
+1583242846
+1600085854
+1583177052
+1515805017
+1499027802
+1498896216
+1465470782
+1044266558
+1044266558
+1044266558
+1044266558
+1515870810
+1515870810
+1515870810
+1515870810
+1515870810
+1515870812
+1583440223
+1532846178
+1633903459
+1667458146
+1599954269
+1566399842
+1295198520
+1398889313
+1379082550
+1499685480
+1583177053
+1566399838
+1566465630
+1583242846
+1583242846
+1583242847
+1600085855
+1583242588
+1532648026
+1515870811
+1515739224
+1482313790
+1044266558
+1044266558
+1044266558
+1044266558
+1566399837
+1566399837
+1566399837
+1566399837
+1566399837
+1566465890
+1701736037
+1650680418
+1633771873
+1616928607
+1583242846
+1583242848
+1430465327
+1415338331
+1346117942
+1482971479
+1516002653
+1566399837
+1566465630
+1583242846
+1600085855
+1600085856
+1616928864
+1600085854
+1566334044
+1549491035
+1532581977
+1482314047
+1061109567
+1061109567
+1061109567
+1061109567
+1583242846
+1583242846
+1583242846
+1583242846
+1583242846
+1583242849
+1667589474
+1650549088
+1600151647
+1600020062
+1583242846
+1583242846
+1515140396
+978476120
+1312039220
+1331716191
+1549556828
+1549556828
+1566465630
+1583242846
+1600151648
+1616928864
+1616928864
+1616928606
+1583242845
+1566334044
+1549359450
+1499156799
+1061109567
+1061109567
+1061109567
+1061109567
+1532713819
+1532713819
+1532713819
+1532713819
+1532713819
+1532713819
+1549556828
+1549557085
+1583308639
+1600085855
+1600085855
+1600085854
+1532314419
+927357273
+1412702505
+1113153888
+1583111517
+1566399837
+1583243103
+1600085855
+1616994657
+1633771872
+1600085855
+1600085855
+1600020062
+1566399581
+1549359705
+1499091519
+1061109567
+1061109567
+1061109567
+1061109567
+1499027801
+1499027801
+1499027801
+1499027801
+1499027801
+1499027801
+1515936603
+1532714077
+1566465887
+1600085855
+1600085855
+1600085855
+1549291069
+909987675
+1480666150
+911105374
+1599954526
+1583242846
+1600086112
+1616928864
+1616994657
+1633771615
+1583242846
+1583242846
+1583242845
+1566334045
+1532516697
+1499091262
+1044266558
+1044266558
+1044266558
+1044266558
+1515870810
+1515870810
+1515870810
+1515870810
+1515870810
+1515870810
+1515936603
+1532713821
+1566465887
+1600085855
+1600085855
+1600085855
+1616861248
+825639514
+1582183717
+725833565
+1616797535
+1600085855
+1600151648
+1616928864
+1633771873
+1633771615
+1583242846
+1583242846
+1600020062
+1566399580
+1549359449
+1482314047
+1061109567
+1061109567
+1061109567
+1061109567
+1532713819
+1532713819
+1532713819
+1532713819
+1532713819
+1532713819
+1532713819
+1532714077
+1566465887
+1600085855
+1600085855
+1600085858
+1684231995
+690763862
+1599158564
+675305053
+1633640544
+1616928864
+1616994657
+1633771873
+1633771873
+1633771615
+1600085855
+1600085855
+1616863071
+1583242589
+1549359450
+1499156800
+1077952576
+1077952576
+1077952576
+1077952576
+1532713819
+1532713819
+1532713819
+1532713819
+1532713819
+1532713819
+1549556828
+1549557085
+1566465887
+1600085855
+1600085855
+1600085858
+1683966255
+606548812
+1447769125
+759388257
+1667260769
+1633771873
+1633771873
+1633771873
+1650680675
+1667457634
+1650680675
+1667457890
+1650549089
+1616928607
+1582979930
+1515934528
+1077952576
+1077952576
+1077952576
+1077952576
+1515870810
+1515870810
+1515870810
+1515870810
+1515870811
+1532713565
+1566334558
+1566466142
+1583308639
+1600085855
+1600085855
+1600085857
+1582642978
+623456064
+1229138984
+893868130
+1667326562
+1650614882
+1650614882
+1650614883
+1684366693
+1701143909
+1701209702
+1717986917
+1684235107
+1650614625
+1599822940
+1549620290
+1111638594
+1111638594
+1111638594
+1111638594
+1566399837
+1566399837
+1566399837
+1566399837
+1566334044
+1549425501
+1549426271
+1532846687
+1566400351
+1583243618
+1616797793
+1667325790
+1531913237
+573191988
+942942510
+1028217447
+1700880739
+1667523684
+1650549089
+1667589221
+1701276007
+1701144166
+1734829927
+1734829925
+1701143651
+1667457889
+1616730970
+1532777535
+1061109567
+1061109567
+1061109567
+1061109567
+1549556828
+1549556828
+1549556828
+1549556828
+1549557085
+1515805274
+1515806303
+1532715101
+1516003166
+1549557600
+1583177570
+1667325021
+1498225427
+589510441
+690695736
+1213488484
+1650352226
+1667523941
+1684103265
+1667589476
+1667656039
+1701210217
+1751541609
+1768384101
+1684432228
+1701012063
+1600084828
+1566398271
+1061109567
+1061109567
+1061109567
+1061109567
+1397969747
+1397969747
+1397969747
+1397969747
+1397970521
+1465210455
+1516068704
+1599954269
+1499159643
+1482119260
+1566399838
+1600019292
+1430722844
+655629598
+589967677
+1314216030
+1616798051
+1684301416
+1717855075
+1684234849
+1633903973
+1718184811
+1768384362
+1785161575
+1701143909
+1667392094
+1600413281
+1684101695
+1061109567
+1061109567
+1061109567
+1061109567
+1111638594
+1111638594
+1111638594
+1111638594
+1111244098
+1145126982
+1212827986
+1651008870
+1701209187
+1633640548
+1751540062
+1617060451
+1514872864
+638721304
+455355203
+1583833181
+1600217699
+1684366696
+1751672678
+1701143909
+1701011810
+1684234595
+1701341288
+1751672935
+1717986660
+1650549085
+1600545381
+1751406909
+1027423549
+1027423549
+1027423549
+1027423549
+589505315
+589505315
+589505315
+589505315
+590302055
+1800680489
+690826302
+1550477674
+1802333545
+1701278327
+1953261672
+1802333810
+1901666828
+438382644
+774053433
+1584030043
+1549950813
+1617125985
+1650812260
+1650681707
+1801938280
+1785292390
+1718118245
+1701275752
+1751540577
+1616994654
+1583767906
+1667192380
+1010580540
+1010580540
+1010580540
+1010580540
+875836468
+875836468
+875836468
+875836468
+875771709
+1010118443
+639837497
+1432511078
+1735093607
+1617461137
+-1735027047
+-1633640287
+-1399697116
+1030718875
+-2141571002
+1735947889
+1852794206
+1701735526
+1701341026
+1583309667
+1582716509
+1633574498
+1684563808
+1617389670
+1717919839
+1633772382
+1600610140
+1549358142
+1044266558
+1044266558
+1044266558
+1044266558
+1145324612
+1145324612
+1145324612
+1145324612
+1145720656
+1246185799
+1077361483
+1550018155
+1819308394
+1701808535
+-1769041771
+-1667194462
+-1600821451
+1436530879
+-1114873496
+-2003264616
+-1903724951
+1954841724
+2054911338
+1633839987
+1936551536
+1750883170
+1701472351
+1600678500
+1633771618
+1717985884
+1583833437
+1549226815
+1061109567
+1061109567
+1061109567
+1061109567
+1330597711
+1330597711
+1330597711
+1330597711
+1330597191
+1044995945
+1598441812
+1533111144
+1718117214
+1566930298
+1969973868
+1920499068
+2054845016
+2041823931
+-1333962143
+-2138471792
+-1853132447
+1871022468
+-2088535188
+1633972111
+-1650877801
+-2039451785
+1802398560
+1617653346
+1515872362
+1886150741
+1533964144
+1835227199
+1061109567
+1061109567
+1061109567
+1061109567
+1162167621
+1162167621
+1162167621
+1162167621
+1162697053
+1549294174
+1464816996
+1566924894
+1414218046
+1095125578
+1144928312
+1027885905
+1516598134
+-1834504519
+-2091235750
+1919770991
+1987139654
+1467251058
+1903258723
+1566599801
+2122220421
+2019978105
+1853124709
+1701867874
+1431658090
+1969773395
+1669368720
+-1937674929
+1330597711
+1330597711
+1330597711
+1330597711
+1162167621
+1162167621
+1162167621
+1162167621
+1162697310
+1582650191
+1297112176
+1600739158
+1566992226
+1532583005
+1447312187
+1112432995
+1599828352
+-1717533343
+1517701463
+1415335768
+1549619783
+1585479776
+1449026402
+1650747242
+1802400889
+1953197167
+1938517095
+1701605472
+1482384233
+1701273950
+1770031756
+-1954190258
+1313754702
+1313754702
+1313754702
+1313754702
+1296911693
+1296911693
+1296911693
+1296911693
+1297175889
+1212368707
+1094732385
+1331384132
+1061241665
+1027556937
+1144731192
+1061703767
+1767075961
+1616466255
+-2087560612
+1498695771
+1717986410
+-2035835290
+1263755369
+1818912098
+1650880631
+1936485994
+1972528480
+1566598495
+1651207792
+1903193965
+1819176299
+1869304889
+960051513
+960051513
+960051513
+960051513
+1061109567
+1061109567
+1061109567
+1061109567
+1061306937
+791623992
+875575635
+1112425010
+741290287
+774977590
+808004399
+876033856
+1279422332
+1228032373
+-1313642925
+1414087508
+1498770058
+-1396331165
+1095192405
+1482249810
+1364418666
+1734237528
+1618823745
+1044597323
+1398430815
+1616928612
+1734498134
+1549222444
+741092396
+741092396
+741092396
+741092396
+842150450
+842150450
+842150450
+842150450
+842348855
+842217520
+723988300
+960839991
+824977959
+606481454
+757870387
+909587246
+758410100
+1061256364
+-1044816588
+1043673137
+842424984
+-1127636640
+1077886011
+1078348100
+1061047639
+1397244736
+1333018162
+876036158
+1078150214
+1179010376
+1178349619
+909124635
+454761243
+454761243
+454761243
+454761243
+404232216
+404232216
+404232216
+404232216
+404365866
+724118312
+572335171
+741684781
+605887255
+336927001
+387323416
+437917976
+388124508
+944145325
+-1095543010
+824516374
+388057978
+-1768329911
+1111571515
+1061571138
+993674828
+1144270117
+878454297
+437919003
+420943896
+404166169
+420942356
+353505040
+269488144
+269488144
+269488144
+269488144
+235802126
+235802126
+235802126
+235802126
+235869726
+521869333
+319887930
+505488929
+471275030
+353703964
+471471896
+437918746
+370354247
+1061252001
+-1162976741
+824581655
+506215506
+1751334193
+876298050
+1162299205
+1128680783
+1127295522
+794501908
+386994708
+370743577
+421075223
+370612762
+437918232
+404232216
+404232216
+404232216
+404232216
+454761243
+454761243
+454761243
+454761243
+454629918
+505158168
+353377082
+420945181
+471472925
+488447517
+420746004
+353768988
+488184120
+1179082141
+-1129812196
+841490718
+775896132
+1650276658
+775108925
+1061175362
+1162498130
+1228749624
+811608345
+521805343
+471341338
+471736348
+421273628
+488642570
+168430090
+168430090
+168430090
+168430090
+370546198
+370546198
+370546198
+370546198
+370414096
+286528529
+303308858
+454169883
+370219034
+420746009
+387323675
+471275028
+371529500
+860374673
+-1197575142
+841226775
+472853299
+1515663926
+892613685
+926563646
+1078085967
+1296649553
+1216432442
+1145391959
+1634166889
+1802399857
+1920825457
+1903980365
+1296911693
+1296911693
+1296911693
+1296911693
+505290270
+505290270
+505290270
+505290270
+505157911
+421404444
+505357630
+672930843
+488578837
+404301093
+673522470
+775569470
+1112095777
+692137816
+-1247895998
+1600416365
+1835690100
+-2004057984
+-2054517616
+-1802004585
+-1734895722
+-1768515690
+-1819045493
+-1868784747
+-1852863092
+-1936813679
+-1818585707
+-1886614691
+1566399837
+1566399837
+1566399837
+1566399837
+909522486
+909522486
+909522486
+909522486
+909588280
+977092674
+1162497120
+1515608159
+1667790451
+1919776378
+-2104650088
+-1734763618
+-1600221599
+841760612
+-1264014980
+2005110927
+-1902798700
+-1802202739
+-1937078136
+-1936748916
+-1936814707
+-1920037235
+-1869245302
+-2003659632
+-1937144447
+2139062654
+2037806731
+2137679678
+1044266558
+1044266558
+1044266558
+1044266558
+-1684300901
+-1684300901
+-1684300901
+-1684300901
+-1684366437
+-1701142114
+-1718450802
+-1886089075
+-1970762609
+-1937012858
+-1868783467
+-2021423735
+-1953919626
+1246068626
+-1684627566
+2106299024
+-1953788786
+-1869839221
+-1768847487
+-2139062667
+1886219887
+1886417007
+1937537380
+1516598395
+1650350421
+1397904469
+1465740420
+1546137383
+656877351
+656877351
+656877351
+656877351
+-2004318072
+-2004318072
+-2004318072
+-2004318072
+-2004449145
+-2105309053
+-2138999938
+-2053993331
+-1852602995
+-1902604147
+-1902931833
+-2122283900
+-2088924272
+-2138387516
+1431660914
+1735357297
+1886350441
+1751672182
+-2055640996
+1465341266
+1347309908
+1448498524
+1752921175
+1146319495
+1667325274
+1482251105
+1752002431
+1428368417
+555819297
+555819297
+555819297
+555819297
+-1920103027
+-1920103027
+-1920103027
+-1920103027
+-1920168309
+-1987474037
+-2004321149
+-2054388605
+-2054455155
+2089189512
+-2055438976
+2070568289
+1565808475
+1584503167
+572404035
+1264081246
+1820227416
+1027628150
+-2122947239
+1431722076
+1634101098
+1819177070
+1921024359
+1398569345
+2104849009
+1903458175
+-1954254205
+-2106169296
+808464432
+808464432
+808464432
+808464432
+-2122219135
+-2122219135
+-2122219135
+-2122219135
+-2122483339
+1920037233
+1953983856
+1751802721
+1803714179
+1296251467
+1347513997
+-1888396972
+1381125700
+1179401251
+471737649
+1146969454
+2122808156
+1077695093
+-1920566410
+2004515706
+2071558780
+2139326087
+1871156613
+1903197053
+2003791213
+1852994938
+-2138603629
+-1633446579
+1296911693
+1296911693
+1296911693
+1296911693
+1667457891
+1667457891
+1667457891
+1667457891
+1667258453
+1498960983
+1583834221
+1667790451
+2140702593
+941821496
+1347910039
+-1956161447
+1499358305
+1819298344
+505553961
+1080324742
+-2021820561
+1666865774
+2071622771
+1987804023
+1936748657
+1971093633
+-1969312609
+-1920629632
+2054583411
+1953987447
+2089652888
+-1970960555
+1431655765
+1431655765
+1431655765
+1431655765
+1768515945
+1768515945
+1768515945
+1768515945
+1768578414
+2088730241
+2037870187
+1532915328
+-1734774674
+824049960
+1247310211
+2019582312
+1836019558
+1802525484
+303504414
+744391824
+1988266120
+-2122811268
+2071426163
+1970763641
+2071624059
+-2138402674
+-1953524599
+2071360885
+1970763123
+1903392636
+-1818586481
+2070507584
+1077952576
+1077952576
+1077952576
+1077952576
+1566399837
+1566399837
+1566399837
+1566399837
+1566532702
+1633970288
+2088861302
+1903791505
+1885171072
+-2021622425
+1533309818
+1936419439
+1937011567
+1886415162
+387323927
+608333708
+-1819898993
+-1937276293
+2021095286
+1970632570
+2071690369
+-1987013491
+-2055110535
+1936748399
+1937143155
+1953921666
+-1718122109
+1919707467
+1263225675
+1263225675
+1263225675
+1263225675
+1936946035
+1936946035
+1936946035
+1936946035
+1936879983
+1869640047
+1852863096
+-2087411050
+1751811492
+-1297177462
+2054782589
+2037739889
+1920300662
+1987343185
+723128083
+794527127
+-1735686525
+-2071823756
+1920300918
+1970632822
+1970634119
+-1903195519
+2054583411
+1903128175
+1937143417
+2122615181
+-1937409931
+1835755591
+1195853639
+1195853639
+1195853639
+1195853639
+1920103026
+1920103026
+1920103026
+1920103026
+1920169077
+2004516219
+2004055676
+-2037477761
+2122880934
+-1347640684
+-1970896259
+2037871989
+1987540598
+1987475045
+1244340270
+1383699349
+-1937737611
+1953788014
+1903523445
+1936946805
+2004583823
+-1870103950
+1869771377
+1903194224
+1852468083
+2139721353
+-2139722644
+1751803971
+1128481603
+1128481603
+1128481603
+1128481603
+1768515945
+1768515945
+1768515945
+1768515945
+1768713839
+1937209718
+1886220400
+1886022268
+-1582981479
+-1734896757
+-2038268551
+1987408753
+1937011571
+1953788780
+1599296870
+2055702658
+2054319725
+1869639279
+1903523187
+1886417787
+-2104849269
+-2038731159
+1785556591
+1886483059
+1936683129
+-2020436598
+2071030379
+1785686592
+1077952576
+1077952576
+1077952576
+1077952576
+2071690107
+2071690107
+2071690107
+2071690107
+2071689591
+2004384117
+1937144446
+-2138995045
+-1465543029
+-1987344256
+2054583155
+1936814190
+1869706100
+1936813675
+1853458832
+-1920631434
+1903128433
+1936945519
+1852863089
+1920301701
+-1903196290
+1987211635
+1970764155
+2105573764
+-2054847606
+-1784898415
+-2021557380
+2088859463
+1195853639
+1195853639
+1195853639
+1195853639
+-1953789045
+-1953789045
+-1953789045
+-1953789045
+-1953987457
+2088334963
+1936946556
+-2003261527
+-1634827396
+2054978424
+1936748657
+1936879984
+1886483573
+1970433903
+2039191702
+-1988265610
+1903194483
+1953656943
+1869706616
+2105904789
+-1768781440
+2088732560
+-1768318050
+-1583044952
+-1499094106
+-1414615896
+-1481857627
+-1515545498
+1717986918
+1717986918
+1717986918
+1717986918
+-2088533117
+-2088533117
+-2088533117
+-2088533117
+-2088599429
+2021095029
+1953591158
+-2002999135
+-1853851274
+1903063154
+1936879986
+1953854835
+1903260274
+1920103804
+-2037345397
+-2122613636
+2037938297
+2071756673
+-2071491954
+-1801672791
+-1465539164
+-1549357901
+-1229341762
+-1044068665
+-926299703
+-909522746
+-942880826
+-959727231
+-2122219135
+-2122219135
+-2122219135
+-2122219135
+2021161080
+2021161080
+2021161080
+2021161080
+2021028721
+1903326070
+1953724292
+-1801741936
+-2021688713
+1902931312
+1920102769
+1937077875
+1886284910
+1920366474
+-1852863353
+-2088598651
+-2004054899
+-1852269151
+-1532581718
+-1380730180
+-1145191738
+-976960060
+-1027488826
+-926233394
+-825373750
+-875770422
+-909260598
+-909197186
+2122219134
+2122219134
+2122219134
+2122219134
+1903260017
+1903260017
+1903260017
+1903260017
+1903127918
+1903326326
+2004518036
+-1650881406
+2105112694
+1953591921
+1903260020
+1987606905
+2020963704
+2139722904
+-1701473906
+-1886085722
+-1482382683
+-1397574215
+-1145126976
+-1044134202
+-959918641
+-808530743
+-960116792
+-892547633
+-808728891
+-943010613
+-892548918
+-892419205
+2071690107
+2071690107
+2071690107
+2071690107
+1953789044
+1953789044
+1953789044
+1953789044
+1953723253
+1987540082
+2021887899
+-1651539593
+1920103284
+1987541110
+1970632828
+2139260553
+-1987540337
+-1734104146
+-1415010909
+-1515473990
+-1111704899
+-993408568
+-959985464
+-909522231
+-926431289
+-943208505
+-976894265
+-909456435
+-876233285
+-1043937337
+-943077176
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+1920103026
+1920103026
+1920103026
+1920103026
+1920234613
+1953788280
+-2070768235
+-1870234249
+1970698620
+-2138864249
+-1987342445
+-1768317534
+-1515870293
+-1296251962
+-1010844488
+-1195588666
+-943406909
+-892350514
+-859059253
+-892679479
+-943274298
+-960051514
+-976894265
+-926299700
+-859323968
+-993474104
+-909522744
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+2004318071
+2004318071
+2004318071
+2004318071
+2004383865
+2054979982
+-1683776622
+-1971026554
+-2021094256
+-1785095007
+-1498829906
+-1313622600
+-1178944578
+-993209645
+-808728895
+-1077754169
+-960447298
+-993408309
+-875770934
+-909588538
+-976960316
+-993737532
+-976894522
+-943208244
+-825242935
+-858795827
+-892745528
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+2105376125
+2105376125
+2105376125
+2105376125
+2105441919
+-2104978782
+-1414882413
+-1835820640
+-1532647252
+-1347177031
+-1111572543
+-1027423292
+-993737787
+-909126188
+-791951680
+-1094662971
+-1010976583
+-1077557561
+-926234168
+-960117565
+-1010580541
+-1010580541
+-993737275
+-976828727
+-858862388
+-842018867
+-892745528
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-2021161081
+-2021161081
+-2021161081
+-2021161081
+-2021029750
+-1902665300
+-1331061089
+-1498696776
+-1111638336
+-1044200508
+-960051513
+-943208506
+-960183613
+-959787056
+-842414913
+-1111505724
+-1061571660
+-1178615358
+-976763195
+-993869119
+-1044266559
+-1044266558
+-1010514748
+-993737531
+-976828730
+-960051513
+-926299960
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1633771874
+-1633771874
+-1633771874
+-1633771874
+-1633640545
+-1566003016
+-1196315211
+-1077754681
+-926365497
+-960117307
+-960051514
+-943208505
+-977026367
+-1010382389
+-909721155
+-1128217403
+-1044728909
+-1178680894
+-993671740
+-1010646335
+-1061109568
+-1061109567
+-1010514748
+-1010580541
+-1027291707
+-976960572
+-943077176
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1499027802
+-1499027802
+-1499027802
+-1499027802
+-1498830426
+-1498696257
+-1078083895
+-774910772
+-875836728
+-943340348
+-1010514748
+-976894266
+-977026367
+-1027291448
+-960249924
+-1128217144
+-926762054
+-1060714297
+-960117308
+-993803326
+-1061175361
+-1077952575
+-1027292221
+-1010580798
+-976696630
+-909588536
+-926299960
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1499027802
+-1499027802
+-1499027802
+-1499027802
+-1498830426
+-1498696257
+-1078083895
+-774910772
+-875836728
+-943340348
+-1010514748
+-976894266
+-977026367
+-1027291448
+-960249924
+-1128217144
+-926762054
+-1060714297
+-960117308
+-993803326
+-1061175361
+-1077952575
+-1027292221
+-1010580798
+-976696630
+-909588536
+-926299960
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1499027802
+-1499027802
+-1499027802
+-1499027802
+-1498830426
+-1498696257
+-1078083895
+-774910772
+-875836728
+-943340348
+-1010514748
+-976894266
+-977026367
+-1027291448
+-960249924
+-1128217144
+-926762054
+-1060714297
+-960117308
+-993803326
+-1061175361
+-1077952575
+-1027292221
+-1010580798
+-976696630
+-909588536
+-926299960
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1499027802
+-1499027802
+-1499027802
+-1499027802
+-1498830426
+-1498696257
+-1078083895
+-774910772
+-875836728
+-943340348
+-1010514748
+-976894266
+-977026367
+-1027291448
+-960249924
+-1128217144
+-926762054
+-1060714297
+-960117308
+-993803326
+-1061175361
+-1077952575
+-1027292221
+-1010580798
+-976696630
+-909588536
+-926299960
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1499027802
+-1499027802
+-1499027802
+-1499027802
+-1498830426
+-1498696257
+-1078083895
+-774910772
+-875836728
+-943340348
+-1010514748
+-976894266
+-977026367
+-1027291448
+-960249924
+-1128217144
+-926762054
+-1060714297
+-960117308
+-993803326
+-1061175361
+-1077952575
+-1027292221
+-1010580798
+-976696630
+-909588536
+-926299960
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1499027802
+-1499027802
+-1499027802
+-1499027802
+-1498830426
+-1498696257
+-1078083895
+-774910772
+-875836728
+-943340348
+-1010514748
+-976894266
+-977026367
+-1027291448
+-960249924
+-1128217144
+-926762054
+-1060714297
+-960117308
+-993803326
+-1061175361
+-1077952575
+-1027292221
+-1010580798
+-976696630
+-909588536
+-926299960
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1499027802
+-1499027802
+-1499027802
+-1499027802
+-1498830426
+-1498696257
+-1078083895
+-774910772
+-875836728
+-943340348
+-1010514748
+-976894266
+-977026367
+-1027291448
+-960249924
+-1128217144
+-926762054
+-1060714297
+-960117308
+-993803326
+-1061175361
+-1077952575
+-1027292221
+-1010580798
+-976696630
+-909588536
+-926299960
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1499027802
+-1499027802
+-1499027802
+-1499027802
+-1498830426
+-1498696257
+-1078083895
+-774910772
+-875836728
+-943340348
+-1010514748
+-976894266
+-977026367
+-1027291448
+-960249924
+-1128217144
+-926762054
+-1060714297
+-960117308
+-993803326
+-1061175361
+-1077952575
+-1027292221
+-1010580798
+-976696630
+-909588536
+-926299960
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1499027802
+-1499027802
+-1499027802
+-1499027802
+-1498830426
+-1498696257
+-1078083895
+-774910772
+-875836728
+-943340348
+-1010514748
+-976894266
+-977026367
+-1027291448
+-960249924
+-1128217144
+-926762054
+-1060714297
+-960117308
+-993803326
+-1061175361
+-1077952575
+-1027292221
+-1010580798
+-976696630
+-909588536
+-926299960
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1499027802
+-1499027802
+-1499027802
+-1499027802
+-1498830426
+-1498696257
+-1078083895
+-774910772
+-875836728
+-943340348
+-1010514748
+-976894266
+-977026367
+-1027291448
+-960249924
+-1128217144
+-926762054
+-1060714297
+-960117308
+-993803326
+-1061175361
+-1077952575
+-1027292221
+-1010580798
+-976696630
+-909588536
+-926299960
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1499027802
+-1499027802
+-1499027802
+-1499027802
+-1498830426
+-1498696257
+-1078083895
+-774910772
+-875836728
+-943340348
+-1010514748
+-976894266
+-977026367
+-1027291448
+-960249924
+-1128217144
+-926762054
+-1060714297
+-960117308
+-993803326
+-1061175361
+-1077952575
+-1027292221
+-1010580798
+-976696630
+-909588536
+-926299960
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1499027802
+-1499027802
+-1499027802
+-1499027802
+-1498830426
+-1498696257
+-1078083895
+-774910772
+-875836728
+-943340348
+-1010514748
+-976894266
+-977026367
+-1027291448
+-960249924
+-1128217144
+-926762054
+-1060714297
+-960117308
+-993803326
+-1061175361
+-1077952575
+-1027292221
+-1010580798
+-976696630
+-909588536
+-926299960
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1499027802
+-1499027802
+-1499027802
+-1499027802
+-1498830426
+-1498696257
+-1078083895
+-774910772
+-875836728
+-943340348
+-1010514748
+-976894266
+-977026367
+-1027291448
+-960249924
+-1128217144
+-926762054
+-1060714297
+-960117308
+-993803326
+-1061175361
+-1077952575
+-1027292221
+-1010580798
+-976696630
+-909588536
+-926299960
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1499027802
+-1499027802
+-1499027802
+-1499027802
+-1498830426
+-1498696257
+-1078083895
+-774910772
+-875836728
+-943340348
+-1010514748
+-976894266
+-977026367
+-1027291448
+-960249924
+-1128217144
+-926762054
+-1060714297
+-960117308
+-993803326
+-1061175361
+-1077952575
+-1027292221
+-1010580798
+-976696630
+-909588536
+-926299960
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1499027802
+-1499027802
+-1499027802
+-1499027802
+-1498830426
+-1498696257
+-1078083895
+-774910772
+-875836728
+-943340348
+-1010514748
+-976894266
+-977026367
+-1027291448
+-960249924
+-1128217144
+-926762054
+-1060714297
+-960117308
+-993803326
+-1061175361
+-1077952575
+-1027292221
+-1010580798
+-976696630
+-909588536
+-926299960
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1499027802
+-1499027802
+-1499027802
+-1499027802
+-1498830426
+-1498696257
+-1078083895
+-774910772
+-875836728
+-943340348
+-1010514748
+-976894266
+-977026367
+-1027291448
+-960249924
+-1128217144
+-926762054
+-1060714297
+-960117308
+-993803326
+-1061175361
+-1077952575
+-1027292221
+-1010580798
+-976696630
+-909588536
+-926299960
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1499027802
+-1499027802
+-1499027802
+-1499027802
+-1498830426
+-1498696257
+-1078083895
+-774910772
+-875836728
+-943340348
+-1010514748
+-976894266
+-977026367
+-1027291448
+-960249924
+-1128217144
+-926762054
+-1060714297
+-960117308
+-993803326
+-1061175361
+-1077952575
+-1027292221
+-1010580798
+-976696630
+-909588536
+-926299960
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-2004318072
+-2004318072
+-2012541882
+1795620730
+318794160
+-1488371695
+1863053564
+-1070858208
+11668988
+1410230210
+293725365
+-1115694074
+1465742650
+-1810615036
+67372036
+67372036
+-2004318072
+-2004318072
+-2012541882
+1795620730
+318794160
+-1488371695
+1863053564
+-1070858208
+11668988
+1410230210
+293725365
+-1115694074
+1465742650
+-1810615036
+67372036
+67372036
+-2004318072
+-2004318072
+-2012541882
+1795620730
+318794160
+-1488371695
+1863053564
+-1070858208
+11668988
+1410230210
+293725365
+-1115694074
+1465742650
+-1810615036
+67372036
+67372036
+-2004318072
+-2004318072
+-2012541882
+1795620730
+318794160
+-1488371695
+1863053564
+-1070858208
+11668988
+1410230210
+293725365
+-1115694074
+1465742650
+-1810615036
+67372036
+67372036
+-2004318072
+-2004318072
+-2012541882
+1795620730
+318794160
+-1488371695
+1863053564
+-1070858208
+11668988
+1410230210
+293725365
+-1115694074
+1465742650
+-1810615036
+67372036
+67372036
+-2004318072
+-2004318072
+-2012541882
+1795620730
+318794160
+-1488371695
+1863053564
+-1070858208
+11668988
+1410230210
+293725365
+-1115694074
+1465742650
+-1810615036
+67372036
+67372036
+-2004318072
+-2004318072
+-2012541882
+1795620730
+318794160
+-1488371695
+1863053564
+-1070858208
+11668988
+1410230210
+293725365
+-1115694074
+1465742650
+-1810615036
+67372036
+67372036
+-2004318072
+-2004318072
+-2012541882
+1795620730
+318794160
+-1488371695
+1863053564
+-1070858208
+11668988
+1410230210
+293725365
+-1115694074
+1465742650
+-1810615036
+67372036
+67372036
+-2004318072
+-2004318072
+-2012541882
+1795620730
+318794160
+-1488371695
+1863053564
+-1070858208
+11668988
+1410230210
+293725365
+-1115694074
+1465742650
+-1810615036
+67372036
+67372036
+1061109567
+1061109567
+1058067648
+-848375510
+-311739113
+-1401952840
+872432650
+1818045202
+-2008964585
+1066607525
+1144596224
+287114710
+-737780114
+326555912
+134744072
+134744072
+623191333
+623191333
+622920139
+1376002693
+-1654015917
+-713227752
+-1104084778
+-872377847
+26784305
+-1335358413
+-872071398
+3932340
+-754495516
+340786654
+-555819298
+-555819298
+-1482184793
+-1482184793
+-1487470080
+-153151359
+1491528586
+-367999253
+-2106914959
+1863709059
+475229977
+1973361285
+203130537
+349789189
+-1433002694
+5669437
+1027423549
+1027423549
+1768515945
+1768515945
+1769430641
+1736666723
+1787125097
+1953067366
+1836279131
+-2023661204
+1835821165
+2104255337
+1751479657
+1801547877
+1719032184
+1852534911
+2139062143
+2139062143
+1886417008
+1886417008
+1885963872
+1700946541
+1901887328
+1852471412
+1851946349
+1786016097
+1785617258
+2086700134
+1652120175
+1634890090
+1902473060
+1734569067
+1802201963
+1802201963
+2021161080
+2021161080
+2019259747
+1801813605
+1735353453
+1634885228
+1869112940
+1818648702
+1802008180
+1634626669
+-2124843666
+1935045237
+1617980004
+1902799477
+1970632053
+1970632053
+1802201963
+1802201963
+1802330990
+1651269487
+1902865246
+2136570219
+1718576747
+1785621610
+1835822698
+1852531836
+1852861548
+1585212010
+1768842616
+1768512132
+-2071690108
+-2071690108
+1734829927
+1734829927
+1735421294
+1751935851
+1802202477
+1818849131
+1752001387
+1785817963
+1835887721
+1819043692
+1802529389
+1836214375
+1835887724
+1751805036
+1819044972
+1819044972
+1802201963
+1802201963
+1802201963
+1802201963
+1802201964
+1819110766
+1869705842
+1920102768
+1903260017
+1903260017
+1920036975
+1852665195
+1819110764
+1785359470
+1852730990
+1852730990
+1802201963
+1802201963
+1802201963
+1802201963
+1802201964
+1819110767
+1920234870
+1987409012
+1920103026
+1920103026
+1886416750
+1852664940
+1819110764
+1785359470
+1852730990
+1852730990
+1802201963
+1802201963
+1802201963
+1802201963
+1802201964
+1819110766
+1869705843
+1936879984
+1852730990
+1852730991
+1869573998
+1852665196
+1819110764
+1785359470
+1852730990
+1852730990
+1802201963
+1802201963
+1802201963
+1802201963
+1802201964
+1819110765
+1835954031
+1869573740
+1802136170
+1785358955
+1835953773
+1835887724
+1819110764
+1785359470
+1852730990
+1852730990
+1802201963
+1802201963
+1802201963
+1802201963
+1802201964
+1819110766
+1835954032
+1886350957
+1802136170
+1785358955
+1802267756
+1819044972
+1819110764
+1785359470
+1852730990
+1852730990
+1802201963
+1802201963
+1802201963
+1802201963
+1802201964
+1819110766
+1852862833
+1903259758
+1852665197
+1835887981
+1819044972
+1819044972
+1819110764
+1785359470
+1852730990
+1852730990
+1802201963
+1802201963
+1802201963
+1802201963
+1802201964
+1819044972
+1835954033
+1920036718
+1835887980
+1835822188
+1802201963
+1802202219
+1819045228
+1802202222
+1852730990
+1852730990
+1819044972
+1819044972
+1819044972
+1819044972
+1802136170
+1785424747
+1835954290
+1936879469
+1819044971
+1802201962
+1785359211
+1802201963
+1802267756
+1802202221
+1835887981
+1835887981
+1819044972
+1819044972
+1819044972
+1819044972
+1802136170
+1785358954
+1819177332
+1970433901
+1802333291
+1802135912
+1768581738
+1785358954
+1802201963
+1802201963
+1802201963
+1802201963
+1835887981
+1835887981
+1835887981
+1835887980
+1802136170
+1785358954
+1802400630
+2004053869
+1819044714
+1768450152
+1751672936
+1751672937
+1785358954
+1785358954
+1785358954
+1785358954
+1869573999
+1869573999
+1869573999
+1869573998
+1835756395
+1802201962
+1819309433
+2037739630
+1802135912
+1751606886
+1734829927
+1734829928
+1768581738
+1785358954
+1785358954
+1785358954
+1936946035
+1936946035
+1936946035
+1936946034
+1903128431
+1869573998
+1869838202
+2020962670
+1818913385
+1768515688
+1768515945
+1768515946
+1785424747
+1802201963
+1802201963
+1802201963
+2021161080
+2021161080
+2021161080
+2021161079
+1970500467
+1936946034
+1936946292
+1920102768
+1852665198
+1852731247
+1869573999
+1869573998
+1835887981
+1835887981
+1835887981
+1835887981
+2122219134
+2122219134
+2122219134
+2122219133
+2071492728
+2021161080
+1987078758
+1718317427
+1953723252
+1987541111
+1987409269
+1970632051
+1903194224
+1886417008
+1886417008
+1886417008
+-2139062144
+-2139062144
+-2139062144
+-2139062145
+2122021755
+2071690108
+2003722842
+1499754615
+2037938298
+2071756156
+2071624057
+2038004088
+2004186485
+1970632053
+1970632053
+1970632053
+-2139062144
+-2139062144
+-2139062144
+-2139062145
+2122087548
+2088533117
+2054120022
+1415540857
+2105244283
+2088533373
+2088467580
+2088467323
+2054847098
+2054781305
+2038004089
+2038004089
+-2139062144
+-2139062144
+-2139062144
+-2139062145
+2122087548
+2088533118
+2088003675
+1432252282
+2122021498
+2054847098
+2054847355
+2071690107
+2071690364
+2088533116
+2088533116
+2088533116
+2139062143
+2139062143
+2139062143
+2139062142
+2105310332
+2088533118
+2105044320
+1499492217
+2071426935
+2004318071
+2021226873
+2038004089
+2038070139
+2071690107
+2071690107
+2071690107
+2071690107
+2071690107
+2071690107
+2071690106
+2054847098
+2054847100
+2071556452
+1549889141
+2021029494
+1987475062
+1987540855
+2004318071
+2021227130
+2054847098
+2054847098
+2054847098
+1987475062
+1987475062
+1987475062
+1987475062
+1987540855
+2004318072
+2038002535
+1617194612
+1970632310
+1987475062
+2004318328
+2021161080
+2038004346
+2054847098
+2054847098
+2054847098
+1970632053
+1970632053
+1970632053
+1970632053
+1987540855
+2004318071
+1987539819
+1735028852
+1987475319
+2004318071
+2021226873
+2038004089
+2038069882
+2054847098
+2054847098
+2054847098
+2038004089
+2038004089
+2038004089
+2038004089
+2021161080
+2021161079
+2004317554
+1886549366
+2021292666
+2054847098
+2054847098
+2054847098
+2071690107
+2071690107
+2071690107
+2071690107
+2071690107
+2071690107
+2071690107
+2071690107
+2071690107
+2071690106
+2037938296
+2038069625
+2038135675
+2071690107
+2054847098
+2054847098
+2071690364
+2088533116
+2088533116
+2088533116
+2071690107
+2071690107
+2071690107
+2071690107
+2071690107
+2071690107
+2054781820
+2122218620
+2071624314
+2054847098
+2054847098
+2054847099
+2088598909
+2105376125
+2105376125
+2105376125
+2088533116
+2088533116
+2088533116
+2088533116
+2071690107
+2071690107
+2088533373
+2105376125
+2071690107
+2071690107
+2088533373
+2105376125
+2122219134
+2122219134
+2122219134
+2122219134
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2105441918
+2122219134
+2105310332
+2088533117
+2122350720
+-2139062144
+2139062143
+2139062143
+2139062143
+2139062143
+2105376125
+2105376125
+2105376125
+2105376125
+2088598909
+2105376125
+2122284927
+2139062143
+2139062143
+2139062143
+-2122153342
+-2105376126
+-2122219135
+-2122219135
+-2122219135
+-2122219135
+2122219134
+2122219134
+2122219134
+2122219134
+2122219391
+2139062143
+-2139062144
+-2139062144
+-2122219135
+-2122219134
+-2088467324
+-2071690108
+-2088533117
+-2088533117
+-2088533117
+-2088533117
+2139062143
+2139062143
+2139062143
+2139062143
+-2139061887
+-2122219135
+-2105375869
+-2088533117
+-2088532860
+-2071690107
+-2054781049
+-2021161082
+-2054912892
+-2071690108
+-2071690108
+-2071690108
+2139062143
+2139062143
+2139062143
+2139062143
+-2138996094
+-2105376126
+-2088467324
+-2071690108
+-2071624315
+-2054847099
+-2037938297
+-2021161081
+-2054847099
+-2054847099
+-2054847099
+-2054847099
+-2139062144
+-2139062144
+-2139062144
+-2139062144
+-2105310076
+-2071690108
+-2071624315
+-2054847099
+-2054846842
+-2038004090
+-2038003833
+-2021161082
+-2038069883
+-2054847099
+-2054847099
+-2054847099
+-2139062144
+-2139062144
+-2139062144
+-2139062144
+-2105310076
+-2071690108
+-2071624315
+-2054847099
+-2054846842
+-2038004090
+-2038003833
+-2021161082
+-2038069883
+-2054847099
+-2054847099
+-2054847099
+-2139062144
+-2139062144
+-2139062144
+-2139062144
+-2105310076
+-2071690108
+-2071624315
+-2054847099
+-2054846842
+-2038004090
+-2038003833
+-2021161082
+-2038069883
+-2054847099
+-2054847099
+-2054847099
+-2139062144
+-2139062144
+-2139062144
+-2139062144
+-2105310076
+-2071690108
+-2071624315
+-2054847099
+-2054846842
+-2038004090
+-2038003833
+-2021161082
+-2038069883
+-2054847099
+-2054847099
+-2054847099
+-2139062144
+-2139062144
+-2139062144
+-2139062144
+-2105310076
+-2071690108
+-2071624315
+-2054847099
+-2054846842
+-2038004090
+-2038003833
+-2021161082
+-2038069883
+-2054847099
+-2054847099
+-2054847099
+-2139062144
+-2139062144
+-2139062144
+-2139062144
+-2105310076
+-2071690108
+-2071624315
+-2054847099
+-2054846842
+-2038004090
+-2038003833
+-2021161082
+-2038069883
+-2054847099
+-2054847099
+-2054847099
+-2139062144
+-2139062144
+-2139062144
+-2139062144
+-2105310076
+-2071690108
+-2071624315
+-2054847099
+-2054846842
+-2038004090
+-2038003833
+-2021161082
+-2038069883
+-2054847099
+-2054847099
+-2054847099
+-2139062144
+-2139062144
+-2139062144
+-2139062144
+-2105310076
+-2071690108
+-2071624315
+-2054847099
+-2054846842
+-2038004090
+-2038003833
+-2021161082
+-2038069883
+-2054847099
+-2054847099
+-2054847099
+-2139062144
+-2139062144
+-2139062144
+-2139062144
+-2105310076
+-2071690108
+-2071624315
+-2054847099
+-2054846842
+-2038004090
+-2038003833
+-2021161082
+-2038069883
+-2054847099
+-2054847099
+-2054847099
+2088533116
+2088533116
+2082108904
+71042816
+13570461
+323496968
+621757444
+-1470349338
+-519240938
+2067997850
+47811084
+1507865859
+-896700156
+1544020822
+1448498774
+1448498774
+2088533116
+2088533116
+2082108904
+71042816
+13570461
+323496968
+621757444
+-1470349338
+-519240938
+2067997850
+47811084
+1507865859
+-896700156
+1544020822
+1448498774
+1448498774
+2088533116
+2088533116
+2082108904
+71042816
+13570461
+323496968
+621757444
+-1470349338
+-519240938
+2067997850
+47811084
+1507865859
+-896700156
+1544020822
+1448498774
+1448498774
+2088533116
+2088533116
+2082108904
+71042816
+13570461
+323496968
+621757444
+-1470349338
+-519240938
+2067997850
+47811084
+1507865859
+-896700156
+1544020822
+1448498774
+1448498774
+2088533116
+2088533116
+2082108904
+71042816
+13570461
+323496968
+621757444
+-1470349338
+-519240938
+2067997850
+47811084
+1507865859
+-896700156
+1544020822
+1448498774
+1448498774
+2088533116
+2088533116
+2082108904
+71042816
+13570461
+323496968
+621757444
+-1470349338
+-519240938
+2067997850
+47811084
+1507865859
+-896700156
+1544020822
+1448498774
+1448498774
+2088533116
+2088533116
+2082108904
+71042816
+13570461
+323496968
+621757444
+-1470349338
+-519240938
+2067997850
+47811084
+1507865859
+-896700156
+1544020822
+1448498774
+1448498774
+2088533116
+2088533116
+2082108904
+71042816
+13570461
+323496968
+621757444
+-1470349338
+-519240938
+2067997850
+47811084
+1507865859
+-896700156
+1544020822
+1448498774
+1448498774
+2088533116
+2088533116
+2082108904
+71042816
+13570461
+323496968
+621757444
+-1470349338
+-519240938
+2067997850
+47811084
+1507865859
+-896700156
+1544020822
+1448498774
+1448498774
+1347440720
+1347440720
+1356140841
+-1729396130
+52075278
+1779590153
+1439563898
+426969716
+285197444
+-1497659175
+-1103364083
+-1003785088
+1960978266
+798885935
+791621423
+791621423
+1465341783
+1465341783
+1459883960
+739814165
+-660048124
+423751661
+-314827794
+393159833
+415208504
+377722218
+1845518339
+2030816833
+-925078269
+-1307973057
+1061109567
+1061109567
+471604252
+471604252
+469770322
+219843939
+7879442
+-786816993
+-392705524
+-1994455773
+-1862230015
+-1751016498
+1971042074
+-1803773535
+1726109447
+-1137745078
+1246382666
+1246382666
+-2021161081
+-2021161081
+-2021359257
+1871148909
+-2105316487
+2054910080
+-2021038210
+2004841091
+2039834738
+-2038471563
+-1889043582
+1954511221
+2004649844
+2140237951
+2139062143
+2139062143
+1835887981
+1835887981
+1837267336
+2104850562
+-2089121667
+1989173377
+2037547644
+2005433985
+-2056680328
+2021426296
+2022206348
+-2106361734
+2105504129
+1987478911
+2139062143
+2139062143
+2122219134
+2122219134
+2123067008
+2088139893
+2056025726
+1970829184
+2121368444
+-2140046218
+1971290752
+2004647548
+2038137206
+2021624184
+1937470335
+1988061815
+2004318071
+2004318071
+2122219134
+2122219134
+2121825410
+1904312189
+-2056159625
+-1921939849
+2121694330
+-1972663935
+2054850162
+2088663934
+-2122806153
+2072475013
+2072279167
+2071821946
+2054847098
+2054847098
+2071690107
+2071690107
+2071298171
+2071690876
+2054913659
+2105113725
+2121955963
+2088533373
+2088336762
+2122152573
+-2139259015
+2088531835
+2122152829
+2105245052
+2088533116
+2088533116
+2071690107
+2071690107
+2071690107
+2054847099
+2071755900
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2105376125
+2105376125
+2105375867
+2071624058
+2071755900
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2105376125
+2105376125
+2105375868
+2088467323
+2071755900
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2105376125
+2105376125
+2105375869
+2105376124
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533117
+2122219390
+2105310332
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2038004089
+2038004089
+2038070142
+2139193985
+2122087548
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2038004089
+2038004089
+2038070141
+2122351232
+2122087548
+2071690107
+2088599167
+2138930300
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2071690107
+2071690107
+2071690108
+2105441918
+2105244539
+2071690107
+2088599168
+2138995836
+2071690107
+2088533373
+2071690107
+2071690107
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533115
+2071690107
+2088665217
+-2139128452
+2071690108
+2088533373
+2071690107
+2071690107
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533373
+2105507969
+-2139128452
+2088533116
+2088533116
+2071690107
+2071690107
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088598910
+2122284927
+2122284928
+2139061886
+2122153340
+2088467323
+2071690107
+2071690107
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2105376383
+-2138996094
+-2139128193
+2122284927
+2139061885
+2088467066
+2071690107
+2071690107
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533117
+2105442176
+-2105310076
+-2122351235
+2105507968
+-2139062403
+2088401273
+2054912891
+2071690107
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2105442433
+-2088401018
+-2105574020
+2105508225
+-2122219394
+2088401016
+2054912891
+2071690107
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533631
+-2122153086
+-2122417028
+2105508226
+-2105376642
+2105244025
+2038069882
+2054847097
+2071755901
+2105376125
+2105376125
+2105376125
+2105376125
+2105376125
+2105376125
+2105376124
+2071690108
+2088599166
+2122153084
+2105442177
+-2122219393
+2105309817
+2054847354
+2054847098
+2071755901
+2105376382
+2122219134
+2122219134
+2088533116
+2088533116
+2088533116
+2088533116
+2054847098
+2054847099
+2088598908
+2071821696
+-2139062145
+2122153084
+2088664958
+2139061885
+2071756157
+2105442175
+2139062143
+2139062143
+2105376125
+2105376125
+2105376125
+2105376125
+2105376125
+2105376125
+2105441659
+2071756159
+2139193471
+2138996093
+2122350719
+-2139128194
+2105376125
+2122219391
+2139062143
+2139062143
+2139062143
+2139062143
+2139062143
+2139062143
+2139127936
+-2139062144
+-2138997124
+2088599167
+-2138996095
+-2122219135
+-2105310333
+-2105442175
+-2122284928
+-2122219134
+-2105376126
+-2105376126
+-2088533117
+-2088533117
+-2088533117
+-2088533117
+-2105376126
+-2105376125
+-2071756417
+2122219394
+-2088467067
+-2038004089
+-1987343478
+-1970698105
+-2054847099
+-2054847098
+-2038004090
+-2038004090
+-2004318072
+-2004318072
+-2004318072
+-2004318072
+-2038004090
+-2038004088
+-2004318589
+-2122218619
+-2054781305
+-2004317814
+-1936946293
+-1987541112
+-2021095288
+-2004318072
+-2004318072
+-2004318072
+-1920103027
+-1920103027
+-1920103027
+-1920103028
+-1970697847
+-1987475061
+-1920104058
+-2054846585
+-2021226617
+-2004252021
+-1953855353
+-2054913147
+-2037872504
+-2021161338
+-2038004090
+-2038004090
+-1903260018
+-1903260018
+-1903325811
+-1936946037
+-2021292667
+-2037938038
+-1936881016
+-2037872248
+-2021226873
+-2004252279
+-1987541114
+-2038135675
+-2054781563
+-2054913149
+-2088533117
+-2088533117
+-1936946036
+-1936946036
+-1936946037
+-1953854841
+-2071887486
+-2071624056
+-1970566776
+-2021161082
+-2038004090
+-2037938041
+-2054912892
+-2071690365
+-2105376127
+-2122219135
+-2122219135
+-2122219135
+-1953789045
+-1953789045
+-1953789303
+-1987541115
+-2071887485
+-2088401273
+-2004318330
+-2038070139
+-2054781306
+-2038004091
+-2105441919
+-2122219135
+2139062143
+2139062143
+2139062143
+2139062143
+-1936946036
+-1936946036
+-1937011830
+-1987540857
+-2021227130
+-2038003833
+-2021227131
+-2071756157
+-2071624315
+-2054847102
+2122153341
+2105376125
+2071690107
+2071690107
+2071690107
+2071690107
+-1953789045
+-1953789045
+-1953789303
+-2004318329
+-2021161338
+-2038004091
+-2071756158
+-2122285185
+-2139062144
+-2139062146
+2071624314
+2054847098
+2021161080
+2021161080
+2021161080
+2021161080
+-1987475063
+-1987475063
+-1987540857
+-2038069884
+-2071690109
+-2088598911
+-2139127937
+2122153083
+2054781305
+2038004088
+2021095287
+2004318071
+1987475062
+1987475062
+1987475062
+1987475062
+-2054847099
+-2054847099
+-2054912893
+-2105441920
+2139062142
+2122153340
+2088467579
+2054781303
+1987409269
+1970632054
+2004252278
+1987475062
+1987475062
+1987475062
+1987475062
+1987475062
+-2122219135
+-2122219135
+-2122284929
+2122153340
+2071624314
+2054781304
+2021161080
+2004252277
+1987475062
+1987475062
+2004318071
+2004318071
+2004318071
+2004318071
+2004318071
+2004318071
+2122219134
+2122219134
+2122218877
+2088467065
+2021161080
+2037938295
+1987475318
+1970631797
+1987540855
+2004318071
+1987540855
+2004318071
+2004318071
+2004318071
+2004318071
+2004318071
+2122219134
+2122219134
+2122218877
+2088467065
+2021161080
+2037938295
+1987475318
+1970631797
+1987540855
+2004318071
+1987540855
+2004318071
+2004318071
+2004318071
+2004318071
+2004318071
+2122219134
+2122219134
+2122218877
+2088467065
+2021161080
+2037938295
+1987475318
+1970631797
+1987540855
+2004318071
+1987540855
+2004318071
+2004318071
+2004318071
+2004318071
+2004318071
+2122219134
+2122219134
+2122218877
+2088467065
+2021161080
+2037938295
+1987475318
+1970631797
+1987540855
+2004318071
+1987540855
+2004318071
+2004318071
+2004318071
+2004318071
+2004318071
+2122219134
+2122219134
+2122218877
+2088467065
+2021161080
+2037938295
+1987475318
+1970631797
+1987540855
+2004318071
+1987540855
+2004318071
+2004318071
+2004318071
+2004318071
+2004318071
+2122219134
+2122219134
+2122218877
+2088467065
+2021161080
+2037938295
+1987475318
+1970631797
+1987540855
+2004318071
+1987540855
+2004318071
+2004318071
+2004318071
+2004318071
+2004318071
+2122219134
+2122219134
+2122218877
+2088467065
+2021161080
+2037938295
+1987475318
+1970631797
+1987540855
+2004318071
+1987540855
+2004318071
+2004318071
+2004318071
+2004318071
+2004318071
+2122219134
+2122219134
+2122218877
+2088467065
+2021161080
+2037938295
+1987475318
+1970631797
+1987540855
+2004318071
+1987540855
+2004318071
+2004318071
+2004318071
+2004318071
+2004318071
+2122219134
+2122219134
+2122218877
+2088467065
+2021161080
+2037938295
+1987475318
+1970631797
+1987540855
+2004318071
+1987540855
+2004318071
+2004318071
+2004318071
+2004318071
+2004318071
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+33686018
+33686018
+33686018
+33686018
+33556736
+101711872
+131586
+983040
+1645216768
+-923866690
+-1634992105
+-381159243
+-2125989463
+-501542141
+1009356207
+-1173092096
+-349370368
+1673894321
+-1666455276
+1585623557
+1249435036
+1359506363
+1117524187
+411107390
+-754904668
+452987648
+-2043734526
+-1775300604
+67372036
+67372036
+67372036
+67372036
+-1313754703
+-1313754703
+-1313754703
+-1313754703
+-1309682045
+1279267943
+1180434447
+906297348
+-542962148
+851968
+928779776
+117441793
+2826
+50331649
+17172992
+12
+-1174269933
+-1125321554
+-1701967616
+-247337284
+1984690357
+-986775529
+15138947
+285736960
+-115140859
+1406306994
+-136970240
+527616
+0
+0
+0
+0
+151587081
+151587081
+151587081
+151587081
+156343830
+520355843
+1588856326
+1436748036
+465731963
+1560315777
+-330563568
+958070799
+1868365829
+256
+-1186462462
+335741440
+201786368
+787456
+34537480
+268439552
+-1240397824
+-791675980
+-1484974827
+-481756490
+1867117742
+-241560319
+137049740
+1598543662
+774778414
+774778414
+774778414
+774778414
+252645135
+252645135
+252645135
+252645135
+256007959
+-725677600
+-89125152
+-869396887
+1838387480
+1393318227
+-1843897185
+1961072414
+471501765
+315661956
+-971009632
+-1815961607
+-1347692506
+-1977332225
+1793149445
+-988945568
+227529292
+891396299
+-1353946026
+657609427
+453895015
+145731089
+50397201
+920458
+-1970632054
+-1970632054
+-1970632054
+-1970632054
+218959117
+218959117
+218959117
+218959117
+218235655
+101018884
+491782164
+-1643577327
+151977984
+210894835
+1947009024
+83980421
+-1283961224
+-248617515
+-1733071193
+637779792
+-331939642
+1319415853
+-648088662
+-481558036
+1891297551
+24196662
+1750599371
+15602043
+-1406242702
+1674510152
+-223527917
+1731951319
+-673720361
+-673720361
+-673720361
+-673720361
+-1077952577
+-1077952577
+-1077952577
+-1077952577
+-1075729206
+577324646
+-1305717895
+-996832804
+408010295
+-2099408356
+-1974197762
+674089301
+-1676449643
+-1592993586
+-624834520
+927758521
+543050036
+209181738
+1254105424
+-1700013127
+-156328020
+-1857545599
+-1282481477
+-1892374695
+1012306117
+2069285186
+1347960866
+-318242560
+0
+0
+0
+0
+-1970632054
+-1970632054
+-1970632054
+-1970632054
+-1964527726
+240140813
+1116642918
+1447710607
+-5333940
+-445870070
+-1691278170
+-1185106354
+-1366594010
+-955587938
+1383857056
+-1570213822
+1452953585
+1809735388
+2015690197
+-102961302
+1658164377
+-2090372439
+1428185247
+-896864459
+1411269094
+1253619585
+1561746310
+1068106381
+-1920103027
+-1920103027
+-1920103027
+-1920103027
+-640034343
+-640034343
+-640034343
+-640034343
+-641901875
+-1318565045
+1178002294
+-1351070257
+731835885
+923179858
+-852324035
+-716827755
+-527117405
+-1504395362
+-753577040
+-1081723431
+-1276231972
+880826125
+-1200264994
+1671905573
+-1915227737
+1082347499
+975530879
+-1237484990
+835185263
+1152039327
+-1716598685
+-690680568
+134744072
+134744072
+134744072
+134744072
+1313754702
+1313754702
+1313754702
+1313754702
+1313755470
+1313754703
+1280200270
+1313754446
+1313754702
+1313754702
+1296780878
+1347048274
+1364217936
+1347506256
+1364283729
+1364283729
+1364282961
+1364283471
+1313623116
+1280068683
+1246316873
+1229539401
+1145521991
+1195787079
+1212762440
+1145653576
+1195853125
+1145454899
+858993459
+858993459
+858993459
+858993459
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754701
+1313754960
+1364349522
+1381060945
+1364283729
+1364283729
+1364283729
+1364283729
+1364283728
+1296845900
+1280068683
+1263159882
+1246382665
+1212630855
+1195853639
+1212696648
+1212696647
+1195853122
+1145454131
+858993459
+858993459
+858993459
+858993459
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1330597711
+1330597711
+1330597711
+1330597711
+1330598225
+1381192531
+1364283729
+1364283729
+1364283729
+1364283729
+1364283729
+1364283728
+1313688909
+1296911692
+1280002891
+1263225674
+1229473864
+1212696648
+1195853639
+1195853639
+1179076163
+1162231604
+875836468
+875836468
+875836468
+875836468
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1330597711
+1330597711
+1347440720
+1347440720
+1364283986
+1397969747
+1397903954
+1381126738
+1364283729
+1364283729
+1364283729
+1364283728
+1330531918
+1313754702
+1280068684
+1280068683
+1246316873
+1229539657
+1195853639
+1195853639
+1195918915
+1162297140
+875836468
+875836468
+875836468
+875836468
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754703
+1330663504
+1347440720
+1364283729
+1364283729
+1381126995
+1414813012
+1397903954
+1381126738
+1364283729
+1364283729
+1364283729
+1364283728
+1330531918
+1313754702
+1296911693
+1296911693
+1263225675
+1263225674
+1229473864
+1212696648
+1195919172
+1179074613
+892679477
+892679477
+892679477
+892679477
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754703
+1330663504
+1347440721
+1364349522
+1381126739
+1398035796
+1431655765
+1397969747
+1397969747
+1364283729
+1364283729
+1364283729
+1364283728
+1347374927
+1330597711
+1313754702
+1313754702
+1280068684
+1280068683
+1246316873
+1229539657
+1212761925
+1179140149
+892679477
+892679477
+892679477
+892679477
+1313754702
+1313754702
+1313754702
+1313754702
+1313754702
+1313754703
+1347506513
+1364283730
+1381192531
+1397969748
+1431656021
+1448432981
+1414746963
+1397969747
+1364283729
+1364283729
+1364283729
+1364283729
+1347440720
+1347440720
+1330597711
+1330597710
+1296845900
+1280068684
+1263225675
+1263225674
+1229539397
+1195917622
+909522486
+909522486
+909522486
+909522486
+1330597711
+1330597711
+1330597711
+1330597711
+1330597711
+1330597712
+1364349522
+1381126739
+1414878549
+1431655765
+1465406810
+1549161301
+1414552138
+1464357207
+1380865107
+1313690704
+1330859600
+1380929617
+1347375183
+1313492559
+1330467150
+1313623376
+1313754702
+1330597711
+1313688653
+1280068683
+1246382150
+1212760371
+858993459
+858993459
+858993459
+858993459
+1364283729
+1364283729
+1364283729
+1364283729
+1364283729
+1364283730
+1398035540
+1414812757
+1431721558
+1448498773
+1448629338
+1515671633
+1381194574
+1514885972
+1364088660
+1380800082
+1364479831
+1364283729
+1364218959
+1346849615
+1347375694
+1363890256
+1347374928
+1347440976
+1313688908
+1280068683
+1263159880
+1212957490
+842150450
+842150450
+842150450
+842150450
+1397969747
+1397969747
+1397969747
+1397969747
+1397969747
+1397969748
+1414878549
+1431655766
+1448564567
+1465341778
+1364677716
+1331188558
+1348163427
+1566333003
+1246910290
+1515410518
+1431589718
+1314148693
+1431526482
+1447906389
+1431720533
+1481334098
+1313754703
+1347440976
+1313688908
+1280002891
+1246382922
+1246709555
+858993459
+858993459
+858993459
+858993459
+1431655765
+1431655765
+1431655765
+1431655765
+1431655765
+1431655765
+1448498774
+1448498774
+1465341783
+1465341779
+1432246872
+1347966297
+1447837021
+1246388046
+1264211527
+1565478230
+1481987158
+1297502552
+1481529934
+1498959192
+1481464399
+1364217680
+1330597968
+1364283729
+1364283728
+1347374926
+1296912206
+1347767609
+960051513
+960051513
+960051513
+960051513
+1465341783
+1465341783
+1465341783
+1465341783
+1465341783
+1465341783
+1465341783
+1465341783
+1465341783
+1465341777
+1382112348
+1549422685
+1516263779
+-1571594909
+1582457424
+1800101723
+1550077791
+1633180517
+1632657747
+1617187420
+1583244373
+1532186712
+1481921620
+1414812756
+1448564566
+1448432981
+1448499031
+1482511680
+1077952576
+1077952576
+1077952576
+1077952576
+1482184792
+1482184792
+1482184792
+1482184792
+1482184792
+1482184792
+1482184792
+1482184792
+1465341783
+1465341784
+1705418628
+-1885303396
+-1702000536
+-1251039319
+-1788307314
+-1569216870
+2023517837
+-1635873641
+-1769364852
+-1953923434
+1973716106
+-1720479081
+1499027801
+1499027545
+1516002395
+1532648026
+1515871065
+1499288896
+1077952576
+1077952576
+1077952576
+1077952576
+1499027801
+1499027801
+1499027801
+1499027801
+1499027801
+1499027801
+1499027801
+1499027801
+1465341783
+1465341785
+-1971226458
+-1385408594
+-1685539155
+-1585137561
+-1132747360
+-1585399124
+-2086045542
+-1383359581
+-1903253617
+2138207123
+1990495889
+-1517838419
+1566399837
+1549556572
+1549622620
+1549491033
+1431458641
+1364479030
+909522486
+909522486
+909522486
+909522486
+1482184792
+1482184792
+1482184792
+1482184792
+1482184792
+1482184793
+1499093594
+1515870809
+1482118999
+1465341787
+1721604218
+1937667439
+2022611326
+1669046934
+-2090569873
+1565684594
+1500731753
+1885694828
+1802074218
+1666538091
+1633906015
+1886349178
+1616862814
+1566334044
+1515870553
+1482184790
+1380995151
+1330858806
+909522486
+909522486
+909522486
+909522486
+1482184792
+1482184792
+1482184792
+1482184792
+1482184792
+1482185050
+1499093594
+1515870552
+1465275990
+1465342038
+1432708703
+1347443814
+1924706171
+1229807201
+1549162835
+1179537491
+1465735515
+1482513759
+1616863072
+1751278696
+1683842141
+1684365409
+1583176796
+1532713817
+1482118999
+1448498773
+1414747219
+1398296124
+1010580540
+1010580540
+1010580540
+1010580540
+1465341783
+1465341783
+1465341783
+1465341783
+1465341783
+1465407577
+1499027801
+1515804759
+1448432982
+1448564563
+1313821011
+1398363487
+-1884912567
+1111901001
+961828946
+928213344
+1498962776
+1432115802
+1566465886
+1684235364
+1650220636
+1583242585
+1566399580
+1532648025
+1465275990
+1448498774
+1448367445
+1431850813
+1027423549
+1027423549
+1027423549
+1027423549
+1448498774
+1448498774
+1448498774
+1448498774
+1448498774
+1448564568
+1515936602
+1499027801
+1482184792
+1482184533
+1381061203
+1431721807
+1314741066
+1297240653
+1348363372
+-2002212714
+1583308639
+1600085856
+1600151648
+1616928863
+1566334044
+1549556828
+1566399580
+1549491034
+1482118999
+1465341784
+1465210198
+1431784764
+1010580540
+1010580540
+1010580540
+1010580540
+1448498774
+1448498774
+1448498774
+1448498774
+1448498774
+1448498519
+1482316377
+1482185307
+1532779354
+1498961748
+1364086350
+1313754701
+573523031
+1583374693
+1684229713
+2106555489
+1667063133
+1566399837
+1549556828
+1549556828
+1549556828
+1549556828
+1566399836
+1549556570
+1498962008
+1482184793
+1482053206
+1431785020
+1010580540
+1010580540
+1010580540
+1010580540
+1448498774
+1448498774
+1448498774
+1448498774
+1448498774
+1448564568
+1482250585
+1499093337
+1515870809
+1498962008
+1482118998
+1431589718
+572538465
+1717723745
+1531915047
+1382046042
+1549293656
+1482184793
+1499093594
+1515870811
+1549622621
+1566399837
+1583242589
+1566334043
+1498962008
+1482184793
+1482053207
+1448627773
+1027423549
+1027423549
+1027423549
+1027423549
+1482184792
+1482184792
+1482184792
+1482184792
+1482184792
+1482250842
+1498896217
+1532713563
+1532779613
+1566465633
+1684366435
+1633705822
+874659169
+1649955412
+1414671396
+1214012261
+1566136665
+1499027802
+1515936603
+1532713820
+1549622621
+1566399838
+1583242846
+1566399579
+1515805017
+1499027802
+1498896215
+1465470781
+1027423549
+1027423549
+1027423549
+1027423549
+1499027801
+1499027801
+1499027801
+1499027801
+1499027801
+1498962007
+1431655765
+1465539678
+1583374690
+1667523941
+1684300642
+1633705825
+1042888786
+1532250961
+1700147495
+1163482199
+1499225180
+1549556828
+1549556828
+1549556829
+1566465630
+1583242846
+1600085854
+1583177052
+1515805017
+1499027802
+1498896216
+1465470782
+1044266558
+1044266558
+1044266558
+1044266558
+1549556828
+1549556828
+1549556828
+1549556828
+1549556828
+1549556829
+1600217439
+1532846177
+1633837666
+1650615137
+1599954268
+1549556573
+1177562944
+1482774367
+1565011240
+1130456670
+1549688414
+1583242846
+1566399837
+1566399837
+1583242846
+1583242847
+1600085855
+1583242588
+1532648026
+1515870811
+1515739224
+1482313790
+1044266558
+1044266558
+1044266558
+1044266558
+1616928864
+1616928864
+1616928864
+1616928864
+1616928864
+1616994659
+1735290469
+1650680417
+1616928863
+1600020063
+1600151648
+1616928608
+1447243315
+1532975706
+1564880434
+894985563
+1499159644
+1549556828
+1549622621
+1566399838
+1583308639
+1600085856
+1616928864
+1600085854
+1566334044
+1549491035
+1532581977
+1482314047
+1061109567
+1061109567
+1061109567
+1061109567
+1600085855
+1600085855
+1600085855
+1600085855
+1600085855
+1600086114
+1667589474
+1650549088
+1600085855
+1583242589
+1600085855
+1600086112
+1548826158
+978541145
+1547708212
+1399022427
+1499159387
+1532713819
+1566465630
+1583242846
+1600151648
+1616928864
+1616928864
+1616928606
+1583242845
+1566334044
+1549359450
+1499156799
+1061109567
+1061109567
+1061109567
+1061109567
+1532713819
+1532713819
+1532713819
+1532713819
+1532713819
+1532713819
+1549556828
+1549557085
+1583308639
+1600085855
+1600085855
+1600085855
+1549222963
+927291224
+1614488106
+1197433438
+1549557085
+1566399837
+1583243103
+1600085855
+1616994657
+1633771872
+1600085855
+1600085855
+1600020062
+1566399581
+1549359705
+1499091519
+1061109567
+1061109567
+1061109567
+1061109567
+1499027801
+1499027801
+1499027801
+1499027801
+1499027801
+1499027801
+1515936603
+1532714077
+1566465887
+1600085855
+1600085855
+1600085855
+1582976829
+909921629
+1581657127
+995385180
+1566400094
+1583242846
+1600086112
+1616928864
+1616994657
+1633771615
+1583242846
+1583242846
+1583242845
+1566334045
+1532516697
+1499091262
+1044266558
+1044266558
+1044266558
+1044266558
+1515870810
+1515870810
+1515870810
+1515870810
+1515870810
+1515870810
+1515936603
+1532713821
+1566465887
+1600085855
+1600085855
+1600085857
+1633769792
+825573467
+1649423398
+826956123
+1583243103
+1600085855
+1600151648
+1616928864
+1633771873
+1633771615
+1583242846
+1583242846
+1600020062
+1566399580
+1549359449
+1482314047
+1061109567
+1061109567
+1061109567
+1061109567
+1532713819
+1532713819
+1532713819
+1532713819
+1532713819
+1532713819
+1532713819
+1532714077
+1566465887
+1600085855
+1600085855
+1600085859
+1701140539
+690697814
+1615869477
+793270619
+1600086112
+1616928864
+1616994657
+1633771873
+1633771873
+1633771615
+1600085855
+1600085855
+1616863071
+1583242589
+1549359450
+1499156800
+1077952576
+1077952576
+1077952576
+1077952576
+1532713819
+1532713819
+1532713819
+1532713819
+1532713819
+1532713819
+1549556828
+1549557085
+1566465887
+1600085855
+1600085855
+1600085859
+1684097583
+606482763
+1413951526
+894196575
+1633706337
+1633771873
+1633771873
+1633771873
+1650680675
+1667457634
+1650680675
+1667457890
+1650549089
+1616928607
+1582979930
+1515934528
+1077952576
+1077952576
+1077952576
+1077952576
+1515870810
+1515870810
+1515870810
+1515870810
+1515870811
+1532713565
+1566334558
+1566466142
+1583308639
+1600085855
+1600020320
+1633705824
+1599551522
+623390015
+1144858410
+1045519456
+1650549346
+1650614882
+1650614882
+1650614883
+1684366693
+1701143909
+1701209702
+1717986917
+1684235107
+1650614625
+1599822940
+1549620290
+1111638594
+1111638594
+1111638594
+1111638594
+1549556828
+1549556828
+1549556828
+1549556828
+1549556828
+1515739740
+1532583262
+1516003678
+1532648543
+1583112034
+1599954786
+1667325022
+1515136021
+556348975
+808134705
+1213423201
+1700946532
+1684300899
+1650549347
+1684366436
+1701276007
+1701144167
+1734764392
+1734829925
+1701143394
+1650680930
+1616796506
+1532711741
+1027423549
+1027423549
+1027423549
+1027423549
+1515870810
+1515870810
+1515870810
+1515870810
+1515937373
+1498896731
+1515740510
+1515872093
+1532517215
+1582914656
+1616732002
+1684036702
+1464210962
+555955494
+589311305
+1364680547
+1684037730
+1667523684
+1684169573
+1734828898
+1684499047
+1701210217
+1768319082
+1751607654
+1684300641
+1650615651
+1650613597
+1566266170
+976894522
+976894522
+976894522
+976894522
+1482184792
+1482184792
+1482184792
+1482184792
+1482317665
+1549360221
+1549557343
+1583111262
+1600085856
+1566136928
+1633771616
+1633771103
+1447039769
+605562401
+505295180
+1482383714
+1599888220
+1583440998
+1717921639
+1734763105
+1633903972
+1701341803
+1785161836
+1785227623
+1701078116
+1667458144
+1650942307
+1700812346
+976894522
+976894522
+976894522
+976894522
+976894522
+976894522
+976894522
+976894522
+976697918
+1027160644
+1263422806
+1718380906
+1785556069
+1633904742
+1633376087
+1499093598
+1632247069
+554968865
+572993869
+1617124439
+1516331620
+1735027049
+1701144166
+1684301158
+1701011810
+1684234852
+1735027306
+1785358952
+1734764133
+1684300895
+1600610916
+1717655356
+1010580540
+1010580540
+1010580540
+1010580540
+555819297
+555819297
+555819297
+555819297
+556813929
+1783772203
+657140284
+1516791654
+1752199525
+1584036735
+2121890171
+2139127939
+2036015625
+270151215
+757211197
+1600609364
+1449156960
+1667654238
+1617192290
+1600152423
+1785227114
+1835887208
+1751935077
+1751738219
+1785160289
+1633903968
+1583636318
+1583109437
+1027423549
+1027423549
+1027423549
+1027423549
+774778414
+774778414
+774778414
+774778414
+774911547
+925838122
+673589308
+1483040101
+1701671011
+1601277078
+-1701406049
+-1515739736
+-1467199967
+828537480
+1833775686
+1887864190
+2021092448
+1701801835
+1836084324
+1566467688
+1650022753
+1717855590
+1701602908
+1684563049
+1785159772
+1600284000
+1566793049
+1498829116
+1010580540
+1010580540
+1010580540
+1010580540
+1179010630
+1179010630
+1179010630
+1179010630
+1179604566
+1296649548
+1178353744
+1634233197
+1667721057
+1634764686
+-1920628596
+-1818781545
+-1853530063
+1251258804
+-1013290133
+-1885299044
+-1752074399
+1719371398
+-2105575575
+1600286080
+1953329010
+1818321253
+1651401815
+1650942308
+1667260258
+1717985625
+1533568612
+1650086460
+1010580540
+1010580540
+1010580540
+1010580540
+1212696648
+1212696648
+1212696648
+1212696648
+1212828227
+927029604
+1497252172
+1398367072
+1515408975
+1364615784
+1717460319
+1684696687
+1886350934
+1873593532
+-643207075
+2004577660
+-2088671407
+1517518978
+2138862437
+1566731913
+-1785490028
+-2073005959
+1651598420
+1651007838
+1465212779
+1919440720
+1618772355
+2104648006
+1179010630
+1179010630
+1179010630
+1179010630
+1162167621
+1162167621
+1162167621
+1162167621
+1162763874
+1566005855
+1498240868
+1550278237
+1532318039
+1431262041
+1178087988
+960646483
+1567126390
+-1935559235
+-1468248251
+1582976611
+1768841817
+1669694576
+1735092837
+1634102646
+1987476608
+1952606583
+1668900954
+1735157343
+1330995821
+1869043527
+1888063891
+-1887015088
+1347440720
+1347440720
+1347440720
+1347440720
+1179010630
+1179010630
+1179010630
+1179010630
+1179472980
+1397641546
+1229609577
+1483166284
+1348164949
+1330466898
+1312766265
+1129276004
+1700883824
+-1868329604
+1383089239
+1432574305
+1650813268
+-2035899290
+1381720677
+1751607399
+1684434806
+1936617584
+2039178595
+1701341025
+1583441257
+1768384105
+1937802629
+-2038405302
+1246382666
+1246382666
+1246382666
+1246382666
+1347440720
+1347440720
+1347440720
+1347440720
+1347572556
+1094534208
+1010453597
+1247627067
+977158206
+977027907
+993277502
+1162497105
+1431467395
+1918912580
+1988513877
+1431456093
+1717929120
+-858739108
+1095456093
+1616862042
+1549822834
+1852138595
+1938709594
+1499094878
+1634166374
+1734962285
+1768317022
+1667189040
+808464432
+808464432
+808464432
+808464432
+1044266558
+1044266558
+1044266558
+1044266558
+1044398395
+842151988
+825048913
+1045512241
+673786665
+673919534
+690236467
+943075382
+994080135
+1462974558
+-1515758774
+1279475277
+1110532762
+-1028750271
+994001220
+1212894025
+1246517602
+1565675084
+1534542140
+1044333896
+1314083410
+1398101851
+1447903554
+1195454753
+555819297
+555819297
+555819297
+555819297
+505290270
+505290270
+505290270
+505290270
+505423660
+724316204
+639708996
+776025903
+690299680
+488580393
+741092655
+825306409
+741698676
+1060926115
+-1162585808
+993144110
+638993010
+-1837212097
+859058223
+859454777
+943343441
+1279277879
+1181233192
+757804847
+825307184
+808464694
+909125674
+740827164
+471604252
+471604252
+471604252
+471604252
+303174162
+303174162
+303174162
+303174162
+303242277
+673588770
+471213113
+539896358
+572332823
+336927002
+420942868
+353703187
+371216737
+977699241
+-1129097442
+824516377
+606685277
+2003192640
+1095190087
+1263489352
+1060980556
+1127492902
+878124565
+437523479
+404297751
+387455002
+454760987
+454694936
+404232216
+404232216
+404232216
+404232216
+454761243
+454761243
+454761243
+454761243
+454762018
+555555352
+403972920
+421732897
+471209237
+336860954
+437852187
+488249622
+336537932
+1078227363
+-1213439975
+807738649
+792611141
+1649951030
+842414910
+1094861379
+1162497872
+1144270375
+912007960
+538384409
+387257878
+387455254
+387521819
+454891793
+286331153
+286331153
+286331153
+286331153
+454761243
+454761243
+454761243
+454761243
+454629400
+370545684
+387327543
+387652126
+454498330
+437918490
+370349336
+421074718
+521476411
+1112040865
+-1213961190
+824713760
+624112687
+1498231599
+741158963
+892811324
+1111968847
+1228947519
+744038421
+538648100
+555688226
+606545958
+691023914
+724707087
+252645135
+252645135
+252645135
+252645135
+404232216
+404232216
+404232216
+404232216
+404100115
+387718427
+454633010
+353965082
+420616732
+454431515
+403968791
+471539486
+337451817
+927614599
+-1247841509
+875044639
+640563782
+1834433594
+1297175124
+1465539679
+1684565619
+1936814962
+1988717672
+1937077626
+-2071229556
+-1919971184
+-1852205935
+-1902998941
+1667457891
+1667457891
+1667457891
+1667457891
+370546198
+370546198
+370546198
+370546198
+370480147
+353966876
+505554753
+858072098
+556082203
+589508145
+943537986
+1179604310
+1617648437
+826289493
+-1298029482
+2088799367
+-2021095283
+-1734634862
+-1802268522
+-1684367467
+-1836085622
+-1970566001
+-1819177845
+-1869179242
+-1802531444
+-1953854331
+-2088006251
+-1971091878
+1515870810
+1515870810
+1515870810
+1515870810
+1431655765
+1431655765
+1431655765
+1431655765
+1431722589
+1634102638
+1852730237
+2105441661
+2139460496
+-1853123948
+-1868980067
+-1768712807
+-1667395487
+774323301
+-1381588352
+-2121622124
+-1869310572
+-1768583534
+-1819441526
+-1852731251
+-1937011829
+-1970632056
+-2004253575
+1971094144
+2003922540
+1785161830
+1718383747
+1699106358
+909522486
+909522486
+909522486
+909522486
+-1717986919
+-1717986919
+-1717986919
+-1717986919
+-1718118507
+-1852861298
+-1970832506
+-1986950520
+-2071820405
+-2004319099
+-1919115375
+-2122348659
+-1987737233
+1043755144
+-1734896502
+1971161473
+-2105179005
+-2071888756
+-1836615822
+1919838821
+1566071387
+1566333792
+1837004636
+1365407615
+1583110486
+1414747224
+1617521782
+1209673503
+522133279
+522133279
+522133279
+522133279
+-2021161081
+-2021161081
+-2021161081
+-2021161081
+-2021160567
+-2037871220
+-1919908981
+-1885959028
+-1903263093
+-1986621042
+-1852271738
+2071560066
+-2122610806
+1971174581
+1701012843
+1549624671
+1701998173
+1296980853
+-1971755684
+1498698066
+1347507030
+1482250331
+1736210777
+1230994559
+1902798951
+1718052976
+2021421177
+1615086624
+538976288
+538976288
+538976288
+538976288
+-2004318072
+-2004318072
+-2004318072
+-2004318072
+-2004449917
+-2122218366
+-2105246589
+-2104983423
+-2054915194
+1802925685
+1852404089
+1986420066
+1296320850
+1534303877
+841756480
+1196448091
+1921417055
+1061050747
+-2055837851
+1768516206
+1920169080
+2055045246
+1854179950
+1550350967
+1987145841
+1903457659
+-2105049971
+-1836024008
+943208504
+943208504
+943208504
+943208504
+2105376125
+2105376125
+2105376125
+2105376125
+2105045098
+1734565727
+1600479335
+1583506531
+2055570052
+1043673917
+1331132308
+-1872015539
+1347571014
+1280590633
+505486381
+1163881077
+2038200161
+1212108401
+-2122682510
+2004383863
+1987343735
+2088863364
+-2019974514
+2054518128
+1903128175
+1886549363
+2055966107
+-1633643442
+1313754702
+1313754702
+1313754702
+1313754702
+1549556828
+1549556828
+1549556828
+1549556828
+1549554267
+1701340778
+1869835631
+1616997750
+-1952936824
+807541307
+1365017248
+-1821416857
+1852862313
+1937000483
+404822308
+1097170060
+2038465918
+1868785787
+-2139656078
+1953722481
+1953788790
+2072349324
+-1801739882
+-2038860685
+1937011572
+1937012600
+-2104257644
+-2004778938
+1179010630
+1179010630
+1179010630
+1179010630
+1886417008
+1886417008
+1886417008
+1886417008
+1886349422
+1920168565
+2004382832
+1752005773
+-1937611669
+639702836
+1180003968
+1935369068
+1886350694
+1853053995
+371005980
+710509963
+-2122085236
+-2106034054
+2037542770
+1970566263
+2021095550
+-2054122094
+-1937340282
+2121757815
+2021226358
+1970764934
+-1852405372
+1970236994
+1111638594
+1111638594
+1111638594
+1111638594
+1650614882
+1650614882
+1650614882
+1650614882
+1650748006
+1802532216
+2038069365
+2005244822
+1583053466
+-1482714250
+1718121591
+1936615790
+1903260013
+1903455290
+488249366
+540963471
+-1836676468
+-1987871369
+1953789044
+1953723765
+2004384901
+-1936551031
+-2139588488
+2004120695
+2038002802
+1971028877
+-1852998024
+1801938243
+1128481603
+1128481603
+1128481603
+1128481603
+1886417008
+1886417008
+1886417008
+1886417008
+1886482802
+1937143926
+1936947069
+-2020304245
+1735561132
+-1179343218
+-2139258754
+2054582640
+1903457910
+2004251985
+739905296
+676627607
+-1786412930
+2122085745
+1903588980
+1920038003
+1970897548
+-1886682504
+1903260018
+1936880500
+1953656434
+2055507341
+-2038730642
+1751672387
+1128481603
+1128481603
+1128481603
+1128481603
+1869573999
+1869573999
+1869573999
+1869573999
+1869705843
+1970764149
+1886352763
+-2139194501
+-2087675228
+-1415078256
+-2021359234
+2054714482
+1937077365
+1987475300
+1227497517
+1316327826
+-2022018448
+1886482543
+1903523187
+1886351990
+2122680973
+-1971425175
+1751936623
+1886483315
+1886154102
+-2087874168
+2104650346
+1751869504
+1077952576
+1077952576
+1077952576
+1077952576
+1953789044
+1953789044
+1953789044
+1953789044
+1953789043
+1970698354
+1852798328
+2037741194
+-1683907947
+-1785294457
+-2139260038
+2021028463
+1869705329
+1936946027
+1616140394
+2106165634
+2037476459
+1836019824
+1886483057
+1886483583
+-2004055677
+2087938922
+1819242867
+1953986682
+2038004356
+-1852270710
+-2122747277
+1937272899
+1128481603
+1128481603
+1128481603
+1128481603
+-2122219135
+-2122219135
+-2122219135
+-2122219135
+-2122285701
+2038003830
+1936946296
+2139723169
+-1583903612
+-2088336002
+2020897910
+2004119918
+1819177074
+1919970923
+1870302099
+-1853259913
+1919905133
+1852797039
+1852732019
+1987871628
+-1903393411
+2021096577
+-2071492213
+-1919905646
+-1835821668
+-1532517735
+-1768517488
+-1869248170
+1448498774
+1448498774
+1448498774
+1448498774
+-2054847099
+-2054847099
+-2054847099
+-2054847099
+-2054979204
+2054781047
+1970433651
+-2104055898
+-1702396552
+1970764152
+1953591924
+1987408751
+1852797556
+1970434160
+2039059602
+-2005043084
+1936879986
+1937012086
+2004516226
+-2020566370
+-1684564847
+-1886151516
+-1465144146
+-1330465869
+-1263093830
+-1111705163
+-1212303434
+-1229214860
+1953789044
+1953789044
+1953789044
+1953789044
+2139062143
+2139062143
+2139062143
+2139062143
+2138995318
+1953723252
+1953657467
+-1936023399
+-1904183181
+1869509236
+1919971698
+1953854320
+1886417522
+1937012608
+-1987081084
+2122022010
+2088730754
+-2054648946
+-1869375589
+-1616399950
+-1296976970
+-1246316099
+-1044200764
+-993671481
+-909390902
+-875836728
+-909194806
+-909197695
+-2122219135
+-2122219135
+-2122219135
+-2122219135
+2021161080
+2021161080
+2021161080
+2021161080
+2021028721
+1920103027
+1937080208
+-1667526264
+-2072086412
+1903129203
+1886285681
+1920168561
+1919971185
+1987869840
+-1752003964
+-2071491698
+-1818847334
+-1599822167
+-1414549068
+-1229209150
+-1010513718
+-909654330
+-943208247
+-909456692
+-859060282
+-926233655
+-875640372
+-875576706
+2122219134
+2122219134
+2122219134
+2122219134
+1920103026
+1920103026
+1920103026
+1920103026
+1920036977
+1937011830
+2004847257
+-1617524865
+2054781045
+1953723763
+1920037493
+2004449917
+2105310335
+-2037408863
+-1566861934
+-1818648406
+-1397904208
+-1229144642
+-1077755197
+-976828216
+-909455923
+-842216760
+-926431032
+-892613683
+-842481216
+-993474103
+-892548662
+-892353413
+2071690107
+2071690107
+2071690107
+2071690107
+1936946035
+1936946035
+1936946035
+1936946035
+1936946037
+1970565493
+2123076505
+-1752465288
+1937012086
+2021292666
+2088599683
+-2037871472
+-1852796265
+-1599360075
+-1314018648
+-1431258945
+-1027555904
+-942879541
+-909522487
+-909522231
+-943274298
+-960051514
+-976894265
+-926299444
+-876167235
+-1027094329
+-943077176
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+1970632053
+1970632053
+1970632053
+1970632053
+1970763381
+1953723263
+-1936091246
+-1937473411
+2054913665
+-2071426675
+-1835624036
+-1599887445
+-1397969230
+-1178350900
+-926695236
+-1128216631
+-943538496
+-942879540
+-875836470
+-909522745
+-960117307
+-976894523
+-976894522
+-943142707
+-825374778
+-892481844
+-909522744
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+2021161080
+2021161080
+2021161080
+2021161080
+2021226617
+2055046036
+-1616602736
+-1937142384
+-1852729959
+-1650416985
+-1414614604
+-1212564291
+-1094795326
+-925837610
+-741422652
+-1027225143
+-977356101
+-1043871543
+-909391159
+-943274556
+-993803325
+-1010580541
+-993737275
+-960051253
+-808333619
+-808267057
+-875968312
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+2105376125
+2105376125
+2105376125
+2105376125
+2105442176
+-2054317914
+-1415079273
+-1700944726
+-1381060429
+-1246184772
+-1128350014
+-1010514234
+-960051769
+-875440170
+-775108671
+-1077819963
+-1027885642
+-1128086588
+-959920186
+-977026110
+-1027423550
+-1027423550
+-1010514748
+-993671736
+-892482356
+-858927668
+-875968312
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1903260018
+-1903260018
+-1903260018
+-1903260018
+-1903128429
+-1734235211
+-1263754071
+-1313490242
+-1061109310
+-1010580027
+-993737531
+-959985722
+-960183613
+-959787056
+-842414913
+-1111505724
+-1061571661
+-1178680894
+-993606204
+-1010646335
+-1061109568
+-1061109567
+-1010514748
+-1010580540
+-976762937
+-943208761
+-926299960
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1515870811
+-1515870811
+-1515870811
+-1515870811
+-1515739227
+-1481787714
+-1111968064
+-909522487
+-943274042
+-976894523
+-976828987
+-976894780
+-993869376
+-1027225398
+-926564164
+-1145060411
+-1010911306
+-1128086332
+-976894524
+-1010646335
+-1061175361
+-1077952575
+-1027292221
+-1010580798
+-1010382905
+-943274554
+-943077176
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1347440721
+-1347440721
+-1347440721
+-1347440721
+-1347309396
+-1414547264
+-1027620661
+-741224756
+-926497083
+-976960315
+-976828988
+-993803325
+-1010712385
+-1060977466
+-993935942
+-1161903161
+-943539270
+-1060714297
+-960117308
+-993803326
+-1061175361
+-1077952575
+-1027292221
+-1010580798
+-993539639
+-926431545
+-926299960
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1347440721
+-1347440721
+-1347440721
+-1347440721
+-1347309396
+-1414547264
+-1027620661
+-741224756
+-926497083
+-976960315
+-976828988
+-993803325
+-1010712385
+-1060977466
+-993935942
+-1161903161
+-943539270
+-1060714297
+-960117308
+-993803326
+-1061175361
+-1077952575
+-1027292221
+-1010580798
+-993539639
+-926431545
+-926299960
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1347440721
+-1347440721
+-1347440721
+-1347440721
+-1347309396
+-1414547264
+-1027620661
+-741224756
+-926497083
+-976960315
+-976828988
+-993803325
+-1010712385
+-1060977466
+-993935942
+-1161903161
+-943539270
+-1060714297
+-960117308
+-993803326
+-1061175361
+-1077952575
+-1027292221
+-1010580798
+-993539639
+-926431545
+-926299960
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1347440721
+-1347440721
+-1347440721
+-1347440721
+-1347309396
+-1414547264
+-1027620661
+-741224756
+-926497083
+-976960315
+-976828988
+-993803325
+-1010712385
+-1060977466
+-993935942
+-1161903161
+-943539270
+-1060714297
+-960117308
+-993803326
+-1061175361
+-1077952575
+-1027292221
+-1010580798
+-993539639
+-926431545
+-926299960
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1347440721
+-1347440721
+-1347440721
+-1347440721
+-1347309396
+-1414547264
+-1027620661
+-741224756
+-926497083
+-976960315
+-976828988
+-993803325
+-1010712385
+-1060977466
+-993935942
+-1161903161
+-943539270
+-1060714297
+-960117308
+-993803326
+-1061175361
+-1077952575
+-1027292221
+-1010580798
+-993539639
+-926431545
+-926299960
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1347440721
+-1347440721
+-1347440721
+-1347440721
+-1347309396
+-1414547264
+-1027620661
+-741224756
+-926497083
+-976960315
+-976828988
+-993803325
+-1010712385
+-1060977466
+-993935942
+-1161903161
+-943539270
+-1060714297
+-960117308
+-993803326
+-1061175361
+-1077952575
+-1027292221
+-1010580798
+-993539639
+-926431545
+-926299960
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1347440721
+-1347440721
+-1347440721
+-1347440721
+-1347309396
+-1414547264
+-1027620661
+-741224756
+-926497083
+-976960315
+-976828988
+-993803325
+-1010712385
+-1060977466
+-993935942
+-1161903161
+-943539270
+-1060714297
+-960117308
+-993803326
+-1061175361
+-1077952575
+-1027292221
+-1010580798
+-993539639
+-926431545
+-926299960
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1347440721
+-1347440721
+-1347440721
+-1347440721
+-1347309396
+-1414547264
+-1027620661
+-741224756
+-926497083
+-976960315
+-976828988
+-993803325
+-1010712385
+-1060977466
+-993935942
+-1161903161
+-943539270
+-1060714297
+-960117308
+-993803326
+-1061175361
+-1077952575
+-1027292221
+-1010580798
+-993539639
+-926431545
+-926299960
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1347440721
+-1347440721
+-1347440721
+-1347440721
+-1347309396
+-1414547264
+-1027620661
+-741224756
+-926497083
+-976960315
+-976828988
+-993803325
+-1010712385
+-1060977466
+-993935942
+-1161903161
+-943539270
+-1060714297
+-960117308
+-993803326
+-1061175361
+-1077952575
+-1027292221
+-1010580798
+-993539639
+-926431545
+-926299960
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1347440721
+-1347440721
+-1347440721
+-1347440721
+-1347309396
+-1414547264
+-1027620661
+-741224756
+-926497083
+-976960315
+-976828988
+-993803325
+-1010712385
+-1060977466
+-993935942
+-1161903161
+-943539270
+-1060714297
+-960117308
+-993803326
+-1061175361
+-1077952575
+-1027292221
+-1010580798
+-993539639
+-926431545
+-926299960
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1347440721
+-1347440721
+-1347440721
+-1347440721
+-1347309396
+-1414547264
+-1027620661
+-741224756
+-926497083
+-976960315
+-976828988
+-993803325
+-1010712385
+-1060977466
+-993935942
+-1161903161
+-943539270
+-1060714297
+-960117308
+-993803326
+-1061175361
+-1077952575
+-1027292221
+-1010580798
+-993539639
+-926431545
+-926299960
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1347440721
+-1347440721
+-1347440721
+-1347440721
+-1347309396
+-1414547264
+-1027620661
+-741224756
+-926497083
+-976960315
+-976828988
+-993803325
+-1010712385
+-1060977466
+-993935942
+-1161903161
+-943539270
+-1060714297
+-960117308
+-993803326
+-1061175361
+-1077952575
+-1027292221
+-1010580798
+-993539639
+-926431545
+-926299960
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1347440721
+-1347440721
+-1347440721
+-1347440721
+-1347309396
+-1414547264
+-1027620661
+-741224756
+-926497083
+-976960315
+-976828988
+-993803325
+-1010712385
+-1060977466
+-993935942
+-1161903161
+-943539270
+-1060714297
+-960117308
+-993803326
+-1061175361
+-1077952575
+-1027292221
+-1010580798
+-993539639
+-926431545
+-926299960
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1347440721
+-1347440721
+-1347440721
+-1347440721
+-1347309396
+-1414547264
+-1027620661
+-741224756
+-926497083
+-976960315
+-976828988
+-993803325
+-1010712385
+-1060977466
+-993935942
+-1161903161
+-943539270
+-1060714297
+-960117308
+-993803326
+-1061175361
+-1077952575
+-1027292221
+-1010580798
+-993539639
+-926431545
+-926299960
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1347440721
+-1347440721
+-1347440721
+-1347440721
+-1347309396
+-1414547264
+-1027620661
+-741224756
+-926497083
+-976960315
+-976828988
+-993803325
+-1010712385
+-1060977466
+-993935942
+-1161903161
+-943539270
+-1060714297
+-960117308
+-993803326
+-1061175361
+-1077952575
+-1027292221
+-1010580798
+-993539639
+-926431545
+-926299960
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1347440721
+-1347440721
+-1347440721
+-1347440721
+-1347309396
+-1414547264
+-1027620661
+-741224756
+-926497083
+-976960315
+-976828988
+-993803325
+-1010712385
+-1060977466
+-993935942
+-1161903161
+-943539270
+-1060714297
+-960117308
+-993803326
+-1061175361
+-1077952575
+-1027292221
+-1010580798
+-993539639
+-926431545
+-926299960
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-1347440721
+-1347440721
+-1347440721
+-1347440721
+-1347309396
+-1414547264
+-1027620661
+-741224756
+-926497083
+-976960315
+-976828988
+-993803325
+-1010712385
+-1060977466
+-993935942
+-1161903161
+-943539270
+-1060714297
+-960117308
+-993803326
+-1061175361
+-1077952575
+-1027292221
+-1010580798
+-993539639
+-926431545
+-926299960
+-909261191
+2038004089
+2038004089
+2038004089
+2038004089
+-2004318072
+-2004318072
+-2012541882
+1795620730
+318794160
+-1488371695
+1863053564
+-1070858208
+11668988
+1410230210
+293725365
+-1115694074
+1465742650
+-1810615036
+67372036
+67372036
+-2004318072
+-2004318072
+-2012541882
+1795620730
+318794160
+-1488371695
+1863053564
+-1070858208
+11668988
+1410230210
+293725365
+-1115694074
+1465742650
+-1810615036
+67372036
+67372036
+-2004318072
+-2004318072
+-2012541882
+1795620730
+318794160
+-1488371695
+1863053564
+-1070858208
+11668988
+1410230210
+293725365
+-1115694074
+1465742650
+-1810615036
+67372036
+67372036
+-2004318072
+-2004318072
+-2012541882
+1795620730
+318794160
+-1488371695
+1863053564
+-1070858208
+11668988
+1410230210
+293725365
+-1115694074
+1465742650
+-1810615036
+67372036
+67372036
+-2004318072
+-2004318072
+-2012541882
+1795620730
+318794160
+-1488371695
+1863053564
+-1070858208
+11668988
+1410230210
+293725365
+-1115694074
+1465742650
+-1810615036
+67372036
+67372036
+-2004318072
+-2004318072
+-2012541882
+1795620730
+318794160
+-1488371695
+1863053564
+-1070858208
+11668988
+1410230210
+293725365
+-1115694074
+1465742650
+-1810615036
+67372036
+67372036
+-2004318072
+-2004318072
+-2012541882
+1795620730
+318794160
+-1488371695
+1863053564
+-1070858208
+11668988
+1410230210
+293725365
+-1115694074
+1465742650
+-1810615036
+67372036
+67372036
+-2004318072
+-2004318072
+-2012541882
+1795620730
+318794160
+-1488371695
+1863053564
+-1070858208
+11668988
+1410230210
+293725365
+-1115694074
+1465742650
+-1810615036
+67372036
+67372036
+-2004318072
+-2004318072
+-2012541882
+1795620730
+318794160
+-1488371695
+1863053564
+-1070858208
+11668988
+1410230210
+293725365
+-1115694074
+1465742650
+-1810615036
+67372036
+67372036
+1061109567
+1061109567
+1058067648
+-848375510
+-311739113
+-1401952840
+872432650
+1818045202
+-2008964585
+1066607525
+1144596224
+287114710
+-737780114
+326555912
+134744072
+134744072
+623191333
+623191333
+622920139
+1376002693
+-1654015917
+-713227752
+-1104084778
+-872377847
+26784305
+-1335358413
+-872071398
+3932340
+-754495516
+340786654
+-555819298
+-555819298
+-1482184793
+-1482184793
+-1487470080
+-153151359
+1491528586
+-367999253
+-2106914959
+1863709059
+475229977
+1973361285
+203130537
+349789189
+-1433002694
+5669437
+1027423549
+1027423549
+1768515945
+1768515945
+1769430641
+1736666723
+1787125097
+1953067366
+1836279131
+-2023661204
+1835821165
+2104255337
+1751479657
+1801547877
+1719032184
+1852534911
+2139062143
+2139062143
+1886417008
+1886417008
+1885963872
+1700946541
+1901887328
+1852471412
+1851946349
+1786016097
+1785617258
+2086700134
+1652120175
+1634890090
+1902473060
+1734569067
+1802201963
+1802201963
+2021161080
+2021161080
+2019259747
+1801813605
+1735353453
+1634885228
+1869112940
+1818648702
+1802008180
+1634626669
+-2124843666
+1935045237
+1617980004
+1902799477
+1970632053
+1970632053
+1802201963
+1802201963
+1802330990
+1651269487
+1902865246
+2136570219
+1718576747
+1785621610
+1835822698
+1852531836
+1852861548
+1585212010
+1768842616
+1768512132
+-2071690108
+-2071690108
+1734829927
+1734829927
+1735421294
+1751935851
+1802202477
+1818849131
+1752001387
+1785817963
+1835887721
+1819043692
+1802529389
+1836214375
+1835887724
+1751805036
+1819044972
+1819044972
+1802201963
+1802201963
+1802201963
+1802201963
+1802201964
+1819110766
+1869705842
+1920102768
+1903260017
+1903260017
+1920036975
+1852665195
+1819110764
+1785359470
+1852730990
+1852730990
+1802201963
+1802201963
+1802201963
+1802201963
+1802201964
+1819110767
+1920234870
+1987409012
+1920103026
+1920103026
+1886416750
+1852664940
+1819110764
+1785359470
+1852730990
+1852730990
+1802201963
+1802201963
+1802201963
+1802201963
+1802201964
+1819110766
+1869705843
+1936879984
+1852730990
+1852730991
+1869573998
+1852665196
+1819110764
+1785359470
+1852730990
+1852730990
+1802201963
+1802201963
+1802201963
+1802201963
+1802201964
+1819110765
+1835954031
+1869573740
+1802136170
+1785358955
+1835953773
+1835887724
+1819110764
+1785359470
+1852730990
+1852730990
+1802201963
+1802201963
+1802201963
+1802201963
+1802201964
+1819110766
+1835954032
+1886350957
+1802136170
+1785358955
+1802267756
+1819044972
+1819110764
+1785359470
+1852730990
+1852730990
+1802201963
+1802201963
+1802201963
+1802201963
+1802201964
+1819110766
+1852862833
+1903259758
+1852665197
+1835887981
+1819044972
+1819044972
+1819110764
+1785359470
+1852730990
+1852730990
+1802201963
+1802201963
+1802201963
+1802201963
+1802201964
+1819044972
+1835954033
+1920036717
+1835887980
+1835822188
+1802201963
+1802202219
+1819045228
+1802202222
+1852730990
+1852730990
+1819044972
+1819044972
+1819044972
+1819044972
+1802136170
+1785358954
+1819111281
+1920036461
+1802267755
+1802136169
+1785359211
+1802201963
+1802267756
+1802202221
+1835887981
+1835887981
+1819044972
+1819044972
+1819044972
+1819044972
+1802136170
+1785358954
+1819177332
+1970433901
+1802267498
+1785292904
+1768581738
+1785358954
+1802201963
+1802201963
+1802201963
+1802201963
+1835887981
+1835887981
+1835887981
+1835887980
+1818913386
+1785358954
+1836086648
+2037739886
+1818978921
+1751607143
+1751672936
+1751672937
+1785358954
+1785358954
+1785358954
+1785358954
+1869573999
+1869573999
+1869573999
+1869573999
+1852665197
+1835887980
+1869838460
+2088268656
+1818913128
+1751672679
+1734829927
+1734829928
+1768581738
+1785358954
+1785358954
+1785358954
+1936946035
+1936946035
+1936946035
+1936946035
+1920037233
+1903260016
+1920367229
+2071491697
+1835756395
+1802201963
+1768515945
+1768515946
+1785424747
+1802201963
+1802201963
+1802201963
+2021161080
+2021161080
+2021161080
+2021161080
+2004186485
+1970632053
+1970632310
+1953788786
+1903194225
+1920103282
+1886351215
+1869573998
+1835887981
+1835887981
+1835887981
+1835887981
+2122219134
+2122219134
+2122219134
+2122219133
+2088335737
+2038004090
+1987078758
+1718317428
+1970632055
+2021227129
+1987409269
+1970632051
+1903194224
+1886417008
+1886417008
+1886417008
+-2139062144
+-2139062144
+-2139062144
+-2139062145
+2122021755
+2071690108
+2003657305
+1499689079
+2054781306
+2071756156
+2071624057
+2038004088
+2004186485
+1970632053
+1970632053
+1970632053
+-2139062144
+-2139062144
+-2139062144
+-2139062145
+2122087548
+2088533117
+2037342550
+1398763385
+2105244283
+2088533373
+2088467580
+2088467323
+2054847098
+2054781305
+2038004089
+2038004089
+2139062143
+2139062143
+2139062143
+2139062142
+2122087548
+2088533118
+2088003675
+1432252282
+2122021498
+2054847098
+2054847355
+2071690107
+2071690364
+2088533116
+2088533116
+2088533116
+2105376125
+2105376125
+2105376125
+2105376125
+2088533116
+2088533118
+2105044320
+1499492217
+2071426935
+2004318071
+2021226873
+2038004089
+2038070139
+2071690107
+2071690107
+2071690107
+2021161080
+2021161080
+2021161080
+2021161081
+2038069882
+2054847100
+2071556452
+1549889141
+2021029494
+1987475062
+1987540855
+2004318071
+2021227130
+2054847098
+2054847098
+2054847098
+1970632053
+1970632053
+1970632053
+1970632053
+1987540855
+2004318072
+2038002535
+1617194612
+1970632310
+1987475062
+2004318328
+2021161080
+2038004346
+2054847098
+2054847098
+2054847098
+2004318071
+2004318071
+2004318071
+2004318071
+1987540855
+2004318071
+1987539819
+1735028852
+1987475319
+2004318071
+2021226873
+2038004089
+2038069882
+2054847098
+2054847098
+2054847098
+2054847098
+2054847098
+2054847098
+2054847098
+2021161080
+2021161079
+2004317554
+1886549366
+2021292666
+2054847098
+2054847098
+2054847098
+2071690107
+2071690107
+2071690107
+2071690107
+2071690107
+2071690107
+2071690107
+2071690107
+2071690107
+2071690106
+2037938296
+2038069625
+2038135675
+2071690107
+2054847098
+2054847098
+2071690364
+2088533116
+2088533116
+2088533116
+2071690107
+2071690107
+2071690107
+2071690107
+2071690107
+2071690107
+2054781820
+2122218620
+2071624314
+2054847098
+2054847098
+2054847099
+2088598909
+2105376125
+2105376125
+2105376125
+2088533116
+2088533116
+2088533116
+2088533116
+2071690107
+2071690107
+2088533373
+2105376125
+2071690107
+2071690107
+2088533373
+2105376125
+2122219134
+2122219134
+2122219134
+2122219134
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2105441918
+2122219134
+2105310332
+2088533117
+2122350720
+-2139062144
+2139062143
+2139062143
+2139062143
+2139062143
+2105376125
+2105376125
+2105376125
+2105376125
+2088598909
+2105376125
+2122284927
+2139062143
+2139062143
+2139062143
+-2122153342
+-2105376126
+-2122219135
+-2122219135
+-2122219135
+-2122219135
+2122219134
+2122219134
+2122219134
+2122219134
+2122219391
+2139062143
+-2139062144
+-2139062144
+-2122219135
+-2122219134
+-2088467324
+-2071690108
+-2088533117
+-2088533117
+-2088533117
+-2088533117
+2139062143
+2139062143
+2139062143
+2139062143
+-2139061887
+-2122219135
+-2105375869
+-2088533117
+-2088532860
+-2071690107
+-2054781049
+-2021161082
+-2054912892
+-2071690108
+-2071690108
+-2071690108
+2139062143
+2139062143
+2139062143
+2139062143
+-2138996094
+-2105376126
+-2088467324
+-2071690108
+-2071624315
+-2054847099
+-2037938297
+-2021161081
+-2054847099
+-2054847099
+-2054847099
+-2054847099
+-2139062144
+-2139062144
+-2139062144
+-2139062144
+-2105310076
+-2071690108
+-2071624315
+-2054847099
+-2054846842
+-2038004090
+-2038003833
+-2021161082
+-2038069883
+-2054847099
+-2054847099
+-2054847099
+-2139062144
+-2139062144
+-2139062144
+-2139062144
+-2105310076
+-2071690108
+-2071624315
+-2054847099
+-2054846842
+-2038004090
+-2038003833
+-2021161082
+-2038069883
+-2054847099
+-2054847099
+-2054847099
+-2139062144
+-2139062144
+-2139062144
+-2139062144
+-2105310076
+-2071690108
+-2071624315
+-2054847099
+-2054846842
+-2038004090
+-2038003833
+-2021161082
+-2038069883
+-2054847099
+-2054847099
+-2054847099
+-2139062144
+-2139062144
+-2139062144
+-2139062144
+-2105310076
+-2071690108
+-2071624315
+-2054847099
+-2054846842
+-2038004090
+-2038003833
+-2021161082
+-2038069883
+-2054847099
+-2054847099
+-2054847099
+-2139062144
+-2139062144
+-2139062144
+-2139062144
+-2105310076
+-2071690108
+-2071624315
+-2054847099
+-2054846842
+-2038004090
+-2038003833
+-2021161082
+-2038069883
+-2054847099
+-2054847099
+-2054847099
+-2139062144
+-2139062144
+-2139062144
+-2139062144
+-2105310076
+-2071690108
+-2071624315
+-2054847099
+-2054846842
+-2038004090
+-2038003833
+-2021161082
+-2038069883
+-2054847099
+-2054847099
+-2054847099
+-2139062144
+-2139062144
+-2139062144
+-2139062144
+-2105310076
+-2071690108
+-2071624315
+-2054847099
+-2054846842
+-2038004090
+-2038003833
+-2021161082
+-2038069883
+-2054847099
+-2054847099
+-2054847099
+-2139062144
+-2139062144
+-2139062144
+-2139062144
+-2105310076
+-2071690108
+-2071624315
+-2054847099
+-2054846842
+-2038004090
+-2038003833
+-2021161082
+-2038069883
+-2054847099
+-2054847099
+-2054847099
+-2139062144
+-2139062144
+-2139062144
+-2139062144
+-2105310076
+-2071690108
+-2071624315
+-2054847099
+-2054846842
+-2038004090
+-2038003833
+-2021161082
+-2038069883
+-2054847099
+-2054847099
+-2054847099
+2088533116
+2088533116
+2082108904
+71042816
+13570461
+323496968
+621757444
+-1470349338
+-519240938
+2067997850
+47811084
+1507865859
+-896700156
+1544020822
+1448498774
+1448498774
+2088533116
+2088533116
+2082108904
+71042816
+13570461
+323496968
+621757444
+-1470349338
+-519240938
+2067997850
+47811084
+1507865859
+-896700156
+1544020822
+1448498774
+1448498774
+2088533116
+2088533116
+2082108904
+71042816
+13570461
+323496968
+621757444
+-1470349338
+-519240938
+2067997850
+47811084
+1507865859
+-896700156
+1544020822
+1448498774
+1448498774
+2088533116
+2088533116
+2082108904
+71042816
+13570461
+323496968
+621757444
+-1470349338
+-519240938
+2067997850
+47811084
+1507865859
+-896700156
+1544020822
+1448498774
+1448498774
+2088533116
+2088533116
+2082108904
+71042816
+13570461
+323496968
+621757444
+-1470349338
+-519240938
+2067997850
+47811084
+1507865859
+-896700156
+1544020822
+1448498774
+1448498774
+2088533116
+2088533116
+2082108904
+71042816
+13570461
+323496968
+621757444
+-1470349338
+-519240938
+2067997850
+47811084
+1507865859
+-896700156
+1544020822
+1448498774
+1448498774
+2088533116
+2088533116
+2082108904
+71042816
+13570461
+323496968
+621757444
+-1470349338
+-519240938
+2067997850
+47811084
+1507865859
+-896700156
+1544020822
+1448498774
+1448498774
+2088533116
+2088533116
+2082108904
+71042816
+13570461
+323496968
+621757444
+-1470349338
+-519240938
+2067997850
+47811084
+1507865859
+-896700156
+1544020822
+1448498774
+1448498774
+2088533116
+2088533116
+2082108904
+71042816
+13570461
+323496968
+621757444
+-1470349338
+-519240938
+2067997850
+47811084
+1507865859
+-896700156
+1544020822
+1448498774
+1448498774
+1347440720
+1347440720
+1356140841
+-1729396130
+52075278
+1779590153
+1439563898
+426969716
+285197444
+-1497659175
+-1103364083
+-1003785088
+1960978266
+798885935
+791621423
+791621423
+1465341783
+1465341783
+1459883960
+739814165
+-660048124
+423751661
+-314827794
+393159833
+415208504
+377722218
+1845518339
+2030816833
+-925078269
+-1307973057
+1061109567
+1061109567
+471604252
+471604252
+469770322
+219843939
+7879442
+-786816993
+-392705524
+-1994455773
+-1862230015
+-1751016498
+1971042074
+-1803773535
+1726109447
+-1137745078
+1246382666
+1246382666
+-2021161081
+-2021161081
+-2021359257
+1871148909
+-2105316487
+2054910080
+-2021038210
+2004841091
+2039834738
+-2038471563
+-1889043582
+1954511221
+2004649844
+2140237951
+2139062143
+2139062143
+1835887981
+1835887981
+1837267336
+2104850562
+-2089121667
+1989173377
+2037547644
+2005433985
+-2056680328
+2021426296
+2022206348
+-2106361734
+2105504129
+1987478911
+2139062143
+2139062143
+2122219134
+2122219134
+2123067008
+2088139893
+2056025726
+1970829184
+2121368444
+-2140046218
+1971290752
+2004647548
+2038137206
+2021624184
+1937470335
+1988061815
+2004318071
+2004318071
+2122219134
+2122219134
+2121825410
+1904312189
+-2056159625
+-1921939849
+2121694330
+-1972663935
+2054850162
+2088663934
+-2122806153
+2072475013
+2072279167
+2071821946
+2054847098
+2054847098
+2071690107
+2071690107
+2071298171
+2071690876
+2054913659
+2105113725
+2121955963
+2088533373
+2088336762
+2122152573
+-2139259015
+2088531835
+2122152829
+2105245052
+2088533116
+2088533116
+2071690107
+2071690107
+2071690107
+2054847099
+2071755900
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2105376125
+2105376125
+2105375867
+2071624058
+2071755900
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2105376125
+2105376125
+2105375868
+2088467323
+2071755900
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2105376125
+2105376125
+2105375869
+2105376124
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533117
+2122219390
+2105310332
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2038004089
+2038004089
+2038070142
+2139193985
+2122087548
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2038004089
+2038004089
+2038070141
+2122351232
+2122087548
+2071690107
+2088599167
+2138930300
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2071690107
+2071690107
+2071690108
+2105441918
+2105244539
+2071690107
+2088599168
+2138995836
+2071690107
+2088533373
+2071690107
+2071690107
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533115
+2071690107
+2088665217
+-2139128452
+2071690108
+2088533373
+2071690107
+2071690107
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533373
+2105507969
+-2139128452
+2088533116
+2088533116
+2071690107
+2071690107
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088598910
+2122284927
+2122284928
+2139061886
+2122153340
+2088467323
+2071690107
+2071690107
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2105376383
+-2138996094
+-2139128193
+2122284927
+2139061885
+2088467066
+2071690107
+2071690107
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533117
+2105442176
+-2105310076
+-2122351235
+2105507968
+-2139062403
+2088401273
+2054912891
+2071690107
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2105442433
+-2088401018
+-2105574020
+2105508225
+-2122219394
+2088401016
+2054912891
+2071690107
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533116
+2088533631
+-2122153086
+-2122417028
+2105508226
+-2122219394
+2105244025
+2038069882
+2054847097
+2071755901
+2105376125
+2105376125
+2105376125
+2088533116
+2088533116
+2088533116
+2088533116
+2071690108
+2088599166
+2122153084
+2105442177
+-2122219393
+2105310074
+2054847354
+2054847098
+2071755901
+2105376382
+2122219134
+2122219134
+2088533116
+2088533116
+2088533116
+2088533116
+2054847098
+2054847099
+2088598908
+2071821695
+-2139062145
+2122153084
+2088664958
+2139061885
+2071756157
+2105442175
+2139062143
+2139062143
+2122219134
+2122219134
+2122219134
+2122219134
+2105376125
+2105376125
+2105441659
+2071756159
+2139193728
+-2139127937
+2122350719
+-2139128194
+2105376125
+2122219391
+2139062143
+2139062143
+-2122219135
+-2122219135
+-2122219135
+-2122219136
+-2139062144
+-2139062144
+-2138997124
+2088599167
+-2122153085
+-2088533117
+-2088533117
+-2105442175
+-2122284928
+-2122219134
+-2105376126
+-2105376126
+-2054847099
+-2054847099
+-2054847099
+-2054847100
+-2088598910
+-2105376125
+-2071756417
+2122219394
+-2071624314
+-2021161080
+-1987343478
+-1970698105
+-2054847099
+-2054847098
+-2038004090
+-2038004090
+-1970632054
+-1970632054
+-1970632054
+-1970632055
+-2021226874
+-2038004088
+-2004318589
+-2122218619
+-2038004089
+-2004317814
+-1936946293
+-1987541112
+-2021095288
+-2004318072
+-2004318072
+-2004318072
+-1920103027
+-1920103027
+-1920103027
+-1936946037
+-1970697847
+-1987475061
+-1920104058
+-2054846585
+-2021226873
+-2004252278
+-1953855353
+-2054913147
+-2037872504
+-2021161338
+-2038004090
+-2038004090
+-1920103027
+-1920103027
+-1920168820
+-1953789047
+-2021292667
+-2037938038
+-1936881016
+-2037872248
+-2038004090
+-2021095288
+-1987541114
+-2038135675
+-2054781563
+-2054913149
+-2088533117
+-2088533117
+-1953789045
+-1953789045
+-1953789046
+-1970698106
+-2071887486
+-2071624056
+-1970566776
+-2021161082
+-2038004090
+-2037938041
+-2054912892
+-2071690108
+-2105376127
+-2122219135
+-2122219135
+-2122219135
+-1953789045
+-1953789045
+-1953789303
+-1987541114
+-2071887485
+-2088401273
+-2004318330
+-2038070139
+-2054781306
+-2038004091
+-2105441919
+-2122219135
+2139062143
+2139062143
+2139062143
+2139062143
+-1953789045
+-1953789045
+-1953789303
+-2004318329
+-2021227130
+-2038003833
+-2021227131
+-2071756157
+-2071624315
+-2054847103
+2122087548
+2088533116
+2071690107
+2071690107
+2071690107
+2071690107
+-1970632054
+-1970632054
+-1970697848
+-2021226874
+-2037938554
+-2038004091
+-2071756158
+-2122285185
+-2139062144
+-2139062147
+2054715512
+2021161080
+2021161080
+2021161080
+2021161080
+2021161080
+-2021161081
+-2021161081
+-2021226875
+-2071755901
+-2088467325
+-2088598911
+-2139127937
+2122153083
+2054781305
+2038004088
+2004252278
+1987475062
+1987475062
+1987475062
+1987475062
+1987475062
+-2088533117
+-2088533117
+-2088598911
+-2139127938
+2139062142
+2122153340
+2088467579
+2054781303
+1987409269
+1970632054
+1987409269
+1970632053
+1987475062
+1987475062
+1987475062
+1987475062
+2139062143
+2139062143
+2139061886
+2105310075
+2054847098
+2054781304
+2021161080
+2004252277
+1987475062
+1987475061
+1970632053
+1970632054
+1987540855
+2004318071
+2004318071
+2004318071
+2122219134
+2122219134
+2122218877
+2088467065
+2021161080
+2037938295
+1987475318
+1970631797
+1987540855
+2004318070
+1970632053
+1970632054
+1987540855
+2004318071
+2004318071
+2004318071
+2122219134
+2122219134
+2122218877
+2088467065
+2021161080
+2037938295
+1987475318
+1970631797
+1987540855
+2004318070
+1970632053
+1970632054
+1987540855
+2004318071
+2004318071
+2004318071
+2122219134
+2122219134
+2122218877
+2088467065
+2021161080
+2037938295
+1987475318
+1970631797
+1987540855
+2004318070
+1970632053
+1970632054
+1987540855
+2004318071
+2004318071
+2004318071
+2122219134
+2122219134
+2122218877
+2088467065
+2021161080
+2037938295
+1987475318
+1970631797
+1987540855
+2004318070
+1970632053
+1970632054
+1987540855
+2004318071
+2004318071
+2004318071
+2122219134
+2122219134
+2122218877
+2088467065
+2021161080
+2037938295
+1987475318
+1970631797
+1987540855
+2004318070
+1970632053
+1970632054
+1987540855
+2004318071
+2004318071
+2004318071
+2122219134
+2122219134
+2122218877
+2088467065
+2021161080
+2037938295
+1987475318
+1970631797
+1987540855
+2004318070
+1970632053
+1970632054
+1987540855
+2004318071
+2004318071
+2004318071
+2122219134
+2122219134
+2122218877
+2088467065
+2021161080
+2037938295
+1987475318
+1970631797
+1987540855
+2004318070
+1970632053
+1970632054
+1987540855
+2004318071
+2004318071
+2004318071
+2122219134
+2122219134
+2122218877
+2088467065
+2021161080
+2037938295
+1987475318
+1970631797
+1987540855
+2004318070
+1970632053
+1970632054
+1987540855
+2004318071
+2004318071
+2004318071
+2122219134
+2122219134
+2122218877
+2088467065
+2021161080
+2037938295
+1987475318
+1970631797
+1987540855
+2004318070
+1970632053
+1970632054
+1987540855
+2004318071
+2004318071
+2004318071
Added: trunk/theora-fpga/reconrefframes/golden/in.tb
===================================================================
--- trunk/theora-fpga/reconrefframes/golden/in.tb (rev 0)
+++ trunk/theora-fpga/reconrefframes/golden/in.tb 2007-09-15 23:10:55 UTC (rev 13820)
@@ -0,0 +1,55125 @@
+0
+21504
+12
+120
+128
+30
+64
+10
+2064
+14856
+18440
+180
+500
+450
+400
+370
+340
+310
+285
+265
+245
+225
+210
+195
+185
+180
+170
+160
+150
+145
+135
+130
+125
+115
+110
+107
+100
+96
+93
+89
+85
+82
+75
+74
+70
+68
+64
+60
+57
+56
+52
+50
+49
+45
+44
+43
+40
+38
+37
+35
+33
+32
+30
+29
+28
+25
+24
+22
+21
+19
+18
+17
+15
+13
+12
+10
+504960020
+252644878
+218958860
+185272842
+151586824
+117901063
+101058054
+84215045
+67372036
+50529027
+33686018
+33686018
+0
+0
+0
+0
+80
+180
+36
+28
+32
+36
+32
+28
+44
+36
+36
+36
+48
+44
+44
+52
+64
+112
+72
+64
+60
+60
+64
+136
+96
+100
+80
+112
+160
+140
+168
+168
+156
+140
+160
+152
+176
+200
+256
+216
+176
+188
+240
+192
+152
+156
+224
+304
+224
+240
+264
+272
+288
+288
+288
+172
+212
+316
+336
+312
+280
+336
+256
+280
+288
+276
+40
+48
+48
+64
+56
+64
+128
+72
+72
+128
+276
+184
+156
+184
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+40
+48
+48
+64
+56
+64
+128
+72
+72
+128
+276
+184
+156
+184
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+36
+44
+44
+44
+44
+44
+56
+56
+56
+56
+64
+64
+64
+64
+64
+76
+76
+76
+76
+76
+76
+88
+88
+88
+88
+88
+88
+88
+112
+112
+112
+112
+112
+112
+112
+112
+132
+132
+132
+132
+132
+132
+132
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+268
+268
+268
+356
+356
+356
+36
+44
+44
+44
+44
+44
+56
+56
+56
+56
+64
+64
+64
+64
+64
+76
+76
+76
+76
+76
+76
+88
+88
+88
+88
+88
+88
+88
+112
+112
+112
+112
+112
+112
+112
+112
+132
+132
+132
+132
+132
+132
+132
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+268
+268
+268
+356
+356
+356
+36
+44
+44
+44
+44
+44
+56
+56
+56
+56
+64
+64
+64
+64
+64
+76
+76
+76
+76
+76
+76
+88
+88
+88
+88
+88
+88
+88
+112
+112
+112
+112
+112
+112
+112
+112
+132
+132
+132
+132
+132
+132
+132
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+268
+268
+268
+356
+356
+356
+0
+-38
+26
+-29
+6
+-10
+-1
+-6
+0
+17
+-12
+-12
+0
+0
+-3
+-2
+-2
+0
+1
+4
+-14
+-4
+-2
+-3
+-1
+0
+1
+-1
+0
+0
+1
+1
+-1
+3
+-1
+0
+-6
+0
+0
+0
+2
+1
+-1
+2
+-1
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+-1
+1
+0
+0
+-1
+1
+0
+0
+0
+0
+0
+1
+59
+0
+0
+0
+-42
+8
+-38
+-10
+12
+-2
+4
+3
+-9
+-12
+-4
+-8
+0
+9
+7
+-4
+-2
+-8
+1
+1
+6
+2
+2
+-2
+0
+-4
+0
+0
+0
+-2
+1
+0
+-1
+0
+-2
+-3
+0
+0
+0
+1
+0
+2
+-2
+1
+0
+0
+0
+1
+0
+0
+0
+0
+0
+1
+0
+0
+0
+-2
+-1
+1
+-1
+0
+0
+0
+1
+61
+0
+0
+1
+-22
+-4
+-14
+9
+-8
+10
+1
+14
+9
+3
+0
+-22
+-5
+7
+-7
+0
+3
+3
+0
+-15
+8
+2
+2
+2
+12
+2
+-1
+-2
+2
+0
+1
+-1
+-1
+-1
+-3
+1
+-3
+-2
+2
+0
+0
+0
+-1
+0
+2
+0
+0
+-2
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+0
+-1
+0
+1
+63
+0
+0
+2
+-34
+1
+-15
+10
+2
+14
+14
+9
+0
+8
+10
+-13
+0
+4
+9
+3
+-4
+0
+3
+-7
+13
+2
+-3
+1
+-3
+2
+-2
+-2
+1
+-1
+-3
+0
+0
+-2
+1
+-1
+0
+1
+2
+0
+1
+-1
+0
+3
+-3
+0
+0
+0
+2
+0
+0
+0
+1
+0
+1
+0
+0
+0
+-1
+0
+0
+0
+0
+1
+1
+59
+0
+0
+3
+-23
+4
+-40
+3
+11
+2
+-4
+-15
+15
+15
+20
+-2
+-5
+0
+7
+2
+-2
+-1
+-4
+2
+5
+1
+0
+-5
+-1
+0
+0
+-1
+3
+2
+0
+3
+-1
+-1
+1
+0
+2
+0
+0
+0
+0
+0
+-2
+3
+0
+0
+-1
+0
+1
+1
+0
+0
+1
+3
+0
+0
+0
+0
+-2
+0
+0
+0
+-1
+1
+1
+63
+0
+0
+4
+-25
+14
+-37
+-11
+3
+4
+-3
+-6
+0
+8
+16
+7
+-17
+2
+6
+1
+0
+0
+-3
+-5
+10
+0
+0
+-3
+-5
+2
+0
+1
+1
+-1
+-1
+-3
+0
+-3
+2
+-2
+2
+2
+0
+2
+0
+1
+0
+0
+-1
+0
+0
+1
+0
+0
+1
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+-2
+0
+1
+63
+0
+0
+5
+-18
+-10
+-11
+9
+-15
+18
+13
+13
+-3
+10
+11
+-11
+0
+9
+1
+2
+3
+6
+2
+10
+1
+-8
+0
+2
+5
+0
+0
+0
+-2
+2
+0
+-1
+0
+0
+2
+-2
+0
+0
+-4
+1
+1
+0
+4
+-2
+0
+0
+0
+0
+-1
+1
+-1
+-2
+0
+0
+0
+1
+0
+1
+1
+0
+0
+0
+0
+-2
+1
+63
+0
+0
+6
+-5
+-1
+-22
+6
+2
+0
+6
+15
+5
+26
+6
+-2
+-6
+1
+-1
+-1
+-4
+5
+0
+12
+-1
+-7
+0
+0
+-1
+-3
+-1
+-2
+3
+-2
+3
+-1
+-1
+-2
+1
+-1
+1
+0
+0
+0
+0
+1
+3
+-1
+0
+0
+-3
+0
+-2
+-1
+-1
+1
+0
+1
+0
+0
+0
+1
+1
+0
+1
+-2
+3
+0
+1
+63
+0
+0
+7
+-2
+13
+-12
+9
+-9
+6
+-16
+-8
+4
+-4
+-3
+16
+-6
+2
+-1
+-1
+2
+-6
+-2
+0
+2
+2
+-7
+3
+-4
+3
+1
+2
+1
+0
+0
+0
+-5
+2
+-2
+0
+-1
+2
+0
+-3
+0
+0
+3
+-1
+0
+0
+0
+2
+1
+2
+1
+0
+0
+0
+0
+-1
+0
+-1
+0
+0
+0
+0
+0
+0
+1
+58
+0
+0
+8
+-21
+0
+-15
+-9
+9
+-3
+1
+11
+3
+3
+-6
+9
+-14
+-1
+4
+1
+0
+0
+-6
+0
+7
+4
+-3
+0
+-2
+-1
+-2
+-2
+-2
+-1
+0
+-1
+0
+1
+0
+0
+-2
+0
+0
+1
+1
+-2
+-4
+0
+1
+0
+0
+0
+0
+2
+0
+0
+2
+-4
+-3
+0
+0
+0
+0
+0
+2
+2
+0
+0
+1
+62
+0
+0
+9
+-12
+-6
+-18
+-5
+16
+-11
+5
+4
+5
+-9
+-5
+-1
+10
+10
+-4
+7
+8
+-1
+4
+2
+-7
+0
+2
+2
+3
+4
+0
+2
+0
+2
+-1
+3
+-1
+-3
+3
+1
+0
+-3
+-2
+-2
+2
+0
+1
+-2
+-2
+0
+0
+-2
+-1
+0
+0
+1
+0
+-1
+0
+0
+0
+1
+0
+0
+0
+1
+0
+0
+1
+62
+0
+0
+10
+-43
+14
+-20
+7
+1
+6
+9
+14
+16
+-3
+3
+5
+-11
+2
+4
+-3
+0
+7
+3
+-1
+-8
+1
+-8
+2
+3
+-1
+1
+0
+0
+-2
+0
+3
+0
+-3
+-1
+3
+-1
+-3
+-2
+0
+-1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+0
+1
+0
+0
+1
+-1
+0
+2
+0
+0
+1
+62
+0
+0
+11
+-44
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+12
+-43
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+3
+0
+0
+13
+-42
+0
+-2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+3
+0
+0
+14
+-41
+-1
+-2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+3
+0
+0
+15
+-41
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+3
+0
+0
+16
+-42
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+17
+-42
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+18
+-44
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+19
+-46
+0
+-2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+3
+0
+0
+20
+-48
+0
+-2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+3
+0
+0
+21
+-49
+0
+-1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+4
+0
+0
+22
+-54
+5
+-1
+0
+0
+-3
+2
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+15
+0
+0
+23
+-37
+0
+-2
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+4
+0
+0
+24
+-36
+0
+-2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+3
+0
+0
+25
+-36
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+26
+-20
+0
+-13
+-9
+-1
+-2
+-3
+0
+1
+13
+-2
+0
+1
+2
+0
+-1
+0
+0
+-1
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+36
+0
+0
+27
+-18
+-8
+-16
+-10
+9
+4
+0
+-6
+-6
+11
+1
+4
+4
+0
+0
+0
+1
+0
+-1
+-2
+-3
+0
+0
+0
+0
+-1
+0
+-1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+54
+0
+0
+28
+-20
+0
+-15
+-11
+-2
+3
+0
+-2
+3
+16
+-3
+-1
+0
+0
+2
+1
+-1
+0
+0
+0
+-3
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+44
+0
+0
+29
+-23
+-3
+-12
+-12
+2
+0
+0
+0
+1
+14
+-2
+-1
+0
+0
+0
+-1
+0
+0
+0
+0
+-3
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+28
+0
+0
+30
+-25
+2
+-10
+-12
+0
+1
+-2
+0
+-1
+12
+0
+2
+0
+1
+1
+0
+0
+0
+0
+-1
+-4
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+25
+0
+0
+31
+-22
+-2
+-15
+-10
+2
+0
+-2
+0
+0
+13
+0
+-2
+0
+0
+0
+0
+0
+1
+0
+1
+-4
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+25
+0
+0
+32
+-37
+0
+-5
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+5
+0
+0
+33
+-39
+1
+-5
+0
+0
+0
+0
+0
+0
+2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+10
+0
+0
+34
+-45
+5
+-5
+-2
+0
+-5
+3
+0
+0
+2
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+21
+0
+0
+35
+-35
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+3
+0
+0
+36
+-32
+0
+-3
+3
+0
+-1
+0
+1
+0
+-3
+1
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+13
+0
+0
+37
+-32
+0
+-4
+1
+0
+0
+0
+0
+0
+1
+-1
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+12
+0
+0
+38
+-35
+0
+-5
+0
+0
+0
+0
+0
+0
+3
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+21
+0
+0
+39
+-40
+7
+16
+10
+-21
+0
+-2
+3
+-9
+2
+0
+0
+-3
+3
+0
+0
+-2
+5
+-2
+1
+0
+0
+0
+0
+2
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+26
+0
+0
+40
+-30
+3
+5
+-2
+7
+2
+0
+5
+0
+-3
+-3
+-1
+0
+2
+0
+0
+0
+0
+-1
+-2
+-1
+0
+-1
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+24
+0
+0
+41
+-32
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+11
+0
+0
+42
+-30
+0
+1
+1
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+10
+0
+0
+43
+-31
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+3
+0
+0
+44
+-31
+1
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+3
+0
+0
+45
+-35
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+3
+0
+0
+46
+-40
+7
+-1
+0
+0
+-5
+3
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+15
+0
+0
+47
+-32
+0
+1
+2
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+10
+0
+0
+48
+-31
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+4
+0
+0
+49
+-29
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+50
+-29
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+51
+-41
+19
+0
+-4
+0
+-11
+2
+1
+4
+1
+0
+0
+0
+-1
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+18
+0
+0
+52
+-41
+-17
+0
+1
+0
+-8
+0
+-1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+9
+0
+0
+53
+-29
+0
+-2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+3
+0
+0
+54
+-28
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+3
+0
+0
+55
+-26
+0
+-2
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+4
+0
+0
+56
+-27
+0
+-2
+2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+4
+0
+0
+57
+-29
+1
+-2
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+4
+0
+0
+58
+-37
+7
+-1
+0
+0
+-5
+3
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+15
+0
+0
+59
+-47
+-3
+4
+10
+2
+-4
+0
+0
+0
+-2
+-1
+0
+4
+1
+1
+0
+0
+-2
+0
+0
+0
+-1
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+24
+0
+0
+60
+-40
+-14
+3
+7
+3
+3
+2
+-2
+8
+-2
+-3
+-2
+0
+-1
+0
+0
+0
+0
+0
+-2
+2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+21
+0
+0
+61
+-24
+-3
+0
+-9
+2
+6
+-1
+-3
+2
+7
+-2
+-3
+-1
+0
+1
+0
+0
+1
+1
+0
+2
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+25
+0
+0
+62
+-15
+-3
+-6
+-15
+2
+1
+1
+-2
+0
+17
+-3
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+21
+0
+0
+63
+-39
+10
+-25
+13
+21
+15
+-3
+-7
+-13
+2
+-3
+2
+-3
+-3
+1
+1
+1
+0
+3
+2
+0
+0
+-1
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+24
+0
+0
+64
+-21
+-6
+-31
+6
+-18
+1
+1
+-4
+9
+12
+-8
+0
+5
+3
+0
+0
+3
+0
+-2
+-1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+21
+0
+0
+65
+-19
+0
+-8
+0
+-1
+7
+0
+-6
+0
+5
+-4
+0
+2
+0
+-2
+0
+2
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+21
+0
+0
+66
+-21
+4
+-4
+1
+-4
+3
+-2
+-2
+1
+1
+-2
+0
+1
+2
+0
+0
+0
+0
+0
+-1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+21
+0
+0
+67
+-17
+4
+-8
+6
+-5
+0
+0
+0
+2
+-1
+-2
+0
+0
+0
+1
+0
+-1
+0
+0
+-1
+3
+-1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+23
+0
+0
+68
+-22
+0
+0
+1
+0
+1
+0
+-1
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+10
+0
+0
+69
+-26
+0
+1
+0
+2
+-3
+1
+3
+-1
+0
+0
+0
+-2
+-1
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+19
+0
+0
+70
+-28
+9
+-7
+5
+0
+-10
+2
+4
+0
+-5
+2
+0
+-3
+1
+-2
+0
+0
+0
+2
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+21
+0
+0
+71
+-70
+0
+23
+4
+1
+-2
+0
+0
+0
+0
+2
+-2
+0
+0
+0
+0
+0
+0
+-1
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+20
+0
+0
+72
+-64
+-5
+22
+3
+-2
+-8
+0
+0
+1
+0
+3
+0
+-1
+1
+2
+1
+-1
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+21
+0
+0
+73
+-75
+0
+21
+8
+0
+2
+0
+0
+0
+3
+2
+1
+-1
+-1
+0
+0
+0
+0
+0
+1
+2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+21
+0
+0
+74
+-74
+-3
+19
+4
+-2
+3
+1
+3
+0
+-1
+0
+0
+2
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+21
+0
+0
+75
+-25
+-44
+24
+-3
+0
+3
+0
+-5
+1
+-2
+0
+0
+6
+5
+2
+0
+0
+0
+1
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+32
+0
+0
+76
+-17
+61
+8
+2
+-11
+10
+-7
+2
+-2
+-1
+0
+2
+0
+1
+-5
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+-1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+43
+0
+0
+77
+-28
+-28
+23
+-9
+-3
+-14
+9
+6
+8
+-10
+-2
+2
+8
+0
+-4
+1
+0
+-3
+0
+-1
+1
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+25
+0
+0
+78
+-49
+-5
+14
+3
+-2
+0
+0
+-2
+-1
+2
+-1
+0
+-2
+0
+0
+0
+0
+0
+0
+1
+-1
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+24
+0
+0
+79
+-41
+0
+17
+8
+-3
+-6
+0
+0
+-2
+-2
+0
+3
+2
+0
+1
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+20
+0
+0
+80
+-50
+14
+19
+13
+0
+4
+-5
+0
+-2
+-7
+2
+1
+-1
+1
+-4
+-1
+0
+1
+-1
+-1
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+21
+0
+0
+81
+-52
+-2
+19
+17
+1
+-1
+0
+-1
+-1
+-18
+3
+1
+0
+0
+0
+0
+0
+0
+0
+0
+-3
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+36
+0
+0
+82
+-52
+7
+19
+25
+2
+-6
+3
+-2
+0
+-13
+6
+-3
+-3
+1
+0
+0
+0
+0
+0
+0
+-4
+2
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+25
+0
+0
+83
+-22
+0
+-21
+-28
+0
+2
+0
+-1
+-2
+-13
+0
+1
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+4
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+36
+0
+0
+84
+-21
+0
+-17
+-23
+-2
+0
+0
+-3
+1
+-13
+-1
+0
+-1
+1
+0
+0
+0
+-2
+-2
+0
+0
+2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+22
+0
+0
+85
+-22
+14
+-7
+-27
+-17
+-3
+-3
+3
+8
+-15
+-3
+-2
+-2
+3
+0
+0
+0
+-1
+0
+0
+-3
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+24
+0
+0
+86
+-15
+-3
+-4
+-20
+2
+-11
+0
+8
+-5
+-17
+-7
+0
+0
+0
+1
+0
+-1
+0
+-1
+1
+-4
+-2
+0
+1
+2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+25
+0
+0
+87
+-21
+-4
+2
+-14
+-6
+12
+-2
+14
+3
+-16
+3
+-2
+1
+-7
+-3
+1
+1
+-2
+-2
+-5
+1
+-1
+-2
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+26
+0
+0
+88
+-25
+-11
+34
+2
+25
+5
+-1
+-3
+3
+-12
+-5
+2
+5
+0
+0
+1
+1
+-1
+0
+0
+0
+0
+0
+-1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+25
+0
+0
+89
+-10
+6
+7
+4
+-7
+0
+-3
+-1
+-5
+-12
+-5
+2
+-2
+3
+0
+0
+-1
+2
+2
+-2
+-2
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+39
+0
+0
+90
+-5
+5
+7
+8
+-1
+3
+0
+-1
+-7
+0
+-5
+-1
+-2
+0
+0
+0
+0
+0
+0
+1
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+22
+0
+0
+91
+-6
+-4
+4
+15
+3
+1
+0
+-1
+0
+5
+-2
+0
+1
+0
+0
+0
+0
+0
+0
+0
+-2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+21
+0
+0
+92
+0
+4
+1
+12
+-4
+3
+-5
+3
+2
+5
+-1
+0
+-3
+1
+-1
+0
+0
+2
+-1
+0
+0
+-1
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+24
+0
+0
+93
+-10
+1
+3
+10
+2
+3
+0
+0
+0
+9
+2
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+-2
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+22
+0
+0
+94
+-10
+17
+-7
+11
+2
+-14
+2
+0
+-2
+14
+0
+-5
+1
+-1
+-1
+0
+1
+0
+0
+3
+-1
+0
+0
+1
+3
+-1
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+32
+0
+0
+95
+-10
+0
+-6
+-4
+0
+0
+0
+0
+0
+0
+-3
+1
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+21
+0
+0
+96
+-1
+-13
+-2
+3
+3
+4
+0
+0
+-3
+0
+-2
+0
+2
+-2
+0
+0
+0
+0
+0
+2
+-1
+0
+1
+-1
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+25
+0
+0
+97
+7
+2
+3
+-11
+-9
+0
+3
+-4
+1
+-5
+-2
+5
+1
+2
+1
+0
+1
+1
+3
+3
+-2
+0
+1
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+26
+0
+0
+98
+-9
+1
+0
+-3
+-1
+-2
+0
+-2
+-4
+-3
+0
+-2
+-2
+-1
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+19
+0
+0
+99
+-13
+0
+0
+-1
+2
+-1
+0
+-1
+0
+-1
+-1
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+19
+0
+0
+100
+-19
+-16
+-29
+-9
+-18
+8
+0
+10
+1
+0
+1
+2
+4
+0
+0
+0
+0
+-2
+-4
+1
+0
+0
+0
+-1
+-2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+25
+0
+0
+101
+-3
+3
+2
+8
+5
+0
+1
+-1
+-1
+-2
+0
+0
+0
+1
+0
+0
+0
+0
+-1
+-1
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+21
+0
+0
+102
+0
+-6
+-14
+10
+5
+2
+-1
+-1
+-1
+-4
+1
+-1
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+20
+0
+0
+103
+13
+0
+-17
+12
+-2
+-2
+0
+-2
+-7
+-6
+2
+0
+0
+1
+0
+0
+0
+0
+3
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+20
+0
+0
+104
+12
+-2
+-29
+15
+4
+0
+0
+0
+1
+0
+-2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+21
+0
+0
+105
+20
+-7
+-32
+9
+-3
+1
+1
+1
+4
+0
+-2
+2
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+18
+0
+0
+106
+10
+18
+-29
+14
+2
+-8
+6
+4
+3
+3
+-2
+1
+0
+-1
+-3
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+17
+0
+0
+107
+5
+-4
+-18
+6
+4
+2
+0
+-1
+2
+-1
+0
+-1
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+14
+0
+0
+108
+25
+-1
+-21
+6
+0
+-2
+2
+-6
+-6
+0
+1
+-1
+-2
+0
+0
+-1
+0
+1
+2
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+20
+0
+0
+109
+25
+-3
+-33
+2
+0
+0
+0
+0
+4
+4
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+10
+0
+0
+110
+33
+-4
+-32
+-8
+-2
+0
+0
+0
+1
+2
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+12
+0
+0
+111
+45
+-9
+-22
+-12
+-5
+3
+0
+1
+0
+-3
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+10
+0
+0
+112
+51
+1
+-12
+-9
+-2
+5
+-1
+0
+-2
+-4
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+11
+0
+0
+113
+55
+-4
+-2
+-4
+-1
+3
+2
+-1
+0
+-5
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+21
+0
+0
+114
+62
+1
+2
+-1
+-1
+0
+0
+0
+-1
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+10
+0
+0
+115
+60
+0
+3
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+3
+0
+0
+116
+62
+-1
+2
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+5
+0
+0
+117
+64
+0
+0
+-2
+0
+2
+1
+2
+0
+0
+2
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+14
+0
+0
+118
+56
+16
+0
+0
+0
+-15
+9
+0
+0
+0
+0
+0
+0
+0
+-5
+2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+28
+0
+0
+119
+-20
+-6
+-2
+0
+-5
+-2
+1
+-2
+-1
+1
+0
+0
+0
+0
+1
+0
+1
+-1
+1
+0
+-1
+-1
+0
+1
+0
+0
+1
+0
+1
+-1
+2
+-1
+1
+1
+0
+-1
+0
+1
+1
+0
+1
+-1
+1
+1
+0
+-1
+1
+-1
+0
+-1
+1
+-1
+0
+1
+0
+0
+0
+0
+1
+0
+0
+-1
+-1
+-1
+1
+63
+0
+0
+120
+-9
+1
+1
+-7
+0
+-2
+0
+-3
+-2
+-3
+0
+-1
+-1
+1
+0
+0
+1
+1
+0
+0
+0
+-1
+0
+-1
+0
+0
+0
+0
+1
+0
+1
+0
+-1
+-1
+1
+-2
+1
+-2
+-1
+0
+1
+0
+1
+0
+0
+0
+0
+0
+-1
+1
+0
+0
+-1
+-1
+0
+0
+0
+0
+0
+1
+0
+0
+1
+-1
+1
+63
+0
+0
+121
+-23
+2
+-6
+-1
+4
+-5
+1
+-7
+3
+1
+1
+1
+-3
+0
+1
+1
+1
+-1
+-1
+0
+1
+1
+0
+0
+-1
+0
+1
+-1
+1
+0
+0
+0
+-1
+0
+1
+0
+1
+-1
+0
+0
+0
+2
+1
+0
+2
+0
+1
+0
+-1
+0
+1
+1
+0
+0
+0
+-1
+1
+1
+0
+0
+0
+0
+0
+0
+1
+58
+0
+0
+122
+-21
+-2
+-3
+2
+-1
+-2
+-2
+0
+0
+1
+0
+0
+1
+-1
+0
+-1
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+1
+-1
+0
+0
+0
+1
+1
+0
+-1
+0
+0
+0
+-1
+0
+1
+1
+-1
+0
+-1
+-1
+0
+0
+0
+0
+0
+0
+0
+-1
+-1
+-1
+-1
+0
+0
+0
+-1
+0
+0
+-1
+0
+1
+63
+0
+0
+123
+-25
+-2
+-5
+4
+-1
+0
+-1
+0
+0
+4
+1
+0
+0
+-1
+0
+0
+0
+0
+-2
+0
+1
+0
+0
+-3
+0
+0
+0
+1
+0
+0
+0
+-1
+0
+-2
+0
+0
+0
+0
+0
+-2
+0
+-1
+0
+1
+-1
+1
+-1
+0
+1
+0
+0
+1
+0
+1
+0
+0
+0
+1
+0
+0
+0
+0
+0
+1
+1
+58
+0
+0
+124
+-20
+1
+-3
+-2
+2
+5
+1
+1
+2
+-2
+-1
+1
+-2
+1
+0
+2
+0
+0
+-1
+1
+0
+0
+0
+0
+0
+0
+2
+0
+0
+0
+0
+0
+0
+0
+0
+1
+-1
+0
+0
+0
+-2
+0
+0
+1
+0
+-2
+0
+-1
+0
+-1
+1
+-1
+0
+1
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+1
+58
+0
+0
+125
+-17
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+126
+-16
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+127
+-13
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+128
+-15
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+3
+0
+0
+129
+-15
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+3
+0
+0
+130
+-16
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+131
+-10
+0
+-5
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+4
+0
+0
+132
+-13
+0
+-4
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+4
+0
+0
+133
+-14
+0
+1
+-2
+0
+0
+0
+-2
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+13
+0
+0
+134
+-14
+0
+-3
+2
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+5
+0
+0
+135
+-15
+0
+-3
+2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+4
+0
+0
+136
+-15
+0
+-2
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+4
+0
+0
+137
+-4
+0
+2
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+4
+0
+0
+138
+-5
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+3
+0
+0
+139
+-16
+1
+-5
+1
+0
+5
+0
+3
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+9
+0
+0
+140
+-6
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+4
+0
+0
+141
+-5
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+4
+0
+0
+142
+-4
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+143
+-2
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+3
+0
+0
+144
+-1
+0
+-2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+3
+0
+0
+145
+0
+0
+-2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+3
+0
+0
+146
+0
+0
+-3
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+3
+0
+0
+147
+1
+0
+-3
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+3
+0
+0
+148
+1
+0
+-2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+3
+0
+0
+149
+-22
+-1
+-11
+3
+1
+-1
+0
+-2
+4
+2
+-1
+2
+-1
+0
+0
+1
+0
+0
+0
+0
+-2
+-1
+0
+0
+0
+0
+1
+0
+-1
+0
+0
+0
+-1
+0
+0
+0
+1
+0
+-1
+0
+0
+0
+-1
+0
+1
+1
+1
+-1
+0
+0
+1
+2
+1
+0
+0
+0
+2
+0
+1
+0
+0
+0
+0
+0
+1
+59
+0
+0
+150
+-22
+1
+-14
+-2
+1
+1
+-1
+0
+1
+0
+-1
+1
+-1
+-1
+0
+-1
+-1
+0
+-1
+0
+0
+1
+0
+-1
+0
+0
+0
+-1
+0
+-1
+0
+0
+0
+0
+0
+2
+0
+2
+0
+0
+0
+0
+0
+-1
+0
+-1
+0
+0
+2
+0
+0
+-1
+-1
+-2
+-1
+-1
+0
+0
+1
+0
+-1
+-1
+0
+-1
+1
+62
+0
+0
+151
+-15
+4
+-10
+-2
+-1
+4
+0
+3
+-8
+0
+0
+-3
+0
+0
+1
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+-1
+-1
+0
+0
+-1
+0
+-1
+0
+0
+0
+-1
+0
+-1
+0
+0
+-1
+0
+0
+0
+0
+1
+0
+0
+1
+2
+1
+1
+1
+1
+0
+2
+0
+0
+-1
+1
+61
+0
+0
+152
+-6
+-5
+-2
+-1
+-3
+3
+0
+3
+2
+-1
+-1
+1
+0
+0
+0
+-1
+0
+0
+0
+0
+-1
+-1
+0
+1
+1
+1
+-1
+1
+0
+0
+0
+2
+1
+1
+0
+-1
+1
+0
+1
+2
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+1
+1
+0
+1
+1
+0
+0
+0
+0
+1
+0
+-1
+-1
+1
+63
+0
+0
+153
+-14
+-2
+-10
+-2
+-1
+2
+2
+1
+2
+1
+1
+1
+-1
+1
+0
+0
+-1
+0
+-1
+0
+0
+0
+0
+0
+0
+-1
+-1
+0
+1
+0
+-1
+-1
+0
+0
+0
+0
+0
+0
+0
+-2
+-1
+0
+1
+-1
+0
+-1
+-2
+0
+0
+0
+-1
+0
+1
+-2
+-1
+0
+0
+0
+1
+0
+0
+0
+0
+0
+1
+59
+0
+0
+154
+-10
+8
+-5
+-1
+6
+6
+2
+6
+0
+0
+0
+-1
+1
+1
+-1
+-1
+-1
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+-1
+1
+-1
+1
+0
+0
+0
+0
+1
+0
+1
+0
+0
+1
+0
+1
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+-1
+1
+0
+1
+-1
+2
+2
+0
+1
+1
+62
+0
+0
+155
+-3
+0
+-1
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+5
+0
+0
+156
+-3
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+157
+-3
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+158
+-3
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+159
+-3
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+160
+-3
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+161
+-3
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+162
+-1
+-1
+-2
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+5
+0
+0
+163
+-1
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+8
+0
+0
+164
+-3
+1
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+5
+0
+0
+165
+-4
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+166
+-3
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+167
+2
+0
+-4
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+4
+0
+0
+168
+1
+0
+-3
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+3
+0
+0
+169
+1
+1
+-3
+1
+-1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+6
+0
+0
+170
+2
+0
+-3
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+5
+0
+0
+171
+2
+1
+-3
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+4
+0
+0
+172
+2
+0
+-2
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+4
+0
+0
+173
+4
+1
+3
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+4
+0
+0
+174
+1
+0
+2
+-2
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+5
+0
+0
+175
+0
+1
+4
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+3
+0
+0
+176
+-2
+0
+4
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+3
+0
+0
+177
+-4
+0
+3
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+4
+0
+0
+178
+-4
+0
+3
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+4
+0
+0
+179
+-1
+-1
+-1
+-1
+-1
+-4096
+70
+151
+16
+16
+20
+24
+20
+16
+28
+24
+20
+24
+28
+28
+28
+32
+40
+68
+44
+40
+36
+36
+40
+84
+60
+64
+48
+68
+100
+88
+104
+104
+100
+88
+100
+96
+112
+124
+160
+136
+112
+116
+152
+120
+96
+96
+140
+188
+140
+152
+164
+172
+180
+180
+180
+108
+132
+196
+212
+196
+176
+208
+160
+176
+180
+172
+20
+28
+28
+40
+36
+40
+80
+44
+44
+80
+172
+116
+96
+116
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+20
+28
+28
+40
+36
+40
+80
+44
+44
+80
+172
+116
+96
+116
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+172
+32
+28
+28
+28
+28
+28
+32
+32
+32
+32
+40
+40
+40
+40
+40
+48
+48
+48
+48
+48
+48
+56
+56
+56
+56
+56
+56
+56
+68
+68
+68
+68
+68
+68
+68
+68
+84
+84
+84
+84
+84
+84
+84
+112
+112
+112
+112
+112
+112
+112
+112
+112
+112
+112
+112
+112
+112
+112
+168
+168
+168
+224
+224
+224
+32
+28
+28
+28
+28
+28
+32
+32
+32
+32
+40
+40
+40
+40
+40
+48
+48
+48
+48
+48
+48
+56
+56
+56
+56
+56
+56
+56
+68
+68
+68
+68
+68
+68
+68
+68
+84
+84
+84
+84
+84
+84
+84
+112
+112
+112
+112
+112
+112
+112
+112
+112
+112
+112
+112
+112
+112
+112
+168
+168
+168
+224
+224
+224
+32
+28
+28
+28
+28
+28
+32
+32
+32
+32
+40
+40
+40
+40
+40
+48
+48
+48
+48
+48
+48
+56
+56
+56
+56
+56
+56
+56
+68
+68
+68
+68
+68
+68
+68
+68
+84
+84
+84
+84
+84
+84
+84
+112
+112
+112
+112
+112
+112
+112
+112
+112
+112
+112
+112
+112
+112
+112
+168
+168
+168
+224
+224
+224
+1
+-2
+0
+0
+1
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+-1
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+-2
+2
+-2
+2
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+2
+0
+0
+0
+-1
+-1
+-1
+0
+0
+0
+1
+0
+0
+0
+0
+2
+1
+0
+1
+0
+0
+0
+-1
+1
+0
+63
+0
+0
+0
+-2
+0
+-2
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-2
+0
+0
+0
+0
+0
+1
+0
+-1
+-1
+0
+-1
+-1
+0
+0
+0
+1
+0
+1
+0
+-2
+0
+0
+-1
+1
+2
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+-1
+1
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+55
+0
+0
+1
+-2
+0
+0
+2
+0
+0
+0
+1
+2
+0
+0
+-1
+0
+0
+0
+0
+1
+1
+0
+-1
+1
+0
+0
+0
+0
+0
+-2
+0
+0
+0
+0
+-1
+-1
+-1
+-1
+0
+0
+-1
+0
+0
+-1
+0
+0
+0
+0
+1
+1
+0
+2
+0
+0
+-2
+0
+1
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+58
+0
+0
+2
+-2
+1
+-1
+0
+0
+1
+0
+0
+0
+1
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+2
+1
+0
+0
+0
+0
+0
+-1
+1
+-1
+-1
+-1
+1
+-1
+0
+-2
+0
+0
+1
+0
+1
+0
+0
+0
+0
+-2
+0
+0
+0
+1
+2
+2
+0
+-1
+1
+-1
+0
+2
+0
+0
+0
+0
+0
+0
+0
+58
+0
+0
+3
+-2
+-1
+-2
+0
+0
+1
+0
+0
+0
+1
+2
+0
+0
+0
+1
+1
+0
+0
+0
+0
+1
+1
+0
+0
+-1
+-1
+-1
+0
+1
+0
+0
+1
+0
+0
+2
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+-1
+0
+-1
+0
+0
+0
+1
+1
+0
+0
+-1
+0
+1
+2
+0
+0
+0
+0
+0
+0
+0
+58
+0
+0
+4
+-3
+0
+-3
+0
+0
+0
+0
+0
+0
+2
+1
+0
+0
+1
+1
+2
+0
+0
+0
+0
+1
+1
+0
+0
+-1
+1
+0
+0
+1
+0
+-1
+-1
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+1
+0
+2
+0
+0
+-2
+0
+0
+0
+0
+0
+-1
+2
+-1
+-1
+1
+0
+1
+0
+0
+0
+0
+61
+0
+0
+5
+-1
+0
+0
+1
+-2
+0
+1
+1
+0
+1
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+-1
+1
+1
+0
+0
+-2
+0
+0
+1
+-1
+0
+1
+2
+0
+-1
+1
+0
+0
+1
+1
+0
+1
+0
+0
+0
+1
+-1
+0
+0
+-1
+0
+0
+0
+0
+0
+1
+0
+0
+-1
+0
+0
+0
+0
+0
+60
+0
+0
+6
+-1
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+0
+-1
+-2
+0
+1
+0
+0
+-1
+0
+0
+0
+-1
+1
+1
+0
+0
+-1
+0
+0
+0
+2
+0
+0
+0
+0
+-1
+0
+0
+2
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+56
+0
+0
+7
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+1
+0
+0
+1
+0
+0
+0
+-1
+-1
+0
+-2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+-1
+-1
+-1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+57
+0
+0
+8
+-1
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-2
+-2
+0
+-1
+-1
+0
+-2
+0
+0
+2
+0
+2
+1
+0
+0
+0
+-1
+0
+0
+0
+1
+0
+-1
+0
+1
+2
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+56
+0
+0
+9
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+-1
+1
+0
+-2
+1
+0
+2
+0
+0
+0
+0
+-1
+0
+0
+0
+2
+1
+0
+0
+2
+0
+0
+0
+0
+0
+0
+-2
+0
+0
+-1
+-1
+0
+0
+0
+0
+61
+0
+0
+10
+-2
+0
+-1
+0
+0
+0
+0
+1
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+2
+0
+1
+-2
+-2
+0
+0
+0
+0
+2
+-1
+-2
+0
+0
+-1
+1
+0
+0
+0
+-2
+1
+1
+1
+0
+-1
+2
+2
+0
+1
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+61
+0
+1
+11
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+0
+0
+15
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+1
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+-1
+0
+-1
+1
+0
+0
+0
+1
+0
+-1
+0
+1
+2
+0
+0
+0
+0
+0
+0
+0
+-1
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+0
+0
+0
+0
+0
+0
+-2
+0
+0
+0
+0
+0
+0
+0
+58
+0
+0
+27
+3
+0
+-6
+4
+0
+-5
+5
+6
+0
+-2
+1
+0
+-5
+-4
+0
+0
+0
+2
+4
+1
+-1
+1
+-2
+-2
+-2
+0
+-1
+0
+0
+0
+0
+0
+1
+1
+2
+0
+-1
+-2
+0
+1
+1
+1
+0
+0
+0
+-2
+0
+0
+2
+0
+0
+0
+0
+0
+1
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+57
+0
+0
+28
+0
+0
+1
+-1
+0
+0
+-2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+2
+1
+-1
+0
+-1
+-2
+0
+0
+0
+0
+1
+0
+1
+0
+0
+0
+0
+0
+0
+2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+54
+0
+0
+29
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+1
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+2
+0
+0
+0
+-1
+1
+0
+-1
+1
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+1
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+45
+0
+0
+30
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+1
+0
+0
+-1
+0
+0
+2
+1
+0
+0
+0
+1
+0
+0
+1
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+42
+0
+0
+31
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-2
+0
+0
+0
+0
+0
+2
+0
+0
+0
+0
+1
+-1
+1
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+1
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+56
+0
+0
+32
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+0
+0
+1
+34
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+-1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+16
+0
+1
+35
+0
+0
+-1
+1
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+1
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+21
+0
+0
+37
+-11
+6
+-5
+-2
+6
+5
+0
+-4
+5
+0
+3
+4
+-4
+0
+-2
+0
+3
+-3
+-4
+1
+3
+2
+0
+-4
+0
+3
+-2
+2
+0
+1
+0
+0
+0
+-1
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+35
+0
+0
+40
+-2
+-3
+5
+0
+6
+-2
+0
+3
+0
+1
+1
+0
+0
+1
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+-2
+0
+0
+0
+0
+0
+0
+-2
+0
+-1
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+35
+0
+0
+41
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+0
+0
+42
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+4
+0
+0
+43
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+0
+0
+1
+46
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+16
+0
+1
+47
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+11
+-1
+0
+48
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+1
+-1
+0
+49
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+1
+-1
+0
+50
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+1
+-1
+0
+51
+-6
+5
+1
+0
+0
+4
+-5
+-2
+-2
+0
+0
+0
+2
+2
+3
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+4
+15
+0
+1
+52
+-13
+-8
+-1
+2
+-1
+8
+6
+0
+-1
+1
+0
+0
+-3
+0
+0
+0
+1
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+4
+18
+0
+1
+53
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+1
+-1
+0
+54
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+0
+-1
+0
+55
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+-1
+0
+57
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+16
+-1
+1
+59
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+1
+2
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+37
+-1
+0
+60
+0
+0
+0
+0
+0
+0
+1
+0
+1
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+1
+-2
+0
+1
+0
+2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+37
+-1
+0
+61
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+-1
+0
+0
+0
+1
+-2
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+32
+-1
+0
+62
+-1
+0
+2
+-2
+0
+1
+0
+-1
+1
+2
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+36
+-1
+0
+63
+10
+2
+-4
+-16
+-2
+2
+-3
+-1
+0
+10
+0
+1
+4
+2
+-6
+0
+0
+0
+1
+-2
+-3
+2
+0
+0
+-2
+0
+0
+2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+4
+28
+0
+1
+64
+0
+3
+-9
+-4
+-4
+4
+-1
+4
+-6
+4
+0
+2
+-3
+2
+-1
+1
+-2
+0
+0
+3
+-2
+1
+-2
+1
+0
+0
+-2
+0
+0
+0
+1
+0
+0
+0
+-1
+0
+2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+4
+37
+0
+1
+65
+0
+0
+-1
+0
+1
+0
+0
+0
+-2
+1
+0
+1
+-1
+0
+0
+1
+0
+0
+2
+0
+-1
+2
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+24
+-1
+0
+66
+-1
+0
+2
+-1
+-1
+-1
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+23
+-1
+0
+67
+0
+0
+0
+-1
+0
+-2
+1
+2
+0
+2
+-2
+0
+-1
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+36
+-1
+0
+68
+0
+0
+1
+0
+0
+1
+0
+-2
+0
+0
+-1
+0
+1
+0
+0
+2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-2
+1
+0
+-1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+31
+-1
+0
+69
+0
+-2
+0
+0
+2
+2
+0
+-1
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+27
+-1
+1
+70
+0
+-2
+0
+0
+3
+-4
+0
+4
+-2
+1
+-2
+1
+-2
+0
+0
+1
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+21
+-1
+1
+71
+0
+0
+0
+1
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+1
+-1
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+36
+-1
+0
+72
+0
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+1
+-2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+-1
+2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+29
+-1
+0
+73
+0
+0
+-1
+0
+0
+-1
+0
+0
+0
+2
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+36
+-1
+0
+74
+-1
+1
+0
+2
+0
+0
+1
+0
+0
+0
+0
+0
+0
+1
+1
+0
+1
+0
+0
+0
+0
+-1
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+36
+-1
+0
+75
+-6
+4
+4
+3
+0
+5
+1
+4
+0
+1
+0
+0
+-3
+0
+0
+-2
+-1
+1
+0
+0
+1
+0
+2
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+31
+-1
+1
+76
+-3
+4
+3
+0
+-4
+2
+-1
+0
+2
+1
+0
+-2
+0
+1
+-2
+2
+-1
+0
+0
+2
+1
+0
+-1
+0
+0
+0
+-1
+2
+-3
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+43
+-1
+1
+77
+-3
+0
+-8
+-5
+5
+-1
+0
+1
+4
+5
+2
+0
+0
+-3
+1
+0
+2
+0
+-3
+-3
+-2
+-3
+1
+-1
+2
+-2
+-3
+-1
+0
+2
+0
+0
+1
+1
+0
+0
+0
+1
+-2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+39
+-1
+0
+78
+-1
+-1
+-5
+2
+0
+0
+0
+0
+-1
+1
+3
+1
+-1
+0
+0
+0
+0
+0
+0
+0
+-3
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+36
+-1
+0
+79
+0
+-1
+3
+-1
+0
+0
+0
+0
+0
+2
+-2
+2
+0
+0
+0
+0
+0
+0
+0
+-1
+-1
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+4
+22
+-1
+1
+80
+0
+0
+5
+0
+0
+-1
+-2
+0
+0
+-1
+3
+0
+-1
+1
+-2
+0
+0
+0
+0
+-1
+-2
+2
+0
+0
+0
+1
+-1
+4
+3
+0
+0
+0
+0
+0
+0
+-2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+4
+36
+-1
+1
+81
+-2
+0
+4
+0
+1
+0
+-1
+0
+0
+-4
+6
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-5
+4
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+36
+-1
+1
+82
+-3
+3
+3
+0
+0
+-2
+0
+0
+1
+-2
+4
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-3
+3
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+36
+-1
+1
+83
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+1
+0
+0
+-1
+1
+0
+1
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+26
+-1
+0
+84
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+1
+0
+-1
+0
+0
+0
+1
+-1
+0
+-1
+0
+0
+1
+0
+0
+1
+0
+0
+0
+0
+0
+2
+2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+36
+-1
+0
+85
+0
+1
+1
+0
+0
+-2
+0
+3
+0
+-1
+0
+0
+0
+0
+0
+-2
+0
+0
+0
+-1
+0
+-1
+0
+0
+0
+0
+2
+0
+2
+0
+0
+0
+0
+-1
+0
+2
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+43
+-1
+0
+86
+0
+0
+4
+2
+0
+0
+0
+-1
+0
+1
+-1
+-2
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+1
+1
+1
+0
+0
+0
+-1
+0
+-2
+0
+-1
+-2
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+37
+-1
+0
+87
+-2
+2
+0
+-5
+0
+-3
+0
+-3
+-1
+-10
+-3
+2
+0
+0
+1
+0
+2
+1
+0
+0
+0
+0
+-1
+0
+1
+-1
+-1
+0
+0
+0
+0
+0
+0
+-1
+-1
+-1
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+39
+-1
+1
+88
+-2
+-7
+1
+4
+1
+-2
+-2
+-1
+1
+1
+0
+5
+1
+-1
+-1
+-1
+2
+-2
+1
+0
+0
+1
+-2
+2
+0
+0
+1
+-1
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+41
+-1
+1
+89
+3
+2
+2
+9
+2
+-2
+0
+0
+0
+7
+2
+1
+0
+-1
+2
+0
+-1
+1
+0
+0
+1
+0
+0
+-1
+0
+0
+0
+-1
+0
+0
+0
+0
+-1
+0
+0
+2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+36
+-1
+0
+90
+1
+0
+3
+3
+1
+0
+0
+0
+2
+3
+2
+-1
+0
+0
+-2
+-1
+0
+1
+0
+0
+0
+-1
+2
+0
+0
+2
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+31
+-1
+0
+91
+0
+1
+2
+3
+1
+1
+0
+0
+0
+1
+-2
+-2
+0
+0
+0
+0
+0
+0
+0
+0
+-4
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+4
+23
+-1
+1
+92
+1
+0
+1
+4
+-1
+0
+-1
+2
+0
+0
+-3
+0
+-1
+0
+0
+1
+0
+2
+0
+0
+0
+-2
+0
+0
+1
+0
+0
+0
+-1
+0
+-1
+0
+0
+0
+-1
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+4
+36
+-1
+1
+93
+0
+0
+2
+2
+1
+0
+1
+0
+-1
+0
+0
+-2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+36
+-1
+1
+94
+0
+3
+0
+1
+1
+-4
+3
+0
+0
+3
+2
+0
+1
+0
+-2
+0
+0
+-1
+1
+1
+-1
+0
+2
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+-1
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+40
+-1
+1
+95
+0
+-1
+0
+0
+0
+1
+-1
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+4
+23
+-1
+0
+96
+0
+0
+0
+0
+0
+2
+-1
+-2
+-1
+-2
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+4
+36
+-1
+0
+97
+2
+0
+2
+2
+-2
+1
+0
+1
+-1
+2
+0
+0
+1
+2
+0
+0
+1
+1
+1
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+25
+-1
+0
+98
+0
+2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+27
+-1
+0
+99
+0
+0
+0
+-2
+-2
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+4
+11
+-1
+1
+100
+-1
+0
+0
+-2
+0
+0
+0
+0
+2
+-2
+0
+-2
+0
+1
+2
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+4
+34
+-1
+1
+101
+1
+0
+-1
+2
+2
+0
+1
+1
+0
+0
+2
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+4
+14
+-1
+0
+102
+2
+0
+-2
+2
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+4
+9
+-1
+0
+103
+-2
+-2
+1
+0
+-2
+0
+0
+0
+-1
+-1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+4
+20
+-1
+1
+104
+0
+0
+0
+2
+0
+1
+0
+1
+0
+-2
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+4
+11
+-1
+1
+105
+-2
+1
+-2
+2
+2
+3
+-2
+1
+3
+-1
+0
+0
+-1
+-1
+0
+0
+0
+0
+-1
+0
+1
+0
+0
+-1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+25
+0
+1
+106
+0
+2
+0
+0
+3
+0
+0
+1
+1
+0
+-2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+28
+0
+1
+107
+0
+-1
+0
+0
+-1
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+4
+22
+-1
+0
+108
+1
+-1
+0
+0
+-2
+0
+-1
+-1
+0
+0
+0
+0
+0
+0
+-2
+0
+0
+1
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+4
+25
+-1
+0
+109
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+1
+-1
+0
+110
+2
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+21
+-1
+0
+111
+-2
+-2
+-4
+-2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+4
+4
+-1
+1
+112
+0
+0
+-1
+-1
+0
+0
+-1
+0
+-1
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+4
+28
+-1
+1
+113
+2
+0
+2
+2
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+4
+22
+-1
+0
+114
+1
+0
+1
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+4
+10
+-1
+0
+115
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+4
+1
+-1
+1
+116
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+4
+1
+-1
+1
+117
+1
+1
+0
+-2
+1
+1
+0
+1
+0
+0
+0
+0
+1
+0
+-1
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+17
+0
+1
+118
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+29
+0
+1
+119
+0
+0
+0
+1
+-2
+0
+2
+0
+-1
+0
+0
+0
+2
+1
+1
+3
+0
+0
+0
+-2
+1
+-2
+-2
+2
+0
+-2
+1
+-2
+-1
+0
+0
+0
+3
+2
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+1
+-1
+0
+0
+0
+0
+0
+0
+0
+1
+0
+-1
+0
+0
+0
+0
+0
+60
+0
+0
+120
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+-1
+4
+-3
+-2
+0
+-3
+-2
+0
+-1
+2
+0
+0
+2
+0
+-2
+3
+0
+0
+0
+-2
+-3
+0
+1
+0
+0
+-2
+0
+0
+1
+0
+-1
+0
+0
+0
+0
+-1
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+52
+0
+0
+121
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+1
+4
+0
+2
+1
+0
+0
+1
+0
+1
+0
+-1
+0
+0
+1
+0
+0
+-1
+-2
+0
+0
+0
+2
+0
+0
+-2
+0
+-2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+60
+0
+0
+122
+0
+0
+0
+0
+0
+0
+0
+-2
+-1
+1
+0
+-3
+0
+-3
+0
+-3
+1
+0
+3
+-4
+-2
+0
+-2
+0
+-2
+-1
+0
+2
+-1
+0
+-1
+0
+-2
+1
+1
+1
+2
+0
+-2
+-1
+1
+0
+-2
+0
+-2
+0
+0
+-1
+-2
+-1
+0
+-1
+0
+0
+0
+0
+-1
+0
+0
+-1
+-1
+0
+0
+0
+0
+61
+0
+0
+123
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+3
+0
+-2
+0
+-2
+3
+-1
+-2
+2
+0
+0
+3
+1
+0
+-1
+-1
+0
+0
+-1
+2
+-2
+0
+1
+0
+2
+2
+2
+0
+1
+0
+0
+0
+1
+0
+-2
+0
+0
+1
+0
+0
+0
+1
+-2
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+57
+0
+0
+124
+0
+0
+-1
+-1
+0
+0
+0
+1
+0
+0
+0
+1
+-1
+0
+2
+0
+0
+0
+-3
+0
+-3
+3
+2
+-2
+0
+0
+0
+-2
+0
+-1
+-2
+-2
+0
+1
+-2
+0
+0
+0
+-1
+-1
+0
+1
+2
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+-1
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+56
+0
+1
+125
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+0
+0
+127
+0
+0
+0
+-1
+0
+-1
+0
+0
+0
+-2
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+11
+0
+0
+128
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-2
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+11
+0
+0
+129
+0
+1
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+0
+0
+130
+0
+0
+0
+0
+0
+1
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+7
+0
+1
+131
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+0
+-1
+0
+132
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+0
+-1
+0
+133
+0
+0
+0
+0
+-2
+0
+0
+0
+1
+2
+0
+0
+0
+1
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+4
+19
+0
+1
+134
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+10
+-1
+0
+135
+0
+0
+-1
+0
+-1
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+10
+-1
+0
+136
+0
+0
+0
+1
+-1
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+10
+-1
+1
+137
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+10
+-1
+0
+138
+0
+0
+0
+1
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+10
+-1
+0
+139
+0
+0
+2
+0
+0
+0
+-1
+1
+0
+-1
+-1
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+18
+-1
+1
+140
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+0
+-1
+0
+141
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+4
+3
+-1
+1
+142
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+4
+-1
+1
+143
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+4
+0
+-1
+0
+144
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+4
+-1
+0
+145
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+4
+4
+-1
+1
+146
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+4
+0
+-1
+0
+147
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+4
+4
+-1
+1
+148
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+0
+0
+1
+149
+0
+0
+-2
+1
+1
+0
+2
+0
+1
+0
+0
+0
+0
+3
+0
+2
+0
+1
+-2
+3
+0
+1
+1
+0
+-2
+0
+0
+-3
+0
+-1
+-1
+0
+0
+-1
+2
+1
+0
+-2
+-1
+1
+-2
+2
+0
+-2
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+-1
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+58
+0
+0
+150
+0
+0
+-1
+0
+0
+0
+0
+1
+1
+-2
+0
+0
+0
+1
+-5
+1
+0
+-2
+-3
+2
+-2
+3
+1
+-3
+0
+-2
+-1
+0
+2
+0
+3
+0
+1
+0
+0
+0
+0
+0
+0
+1
+0
+-1
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+57
+0
+0
+151
+0
+0
+0
+-1
+0
+0
+1
+0
+-2
+0
+-1
+0
+-1
+0
+2
+-4
+0
+-2
+-2
+-1
+-1
+2
+2
+0
+-1
+0
+0
+3
+-2
+2
+1
+1
+0
+0
+0
+2
+-1
+0
+0
+-1
+0
+-1
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+1
+0
+1
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+60
+0
+0
+152
+0
+0
+-1
+0
+1
+2
+-1
+0
+0
+0
+0
+0
+1
+0
+-3
+0
+0
+1
+1
+-1
+-2
+-2
+-2
+-1
+0
+0
+0
+-1
+2
+1
+-1
+0
+2
+0
+2
+0
+0
+2
+0
+0
+1
+-1
+0
+-1
+0
+1
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+2
+-1
+0
+0
+0
+0
+0
+0
+0
+58
+0
+0
+153
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+1
+0
+3
+-4
+-3
+2
+3
+0
+3
+1
+-3
+0
+-3
+0
+1
+1
+0
+2
+-1
+0
+0
+-2
+-2
+0
+-3
+0
+-2
+-2
+1
+0
+0
+0
+0
+0
+0
+0
+-1
+-1
+0
+0
+-1
+0
+0
+0
+1
+1
+-1
+0
+0
+0
+0
+0
+0
+0
+58
+0
+0
+154
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+1
+0
+0
+-2
+0
+-1
+0
+1
+-2
+0
+-2
+-3
+0
+-1
+0
+1
+-1
+3
+-1
+-1
+-1
+0
+0
+0
+0
+1
+0
+-1
+0
+0
+0
+0
+1
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+54
+0
+1
+155
+0
+-1
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+9
+0
+0
+156
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+0
+0
+1
+161
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+0
+-1
+0
+162
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+11
+-1
+0
+163
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+4
+0
+0
+1
+164
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+0
+-1
+0
+165
+1
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+3
+-1
+0
+168
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+3
+-1
+0
+169
+0
+0
+-1
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+8
+-1
+1
+170
+1
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+10
+-1
+0
+171
+0
+0
+-1
+0
+-1
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+4
+21
+-1
+1
+172
+0
+0
+-1
+0
+-1
+0
+0
+0
+0
+2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+10
+-1
+1
+173
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+4
+1
+-1
+0
+174
+0
+-1
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+9
+-1
+0
+175
+0
+0
+1
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+4
+4
+-1
+1
+176
+0
+0
+1
+1
+0
+0
+0
+0
+0
+-2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+4
+10
+-1
+0
+177
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+4
+3
+-1
+1
+178
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+0
+0
+1
+179
+-983009
+-1259077793
+-1
+-3
+-8
+2097147904
+44
+36
+36
+28
+32
+36
+32
+28
+44
+36
+36
+36
+48
+44
+44
+52
+64
+112
+72
+64
+60
+60
+64
+136
+96
+100
+80
+112
+160
+140
+168
+168
+156
+140
+160
+152
+176
+200
+256
+216
+176
+188
+240
+192
+152
+156
+224
+304
+224
+240
+264
+272
+288
+288
+288
+172
+212
+316
+336
+312
+280
+336
+256
+280
+288
+276
+40
+48
+48
+64
+56
+64
+128
+72
+72
+128
+276
+184
+156
+184
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+40
+48
+48
+64
+56
+64
+128
+72
+72
+128
+276
+184
+156
+184
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+36
+44
+44
+44
+44
+44
+56
+56
+56
+56
+64
+64
+64
+64
+64
+76
+76
+76
+76
+76
+76
+88
+88
+88
+88
+88
+88
+88
+112
+112
+112
+112
+112
+112
+112
+112
+132
+132
+132
+132
+132
+132
+132
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+268
+268
+268
+356
+356
+356
+36
+44
+44
+44
+44
+44
+56
+56
+56
+56
+64
+64
+64
+64
+64
+76
+76
+76
+76
+76
+76
+88
+88
+88
+88
+88
+88
+88
+112
+112
+112
+112
+112
+112
+112
+112
+132
+132
+132
+132
+132
+132
+132
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+268
+268
+268
+356
+356
+356
+36
+44
+44
+44
+44
+44
+56
+56
+56
+56
+64
+64
+64
+64
+64
+76
+76
+76
+76
+76
+76
+88
+88
+88
+88
+88
+88
+88
+112
+112
+112
+112
+112
+112
+112
+112
+132
+132
+132
+132
+132
+132
+132
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+268
+268
+268
+356
+356
+356
+1
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+3
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+11
+0
+0
+0
+0
+-1
+-2
+0
+2
+1
+0
+0
+-1
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+13
+0
+0
+28
+0
+-2
+-2
+-2
+3
+2
+2
+-2
+3
+-1
+0
+1
+0
+0
+0
+-1
+2
+-2
+0
+0
+0
+0
+0
+0
+0
+1
+0
+-1
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+30
+0
+0
+40
+0
+0
+1
+-1
+1
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+9
+0
+0
+41
+-3
+0
+1
+1
+-1
+4
+-1
+0
+-1
+0
+0
+0
+1
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+26
+0
+0
+52
+-3
+3
+0
+-2
+1
+6
+0
+2
+-3
+0
+0
+-1
+-1
+1
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+15
+0
+0
+53
+-6
+4
+3
+-2
+-6
+2
+-3
+2
+3
+-3
+1
+3
+-1
+4
+3
+-1
+-2
+0
+-2
+0
+0
+-1
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+25
+0
+0
+64
+2
+4
+0
+-6
+1
+3
+0
+0
+-4
+-2
+2
+-2
+0
+0
+-1
+0
+0
+0
+0
+2
+1
+0
+2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+37
+0
+0
+65
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+12
+0
+0
+68
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+0
+0
+71
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+72
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+6
+0
+0
+73
+-11
+6
+0
+1
+0
+2
+-1
+5
+1
+0
+0
+0
+0
+-6
+-3
+2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+32
+0
+0
+76
+-3
+0
+2
+0
+1
+3
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+15
+0
+0
+77
+0
+0
+-2
+-2
+1
+0
+-1
+0
+1
+1
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+22
+0
+0
+78
+0
+0
+-1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+4
+0
+0
+80
+1
+0
+-2
+2
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+29
+0
+0
+81
+1
+0
+-2
+2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+4
+0
+0
+82
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+0
+0
+84
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+0
+0
+87
+2
+0
+2
+4
+0
+-2
+0
+-1
+-3
+0
+-2
+0
+0
+1
+1
+0
+0
+0
+0
+2
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+21
+0
+0
+88
+-6
+-1
+-2
+1
+-2
+1
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+21
+0
+0
+89
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+11
+0
+0
+92
+0
+1
+-1
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+-1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+15
+0
+0
+93
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+19
+0
+0
+94
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+4
+0
+0
+95
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+0
+0
+96
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+8
+0
+0
+98
+1
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+7
+0
+0
+99
+0
+0
+0
+0
+1
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+25
+0
+0
+101
+1
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+4
+0
+0
+106
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+10
+0
+0
+107
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+124
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+134
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+140
+269484040
+12585984
+-909186609
+-1271922680
+34078720
+0
+70
+76
+36
+28
+32
+36
+32
+28
+44
+36
+36
+36
+48
+44
+44
+52
+64
+112
+72
+64
+60
+60
+64
+136
+96
+100
+80
+112
+160
+140
+168
+168
+156
+140
+160
+152
+176
+200
+256
+216
+176
+188
+240
+192
+152
+156
+224
+304
+224
+240
+264
+272
+288
+288
+288
+172
+212
+316
+336
+312
+280
+336
+256
+280
+288
+276
+40
+48
+48
+64
+56
+64
+128
+72
+72
+128
+276
+184
+156
+184
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+40
+48
+48
+64
+56
+64
+128
+72
+72
+128
+276
+184
+156
+184
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+36
+44
+44
+44
+44
+44
+56
+56
+56
+56
+64
+64
+64
+64
+64
+76
+76
+76
+76
+76
+76
+88
+88
+88
+88
+88
+88
+88
+112
+112
+112
+112
+112
+112
+112
+112
+132
+132
+132
+132
+132
+132
+132
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+268
+268
+268
+356
+356
+356
+36
+44
+44
+44
+44
+44
+56
+56
+56
+56
+64
+64
+64
+64
+64
+76
+76
+76
+76
+76
+76
+88
+88
+88
+88
+88
+88
+88
+112
+112
+112
+112
+112
+112
+112
+112
+132
+132
+132
+132
+132
+132
+132
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+268
+268
+268
+356
+356
+356
+36
+44
+44
+44
+44
+44
+56
+56
+56
+56
+64
+64
+64
+64
+64
+76
+76
+76
+76
+76
+76
+88
+88
+88
+88
+88
+88
+88
+112
+112
+112
+112
+112
+112
+112
+112
+132
+132
+132
+132
+132
+132
+132
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+268
+268
+268
+356
+356
+356
+1
+0
+2
+0
+0
+-3
+-2
+-2
+2
+2
+0
+0
+-1
+-1
+2
+1
+0
+-1
+-2
+0
+1
+0
+0
+0
+0
+2
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+33
+0
+0
+28
+0
+-4
+0
+0
+6
+-4
+3
+-2
+5
+1
+2
+1
+1
+-7
+3
+1
+0
+-3
+1
+-1
+0
+-1
+0
+3
+-2
+-3
+3
+0
+0
+0
+2
+0
+-1
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+35
+0
+0
+40
+1
+1
+-1
+-2
+-2
+0
+0
+0
+-2
+-1
+-1
+-1
+-2
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+26
+0
+0
+41
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+1
+2
+0
+49
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+0
+2
+0
+51
+0
+-1
+2
+1
+0
+2
+1
+0
+-2
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+19
+2
+0
+52
+-2
+3
+0
+0
+0
+7
+0
+0
+-2
+0
+0
+0
+-2
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+15
+2
+0
+53
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+1
+1
+0
+56
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+0
+1
+0
+57
+-1
+0
+1
+-1
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+21
+2
+0
+60
+-1
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+3
+2
+0
+61
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+22
+2
+0
+62
+0
+0
+-1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+4
+2
+0
+63
+-5
+7
+0
+1
+-8
+-10
+5
+7
+0
+2
+0
+0
+1
+0
+2
+-1
+-1
+-5
+-2
+0
+0
+0
+0
+0
+4
+3
+1
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+32
+2
+0
+64
+-2
+-2
+-1
+7
+1
+0
+0
+1
+3
+-1
+-2
+1
+1
+0
+-1
+0
+0
+0
+0
+-2
+1
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+25
+2
+0
+65
+2
+0
+-1
+2
+-1
+0
+-1
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+4
+14
+2
+0
+66
+0
+1
+0
+0
+-2
+-1
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+4
+9
+2
+0
+67
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+0
+1
+0
+68
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+0
+1
+0
+69
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+0
+1
+0
+70
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+6
+1
+0
+71
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+1
+2
+0
+72
+1
+-1
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+9
+2
+0
+73
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+0
+0
+0
+74
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+36
+2
+0
+75
+-5
+6
+0
+-1
+3
+1
+-6
+0
+3
+0
+0
+0
+-1
+-6
+0
+2
+0
+1
+0
+0
+1
+0
+0
+-1
+0
+0
+1
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+32
+2
+-1
+76
+0
+1
+0
+0
+0
+0
+1
+-1
+-1
+0
+-1
+0
+-1
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+28
+2
+-1
+77
+-3
+-2
+1
+-2
+0
+2
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+-1
+-1
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+40
+2
+-1
+78
+-1
+0
+2
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+22
+2
+-1
+79
+0
+0
+-1
+2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+4
+0
+0
+80
+-1
+0
+0
+2
+0
+1
+1
+-1
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+36
+1
+0
+81
+0
+0
+-2
+2
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+8
+0
+0
+82
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+36
+1
+0
+83
+-1
+0
+0
+-1
+0
+0
+0
+0
+0
+1
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+14
+2
+0
+84
+0
+0
+-2
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+26
+2
+0
+85
+-1
+0
+0
+-2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+36
+2
+0
+86
+-2
+0
+-1
+-1
+0
+0
+-1
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+37
+2
+0
+87
+1
+0
+0
+0
+2
+0
+-1
+-2
+2
+-4
+-3
+1
+0
+0
+2
+0
+0
+1
+-1
+1
+-1
+0
+-1
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+-2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+35
+2
+-1
+88
+-1
+-2
+2
+3
+-2
+0
+0
+-1
+1
+1
+0
+1
+0
+0
+0
+0
+0
+-1
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+21
+2
+-1
+89
+2
+0
+1
+2
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+8
+2
+-1
+90
+3
+0
+2
+4
+0
+0
+0
+0
+-1
+4
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+35
+2
+-1
+91
+0
+0
+0
+0
+1
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+21
+1
+0
+92
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+0
+1
+0
+93
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+1
+1
+0
+94
+-1
+1
+-1
+-1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+28
+1
+0
+95
+0
+1
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+3
+1
+0
+96
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+11
+1
+0
+97
+0
+0
+-1
+-1
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+9
+0
+0
+98
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+1
+1
+0
+99
+0
+0
+1
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+9
+1
+0
+100
+0
+-2
+0
+0
+-3
+-1
+0
+-1
+0
+0
+0
+0
+-1
+0
+-1
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+20
+1
+0
+101
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+0
+0
+0
+102
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+0
+1
+0
+103
+1
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+2
+0
+0
+104
+1
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+3
+1
+0
+105
+2
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+4
+0
+0
+106
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+28
+1
+0
+107
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+20
+1
+0
+108
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+15
+1
+0
+109
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+0
+1
+0
+110
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+0
+1
+0
+111
+-2
+0
+-1
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+6
+1
+0
+112
+-1
+0
+-2
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+4
+1
+0
+113
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+0
+1
+0
+114
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+1
+1
+0
+115
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+1
+1
+0
+116
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+1
+1
+0
+118
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+0
+2
+0
+134
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+4
+0
+2
+0
+135
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+0
+1
+0
+136
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+0
+1
+0
+137
+2
+1
+0
+0
+1
+0
+-1
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+14
+2
+-1
+140
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+0
+2
+0
+163
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+1
+2
+0
+164
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+3
+2
+0
+169
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+0
+2
+-1
+170
+8
+12606671
+-1
+-1536
+63438848
+408944640
+70
+73
+36
+28
+32
+36
+32
+28
+44
+36
+36
+36
+48
+44
+44
+52
+64
+112
+72
+64
+60
+60
+64
+136
+96
+100
+80
+112
+160
+140
+168
+168
+156
+140
+160
+152
+176
+200
+256
+216
+176
+188
+240
+192
+152
+156
+224
+304
+224
+240
+264
+272
+288
+288
+288
+172
+212
+316
+336
+312
+280
+336
+256
+280
+288
+276
+40
+48
+48
+64
+56
+64
+128
+72
+72
+128
+276
+184
+156
+184
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+40
+48
+48
+64
+56
+64
+128
+72
+72
+128
+276
+184
+156
+184
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+36
+44
+44
+44
+44
+44
+56
+56
+56
+56
+64
+64
+64
+64
+64
+76
+76
+76
+76
+76
+76
+88
+88
+88
+88
+88
+88
+88
+112
+112
+112
+112
+112
+112
+112
+112
+132
+132
+132
+132
+132
+132
+132
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+268
+268
+268
+356
+356
+356
+36
+44
+44
+44
+44
+44
+56
+56
+56
+56
+64
+64
+64
+64
+64
+76
+76
+76
+76
+76
+76
+88
+88
+88
+88
+88
+88
+88
+112
+112
+112
+112
+112
+112
+112
+112
+132
+132
+132
+132
+132
+132
+132
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+268
+268
+268
+356
+356
+356
+36
+44
+44
+44
+44
+44
+56
+56
+56
+56
+64
+64
+64
+64
+64
+76
+76
+76
+76
+76
+76
+88
+88
+88
+88
+88
+88
+88
+112
+112
+112
+112
+112
+112
+112
+112
+132
+132
+132
+132
+132
+132
+132
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+268
+268
+268
+356
+356
+356
+1
+1
+2
+0
+0
+-1
+0
+-2
+0
+1
+0
+0
+-1
+0
+2
+0
+0
+0
+-1
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+20
+0
+0
+28
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+1
+4
+0
+36
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+0
+4
+0
+37
+3
+-4
+-2
+0
+6
+-2
+0
+0
+0
+1
+0
+0
+4
+-1
+-1
+2
+-2
+-1
+2
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+-2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+31
+4
+0
+40
+-3
+-4
+1
+-2
+-1
+-5
+-3
+-4
+-1
+-2
+1
+-1
+0
+-4
+0
+0
+0
+2
+0
+2
+0
+0
+2
+3
+2
+2
+0
+0
+0
+0
+0
+1
+1
+2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+34
+4
+0
+41
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+1
+1
+0
+51
+0
+-3
+2
+0
+-1
+3
+1
+1
+-1
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+26
+0
+-1
+52
+0
+3
+1
+-1
+0
+4
+0
+1
+-1
+0
+0
+0
+0
+1
+0
+0
+0
+2
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+26
+0
+-1
+53
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+0
+0
+-1
+56
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+36
+4
+0
+60
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+4
+0
+61
+-1
+0
+0
+1
+0
+0
+-1
+0
+0
+-1
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+14
+1
+0
+62
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+0
+1
+0
+63
+8
+-7
+-5
+-3
+6
+1
+2
+0
+2
+3
+0
+-4
+-4
+-1
+-1
+0
+2
+2
+4
+1
+-1
+0
+0
+0
+-2
+0
+-1
+0
+0
+0
+0
+0
+1
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+36
+0
+-1
+64
+-6
+-8
+6
+-2
+7
+-5
+0
+3
+0
+0
+0
+-2
+0
+0
+1
+0
+0
+-1
+0
+1
+-1
+0
+0
+0
+1
+-1
+0
+0
+0
+0
+-1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+32
+0
+-1
+65
+1
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+4
+0
+-1
+66
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+11
+0
+-1
+67
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+0
+0
+-1
+68
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+0
+0
+-1
+69
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+8
+0
+-1
+70
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+28
+0
+-1
+71
+-1
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+14
+0
+0
+72
+0
+0
+0
+2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+4
+4
+0
+73
+1
+0
+0
+1
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+7
+1
+0
+74
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+19
+1
+0
+75
+-3
+3
+-4
+0
+4
+-4
+-1
+-2
+1
+0
+0
+0
+-1
+0
+2
+0
+1
+2
+-1
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+31
+0
+-1
+76
+-5
+0
+-1
+0
+0
+1
+2
+0
+0
+-1
+-1
+0
+0
+0
+2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+28
+0
+-1
+77
+1
+1
+3
+0
+-1
+0
+0
+-1
+-1
+-2
+0
+0
+0
+1
+0
+1
+-1
+1
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+-1
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+33
+0
+0
+78
+0
+0
+0
+0
+-1
+-1
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+11
+0
+-1
+79
+0
+0
+3
+-2
+0
+0
+-2
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+11
+0
+0
+80
+-2
+0
+4
+-5
+-1
+1
+2
+0
+0
+0
+-2
+0
+0
+0
+0
+-1
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+1
+-2
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+29
+0
+-1
+81
+-2
+0
+0
+2
+0
+0
+0
+0
+0
+-1
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+11
+0
+-1
+82
+-3
+0
+0
+2
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+5
+0
+-1
+83
+1
+0
+2
+0
+0
+0
+0
+0
+0
+-2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+21
+4
+0
+84
+0
+0
+1
+1
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+22
+4
+0
+85
+0
+1
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+1
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+33
+1
+0
+86
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+24
+1
+0
+87
+1
+4
+2
+4
+3
+0
+1
+1
+3
+-2
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+-1
+0
+-1
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+-1
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+36
+0
+-1
+88
+3
+-2
+3
+5
+-1
+1
+0
+0
+-3
+0
+-2
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+14
+0
+-1
+89
+0
+0
+0
+-2
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+10
+0
+-1
+90
+0
+0
+-1
+-2
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+10
+0
+-1
+91
+-1
+0
+0
+0
+-1
+0
+0
+0
+0
+-2
+-2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+22
+0
+-1
+92
+0
+0
+0
+0
+0
+1
+0
+0
+0
+-2
+-1
+-1
+-1
+1
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+15
+0
+-1
+93
+2
+0
+0
+4
+0
+0
+0
+0
+0
+5
+2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+22
+0
+-1
+94
+0
+1
+0
+2
+0
+0
+0
+0
+0
+3
+0
+0
+0
+0
+0
+1
+0
+0
+-1
+1
+0
+0
+0
+0
+1
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+39
+0
+-1
+95
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+4
+1
+1
+0
+96
+1
+-1
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+4
+20
+1
+0
+97
+1
+-1
+1
+0
+-2
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+24
+1
+0
+98
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+3
+1
+0
+99
+0
+1
+-1
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+6
+0
+0
+100
+-1
+0
+0
+0
+-2
+0
+0
+-1
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+20
+1
+0
+101
+-1
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+6
+0
+0
+102
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+1
+1
+0
+103
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+4
+0
+0
+104
+-1
+0
+1
+0
+0
+0
+0
+0
+0
+-2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+10
+1
+0
+105
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+22
+0
+0
+106
+-3
+0
+0
+2
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+28
+1
+0
+107
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+4
+0
+1
+0
+108
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+4
+1
+1
+0
+109
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+1
+1
+0
+110
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+0
+1
+0
+111
+0
+-1
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+1
+0
+113
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+1
+1
+0
+114
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+0
+1
+0
+115
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+0
+1
+0
+116
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+1
+1
+0
+118
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+0
+0
+-1
+134
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+0
+0
+-1
+136
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+0
+0
+-1
+137
+2
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+6
+0
+-1
+140
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+0
+0
+-1
+164
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+0
+0
+-1
+173
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+0
+1
+0
+178
+8
+213916815
+-1
+-34304
+46661632
+134488064
+70
+72
+36
+28
+32
+36
+32
+28
+44
+36
+36
+36
+48
+44
+44
+52
+64
+112
+72
+64
+60
+60
+64
+136
+96
+100
+80
+112
+160
+140
+168
+168
+156
+140
+160
+152
+176
+200
+256
+216
+176
+188
+240
+192
+152
+156
+224
+304
+224
+240
+264
+272
+288
+288
+288
+172
+212
+316
+336
+312
+280
+336
+256
+280
+288
+276
+40
+48
+48
+64
+56
+64
+128
+72
+72
+128
+276
+184
+156
+184
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+40
+48
+48
+64
+56
+64
+128
+72
+72
+128
+276
+184
+156
+184
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+36
+44
+44
+44
+44
+44
+56
+56
+56
+56
+64
+64
+64
+64
+64
+76
+76
+76
+76
+76
+76
+88
+88
+88
+88
+88
+88
+88
+112
+112
+112
+112
+112
+112
+112
+112
+132
+132
+132
+132
+132
+132
+132
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+268
+268
+268
+356
+356
+356
+36
+44
+44
+44
+44
+44
+56
+56
+56
+56
+64
+64
+64
+64
+64
+76
+76
+76
+76
+76
+76
+88
+88
+88
+88
+88
+88
+88
+112
+112
+112
+112
+112
+112
+112
+112
+132
+132
+132
+132
+132
+132
+132
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+268
+268
+268
+356
+356
+356
+36
+44
+44
+44
+44
+44
+56
+56
+56
+56
+64
+64
+64
+64
+64
+76
+76
+76
+76
+76
+76
+88
+88
+88
+88
+88
+88
+88
+112
+112
+112
+112
+112
+112
+112
+112
+132
+132
+132
+132
+132
+132
+132
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+268
+268
+268
+356
+356
+356
+1
+0
+2
+0
+0
+-2
+0
+-1
+-1
+1
+0
+-1
+-1
+0
+1
+0
+0
+0
+-1
+0
+0
+1
+-1
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+38
+0
+0
+28
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+29
+2
+-4
+0
+0
+3
+0
+-2
+2
+1
+0
+-1
+0
+2
+1
+0
+-2
+-2
+2
+2
+1
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+-1
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+33
+0
+0
+40
+-3
+-5
+0
+4
+-5
+2
+8
+-4
+3
+-2
+-3
+0
+4
+0
+3
+0
+-1
+0
+4
+-1
+0
+0
+0
+0
+0
+-3
+0
+0
+0
+0
+-1
+0
+-2
+0
+2
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+39
+0
+0
+41
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+4
+0
+0
+42
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+0
+0
+1
+48
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+0
+0
+1
+49
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+0
+0
+1
+51
+0
+-2
+0
+0
+-1
+1
+1
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+13
+0
+0
+52
+2
+3
+1
+-1
+0
+3
+0
+0
+0
+0
+0
+0
+2
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+14
+0
+1
+53
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+49
+0
+1
+60
+0
+0
+1
+0
+1
+0
+0
+0
+0
+-1
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+12
+0
+1
+61
+-1
+-1
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+15
+0
+1
+62
+-1
+0
+1
+-2
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+36
+0
+1
+63
+-2
+0
+0
+4
+5
+5
+-3
+-4
+-6
+-2
+1
+2
+1
+2
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+30
+0
+1
+64
+-1
+1
+2
+-2
+0
+5
+3
+-3
+0
+3
+-1
+2
+-1
+-3
+2
+0
+-3
+0
+3
+-2
+0
+1
+0
+-1
+0
+2
+-1
+0
+0
+0
+1
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+32
+0
+1
+65
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+6
+5
+1
+0
+66
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+6
+0
+1
+0
+67
+-1
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+18
+1
+0
+68
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+17
+1
+0
+69
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+13
+1
+0
+70
+1
+0
+-1
+1
+-1
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+10
+1
+0
+71
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+36
+0
+0
+72
+-1
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+21
+0
+1
+73
+-1
+0
+0
+1
+0
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+11
+0
+1
+75
+0
+1
+0
+4
+1
+-5
+2
+-3
+-2
+3
+2
+-3
+0
+3
+-1
+1
+0
+3
+1
+-3
+1
+0
+-1
+1
+1
+-2
+0
+0
+0
+1
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+40
+0
+0
+76
+-5
+-4
+-3
+-2
+-3
+-1
+0
+-3
+-3
+-1
+-1
+-2
+-2
+-3
+0
+0
+0
+-1
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+29
+0
+1
+77
+-2
+-1
+1
+0
+-1
+1
+1
+0
+1
+0
+0
+1
+0
+0
+0
+0
+-1
+0
+0
+-1
+0
+-1
+0
+-1
+0
+0
+1
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+6
+31
+1
+0
+78
+0
+-1
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+6
+6
+1
+0
+79
+0
+0
+-2
+2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+4
+0
+0
+80
+0
+-1
+-3
+4
+1
+0
+0
+0
+0
+0
+3
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+11
+1
+0
+81
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+1
+0
+0
+82
+-2
+1
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+36
+1
+0
+83
+1
+0
+1
+2
+0
+0
+0
+0
+0
+-1
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+-2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+22
+0
+1
+84
+0
+0
+3
+1
+0
+0
+0
+0
+0
+0
+-2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+-2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+22
+0
+1
+85
+2
+1
+3
+2
+-2
+0
+-1
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-2
+0
+0
+-1
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+43
+0
+1
+86
+3
+0
+5
+5
+0
+0
+0
+0
+0
+2
+-2
+-1
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+36
+0
+1
+87
+0
+0
+-2
+1
+5
+3
+-1
+0
+4
+2
+1
+-1
+-2
+0
+0
+0
+0
+2
+0
+-3
+0
+-2
+0
+1
+2
+-2
+0
+0
+0
+0
+0
+-1
+0
+0
+1
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+37
+0
+1
+88
+3
+1
+2
+1
+0
+1
+0
+0
+-2
+1
+0
+-2
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+21
+0
+1
+89
+1
+1
+1
+3
+0
+0
+0
+0
+0
+2
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+6
+12
+1
+0
+90
+1
+1
+1
+0
+0
+1
+1
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+6
+10
+1
+0
+91
+1
+0
+0
+0
+0
+0
+0
+0
+0
+2
+2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+22
+1
+0
+92
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+10
+1
+0
+93
+-1
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+4
+1
+0
+94
+-2
+2
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+39
+1
+0
+95
+0
+0
+1
+0
+-2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+20
+0
+0
+96
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+10
+1
+0
+97
+0
+0
+-1
+-2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+20
+0
+1
+98
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+10
+0
+1
+99
+1
+0
+1
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+6
+5
+1
+0
+100
+-2
+0
+-2
+0
+0
+1
+-1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+6
+8
+1
+0
+101
+-1
+-1
+-1
+1
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+11
+0
+0
+102
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+1
+1
+0
+103
+1
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+4
+0
+0
+104
+0
+0
+-1
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+4
+1
+0
+105
+2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+106
+2
+-1
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+10
+1
+0
+107
+1
+0
+-1
+0
+-1
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+20
+1
+0
+108
+2
+1
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+13
+1
+0
+109
+-2
+0
+-1
+2
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+10
+0
+1
+110
+-2
+0
+-2
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+10
+0
+1
+111
+2
+0
+1
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+6
+6
+1
+0
+112
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+6
+1
+1
+0
+113
+1
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+4
+1
+0
+114
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+1
+1
+0
+115
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+1
+1
+0
+116
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+0
+1
+0
+117
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+1
+134
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+0
+1
+0
+136
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+0
+1
+140
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+0
+0
+1
+175
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+0
+1
+0
+178
+12
+14736399
+-2097153
+-1024
+42467328
+73728
+70
+86
+36
+28
+32
+36
+32
+28
+44
+36
+36
+36
+48
+44
+44
+52
+64
+112
+72
+64
+60
+60
+64
+136
+96
+100
+80
+112
+160
+140
+168
+168
+156
+140
+160
+152
+176
+200
+256
+216
+176
+188
+240
+192
+152
+156
+224
+304
+224
+240
+264
+272
+288
+288
+288
+172
+212
+316
+336
+312
+280
+336
+256
+280
+288
+276
+40
+48
+48
+64
+56
+64
+128
+72
+72
+128
+276
+184
+156
+184
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+40
+48
+48
+64
+56
+64
+128
+72
+72
+128
+276
+184
+156
+184
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+36
+44
+44
+44
+44
+44
+56
+56
+56
+56
+64
+64
+64
+64
+64
+76
+76
+76
+76
+76
+76
+88
+88
+88
+88
+88
+88
+88
+112
+112
+112
+112
+112
+112
+112
+112
+132
+132
+132
+132
+132
+132
+132
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+268
+268
+268
+356
+356
+356
+36
+44
+44
+44
+44
+44
+56
+56
+56
+56
+64
+64
+64
+64
+64
+76
+76
+76
+76
+76
+76
+88
+88
+88
+88
+88
+88
+88
+112
+112
+112
+112
+112
+112
+112
+112
+132
+132
+132
+132
+132
+132
+132
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+268
+268
+268
+356
+356
+356
+36
+44
+44
+44
+44
+44
+56
+56
+56
+56
+64
+64
+64
+64
+64
+76
+76
+76
+76
+76
+76
+88
+88
+88
+88
+88
+88
+88
+112
+112
+112
+112
+112
+112
+112
+112
+132
+132
+132
+132
+132
+132
+132
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+268
+268
+268
+356
+356
+356
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+15
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+0
+0
+19
+0
+1
+0
+-1
+-3
+4
+0
+-4
+2
+2
+-1
+0
+3
+0
+-2
+0
+2
+0
+-2
+0
+0
+0
+0
+1
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+26
+0
+0
+28
+0
+0
+1
+-1
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+10
+0
+0
+29
+2
+0
+-2
+1
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+10
+0
+0
+31
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+11
+0
+0
+32
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+10
+0
+0
+33
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+4
+0
+0
+34
+0
+0
+1
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+10
+0
+0
+35
+0
+0
+-1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+4
+0
+0
+36
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+4
+0
+0
+38
+1
+0
+0
+0
+-1
+0
+0
+0
+-1
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+11
+0
+0
+39
+2
+0
+0
+-1
+0
+-1
+0
+3
+0
+-1
+-1
+0
+2
+2
+0
+0
+0
+2
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+21
+0
+0
+40
+0
+0
+1
+4
+-6
+10
+0
+0
+0
+3
+0
+3
+-3
+0
+-5
+-1
+0
+-3
+-2
+1
+-2
+-1
+0
+-1
+-2
+1
+0
+0
+0
+0
+2
+0
+0
+-1
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+39
+0
+0
+41
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+10
+0
+0
+42
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+43
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+1
+0
+1
+51
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+0
+0
+52
+2
+0
+1
+0
+2
+-1
+2
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+8
+0
+1
+53
+0
+0
+0
+1
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+36
+0
+0
+60
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+22
+0
+0
+61
+0
+-1
+0
+0
+1
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+26
+0
+1
+62
+0
+0
+-2
+0
+0
+-1
+0
+0
+0
+4
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+22
+0
+1
+63
+-3
+0
+1
+1
+0
+1
+0
+0
+-1
+-2
+0
+0
+0
+1
+0
+1
+0
+0
+-1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+20
+0
+1
+64
+2
+3
+0
+0
+-5
+0
+0
+-3
+3
+1
+-1
+-2
+1
+0
+0
+0
+1
+0
+-1
+-1
+0
+0
+2
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+27
+0
+1
+65
+0
+0
+-1
+2
+0
+0
+-1
+0
+0
+-1
+0
+1
+0
+1
+0
+0
+0
+0
+1
+0
+0
+1
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+24
+0
+1
+66
+0
+0
+0
+1
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+8
+0
+1
+67
+0
+-1
+1
+-2
+1
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+10
+0
+1
+68
+-1
+0
+2
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+27
+0
+1
+69
+0
+0
+1
+-1
+-1
+0
+0
+1
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+19
+0
+1
+70
+0
+1
+-1
+1
+0
+0
+0
+0
+1
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+10
+0
+1
+71
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+21
+0
+1
+72
+1
+1
+0
+0
+0
+0
+0
+-1
+0
+0
+-1
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+28
+0
+1
+73
+-3
+0
+-2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+21
+0
+0
+74
+-1
+0
+-1
+1
+0
+-1
+0
+-1
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+24
+0
+1
+75
+0
+0
+0
+1
+0
+-2
+0
+0
+-1
+1
+0
+-1
+1
+0
+0
+0
+0
+0
+2
+0
+0
+0
+0
+1
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+34
+0
+0
+76
+-2
+-2
+-1
+1
+-1
+0
+0
+0
+-1
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+11
+0
+1
+77
+-4
+3
+5
+3
+0
+-2
+0
+-2
+-2
+5
+-3
+-1
+-2
+1
+1
+0
+0
+1
+2
+0
+-2
+-1
+0
+1
+0
+-1
+0
+0
+1
+0
+0
+-1
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+34
+0
+1
+78
+-3
+0
+2
+-1
+0
+0
+0
+0
+0
+3
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+36
+0
+1
+79
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+20
+0
+1
+80
+0
+0
+3
+0
+0
+0
+1
+0
+0
+-1
+1
+0
+0
+0
+1
+0
+0
+0
+0
+0
+-2
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+36
+0
+1
+81
+-1
+0
+2
+0
+0
+1
+0
+1
+0
+-3
+3
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-3
+2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+36
+0
+1
+82
+0
+0
+2
+0
+0
+0
+0
+0
+0
+-1
+4
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-2
+2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+36
+0
+1
+83
+-2
+0
+-4
+-3
+-1
+0
+0
+0
+0
+-2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+35
+0
+1
+84
+-1
+0
+-1
+-4
+0
+-1
+0
+0
+0
+-2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+-2
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+23
+0
+1
+85
+2
+0
+4
+4
+0
+1
+0
+-1
+-2
+0
+-2
+2
+0
+0
+0
+1
+0
+0
+0
+-1
+-1
+-2
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+36
+0
+1
+86
+2
+0
+3
+4
+1
+0
+-1
+0
+0
+2
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+-1
+2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+37
+0
+1
+87
+0
+2
+0
+4
+2
+0
+0
+0
+2
+3
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+1
+0
+2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+23
+0
+1
+88
+1
+0
+2
+3
+-1
+1
+1
+-1
+-3
+3
+1
+-2
+-1
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+28
+0
+1
+89
+1
+0
+3
+1
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+36
+0
+1
+90
+1
+0
+3
+1
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+23
+0
+1
+91
+0
+0
+0
+1
+1
+0
+0
+0
+0
+1
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-2
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+22
+0
+1
+92
+0
+1
+0
+1
+-1
+0
+1
+0
+0
+-1
+0
+1
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+26
+0
+1
+93
+0
+0
+0
+1
+0
+-1
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+11
+0
+1
+94
+0
+0
+0
+1
+0
+0
+0
+1
+-1
+2
+0
+-1
+0
+-1
+-1
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+19
+0
+1
+95
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+12
+0
+1
+96
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+19
+0
+1
+97
+1
+-2
+0
+0
+-1
+-1
+0
+-2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+8
+0
+1
+98
+0
+0
+0
+-1
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+6
+0
+1
+99
+0
+-1
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+4
+0
+0
+100
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+1
+0
+1
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+14
+0
+1
+101
+-1
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+13
+0
+1
+102
+-1
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+5
+0
+1
+103
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+12
+0
+1
+104
+0
+0
+0
+1
+-2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+5
+0
+1
+105
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+13
+0
+1
+106
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+3
+0
+1
+107
+0
+0
+-1
+2
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+12
+0
+1
+108
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+4
+0
+1
+109
+-2
+0
+0
+1
+1
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+10
+0
+1
+110
+-2
+0
+-1
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+9
+0
+1
+111
+3
+0
+3
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+0
+1
+112
+2
+0
+2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+0
+1
+113
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+0
+0
+1
+114
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+0
+0
+1
+115
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+0
+0
+1
+116
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+0
+0
+1
+117
+1
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+4
+0
+1
+118
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+0
+0
+1
+133
+1
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+4
+0
+1
+134
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+1
+0
+1
+135
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+0
+0
+1
+138
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+0
+0
+1
+168
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+0
+0
+1
+171
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+0
+0
+1
+174
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+3
+0
+1
+178
+69645
+-68150257
+-1
+-512
+119537664
+9576448
+70
+78
+36
+28
+32
+36
+32
+28
+44
+36
+36
+36
+48
+44
+44
+52
+64
+112
+72
+64
+60
+60
+64
+136
+96
+100
+80
+112
+160
+140
+168
+168
+156
+140
+160
+152
+176
+200
+256
+216
+176
+188
+240
+192
+152
+156
+224
+304
+224
+240
+264
+272
+288
+288
+288
+172
+212
+316
+336
+312
+280
+336
+256
+280
+288
+276
+40
+48
+48
+64
+56
+64
+128
+72
+72
+128
+276
+184
+156
+184
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+40
+48
+48
+64
+56
+64
+128
+72
+72
+128
+276
+184
+156
+184
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+276
+36
+44
+44
+44
+44
+44
+56
+56
+56
+56
+64
+64
+64
+64
+64
+76
+76
+76
+76
+76
+76
+88
+88
+88
+88
+88
+88
+88
+112
+112
+112
+112
+112
+112
+112
+112
+132
+132
+132
+132
+132
+132
+132
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+268
+268
+268
+356
+356
+356
+36
+44
+44
+44
+44
+44
+56
+56
+56
+56
+64
+64
+64
+64
+64
+76
+76
+76
+76
+76
+76
+88
+88
+88
+88
+88
+88
+88
+112
+112
+112
+112
+112
+112
+112
+112
+132
+132
+132
+132
+132
+132
+132
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+268
+268
+268
+356
+356
+356
+36
+44
+44
+44
+44
+44
+56
+56
+56
+56
+64
+64
+64
+64
+64
+76
+76
+76
+76
+76
+76
+88
+88
+88
+88
+88
+88
+88
+112
+112
+112
+112
+112
+112
+112
+112
+132
+132
+132
+132
+132
+132
+132
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+176
+268
+268
+268
+356
+356
+356
+1
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+15
+0
+0
+28
+-1
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+3
+1
+29
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+4
+3
+1
+33
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+4
+0
+0
+34
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+21
+3
+1
+35
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+0
+3
+1
+36
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+1
+3
+1
+37
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+11
+3
+1
+38
+2
+-2
+2
+-1
+-1
+1
+0
+1
+0
+-2
+0
+1
+0
+-1
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+20
+3
+1
+39
+3
+4
+3
+0
+2
+4
+2
+0
+1
+-1
+-2
+-1
+0
+0
+0
+0
+0
+0
+0
+-1
+-1
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+34
+3
+1
+40
+-3
+3
+-1
+1
+0
+4
+-4
+1
+0
+2
+1
+0
+-2
+0
+-2
+0
+0
+2
+-2
+0
+0
+0
+0
+-2
+0
+2
+0
+0
+0
+0
+-1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+32
+3
+1
+41
+2
+0
+2
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+23
+3
+1
+42
+0
+3
+0
+0
+-1
+-3
+0
+1
+0
+0
+0
+0
+2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+26
+-1
+0
+52
+3
+-5
+-1
+0
+2
+-4
+3
+2
+1
+-1
+0
+0
+-1
+0
+1
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+18
+-1
+0
+53
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+1
+0
+1
+56
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+0
+0
+1
+57
+0
+0
+-2
+1
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+36
+3
+1
+60
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-2
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+11
+3
+1
+63
+-1
+0
+0
+3
+2
+2
+1
+0
+-1
+-1
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+-1
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+36
+-1
+0
+64
+0
+-2
+3
+0
+1
+-3
+0
+-1
+1
+1
+0
+0
+1
+-1
+2
+0
+0
+0
+-1
+0
+0
+1
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+36
+-1
+0
+65
+4
+-2
+-6
+7
+3
+-2
+2
+3
+-1
+-2
+0
+0
+-4
+-2
+0
+0
+0
+0
+1
+0
+1
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+22
+1
+0
+66
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+1
+1
+0
+67
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+0
+0
+1
+68
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+11
+0
+1
+69
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+1
+71
+-1
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+4
+0
+0
+72
+-1
+0
+-1
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+10
+3
+1
+73
+0
+-1
+0
+0
+-1
+0
+0
+1
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+11
+0
+0
+74
+-1
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+36
+3
+1
+75
+-2
+2
+1
+0
+-1
+-1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+26
+0
+0
+76
+1
+1
+-1
+0
+0
+-1
+-1
+0
+-1
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+15
+-1
+0
+77
+-10
+3
+-9
+4
+2
+1
+0
+0
+0
+7
+8
+0
+-2
+0
+2
+-2
+2
+0
+-5
+-1
+4
+1
+0
+-3
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+34
+0
+0
+78
+1
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+4
+-1
+0
+79
+1
+0
+-2
+2
+0
+0
+0
+0
+0
+-1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+21
+0
+0
+80
+0
+0
+-3
+4
+0
+0
+0
+0
+0
+0
+2
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+22
+0
+1
+81
+0
+0
+-2
+3
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+10
+0
+0
+82
+0
+0
+-3
+1
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+22
+0
+1
+83
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+7
+3
+1
+84
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+22
+3
+1
+85
+1
+0
+1
+2
+0
+1
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+25
+3
+1
+86
+0
+0
+2
+2
+0
+0
+0
+0
+0
+1
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+22
+3
+1
+87
+0
+1
+0
+1
+1
+0
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+24
+-1
+0
+88
+-1
+0
+1
+0
+0
+1
+0
+-1
+0
+1
+0
+-1
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+22
+-1
+0
+89
+0
+1
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+-1
+0
+90
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+6
+-1
+0
+91
+0
+0
+-1
+-1
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+22
+0
+1
+92
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+19
+0
+1
+93
+0
+0
+-1
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+21
+0
+1
+94
+0
+0
+0
+-2
+0
+1
+0
+0
+0
+0
+1
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+33
+0
+1
+95
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+0
+0
+96
+0
+0
+0
+0
+0
+1
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+25
+0
+1
+97
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+33
+0
+0
+98
+0
+0
+0
+0
+0
+1
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+7
+0
+0
+100
+0
+1
+0
+0
+0
+1
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+16
+0
+1
+101
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+4
+1
+1
+0
+102
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+4
+19
+1
+0
+103
+1
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+9
+1
+0
+104
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+1
+1
+0
+105
+1
+0
+-1
+-1
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+5
+0
+0
+106
+1
+0
+0
+-2
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+10
+1
+0
+107
+0
+0
+0
+0
+-1
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+9
+0
+1
+108
+0
+0
+0
+0
+0
+0
+0
+-1
+0
+0
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+12
+0
+1
+109
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+0
+1
+112
+1
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+4
+0
+1
+113
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+4
+0
+1
+0
+114
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+4
+1
+1
+0
+115
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+1
+1
+0
+116
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+0
+1
+0
+117
+1
+0
+-1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+3
+1
+128
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+1
+-1
+0
+134
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+0
+1
+0
+135
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+0
+0
+1
+136
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+-1
+0
+140
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+4
+0
+1
+0
+147
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+1
+1
+0
+148
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+0
+3
+1
+156
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+2
+0
+1
+0
+165
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+1
+173
+12
+2145389769
+-33554433
+-268633088
+-2088232952
+67371008
+70
Added: trunk/theora-fpga/reconrefframes/idctslow.vhd
===================================================================
--- trunk/theora-fpga/reconrefframes/idctslow.vhd (rev 0)
+++ trunk/theora-fpga/reconrefframes/idctslow.vhd 2007-09-15 23:10:55 UTC (rev 13820)
@@ -0,0 +1,349 @@
+-------------------------------------------------------------------------------
+-- Description: Do the iDCTSlow job.
+-------------------------------------------------------------------------------
+
+library std;
+library ieee;
+library work;
+
+use ieee.std_logic_1164.all;
+use ieee.numeric_std.all;
+use work.all;
+
+
+entity IDctSlow is
+ port (Clk,
+ Reset_n : in std_logic;
+
+ in_request : out std_logic;
+ in_valid : in std_logic;
+ in_data : in signed(15 downto 0);
+ in_quantmat : in signed(15 downto 0);
+
+ out_requested : in std_logic;
+ out_valid : out std_logic;
+ out_data : out signed(15 downto 0)
+ );
+end entity IDctSlow;
+
+
+architecture rtl of IDctSlow is
+ component dual_syncram
+ generic (
+ DEPTH : positive := 64; -- How many slots
+ DATA_WIDTH : positive := 16; -- How many bits per slot
+ ADDR_WIDTH : positive := 6 -- = ceil(log2(DEPTH))
+ );
+ port (
+ clk : in std_logic;
+ wr_e : in std_logic;
+ wr_addr : in unsigned(ADDR_WIDTH-1 downto 0);
+ wr_data : in signed(DATA_WIDTH-1 downto 0);
+ rd1_addr : in unsigned(ADDR_WIDTH-1 downto 0);
+ rd1_data : out signed(DATA_WIDTH-1 downto 0);
+ rd2_addr : in unsigned(ADDR_WIDTH-1 downto 0);
+ rd2_data : out signed(DATA_WIDTH-1 downto 0)
+ );
+ end component;
+
+
+ subtype ogg_int_16_t is signed(15 downto 0);
+ subtype ogg_int_32_t is signed(31 downto 0);
+
+ type mem64_t is array (0 to 63) of ogg_int_16_t;
+
+ signal s_A, s_B, s_C, s_D, s_Ad, s_Bd, s_Cd, s_Dd, s_E, s_F, s_G, s_H : ogg_int_16_t;
+ signal s_Ed, s_Gd, s_Add, s_Bdd, s_Fd, s_Hd : ogg_int_16_t;
+
+ signal row_loop : std_logic;
+
+-- FSMs
+ type state_t is (readIn,idct,writeOut);
+ signal state : state_t;
+
+ type idct_state_t is (idct_st1, idct_st2, idct_st3, idct_st4,
+ idct_st5, idct_st6, idct_st7, idct_st8,
+ idct_st9, idct_st10, idct_st11, idct_st12,
+ idct_st13, idct_st14, idct_st15, idct_st16);
+ signal idct_state : idct_state_t;
+
+ type wout_state_t is (wout_st1, wout_st2, wout_st3);
+ signal wout_state : wout_state_t;
+
+-- Memory
+
+ signal mem_we : std_logic;
+ signal mem_waddr : unsigned(5 downto 0);
+ signal mem_wdata : ogg_int_16_t;
+ signal mem_raddr1 : unsigned(5 downto 0);
+ signal mem_rdata1 : ogg_int_16_t;
+ signal mem_raddr2 : unsigned(5 downto 0);
+ signal mem_rdata2 : ogg_int_16_t;
+
+-- Handshake
+ subtype tiny_int is integer range 0 to 63;
+ signal count : tiny_int;
+ signal s_in_request : std_logic;
+ signal s_out_valid : std_logic;
+
+
+ type dezigzag_t is array (0 to 63) of unsigned(5 downto 0);
+ constant dezigzag_index : dezigzag_t := (
+ "000000", "000001", "001000", "010000", "001001",
+ "000010", "000011", "001010", "010001", "011000",
+ "100000", "011001", "010010", "001011", "000100",
+ "000101", "001100", "010011", "011010", "100001",
+ "101000", "110000", "101001", "100010", "011011",
+ "010100", "001101", "000110", "000111", "001110",
+ "010101", "011100", "100011", "101010", "110001",
+ "111000", "111001", "110010", "101011", "100100",
+ "011101", "010110", "001111", "010111", "011110",
+ "100101", "101100", "110011", "111010", "111011",
+ "110100", "101101", "100110", "011111", "100111",
+ "101110", "110101", "111100", "111101", "110110",
+ "101111", "110111", "111110", "111111" );
+
+
+
+-- cos(n*pi/16) or sin(8-n)*pi/16)
+ constant xC1S7 : ogg_int_32_t := "00000000000000001111101100010101";
+ constant xC2S6 : ogg_int_32_t := "00000000000000001110110010000011";
+ constant xC3S5 : ogg_int_32_t := "00000000000000001101010011011011";
+ constant xC4S4 : ogg_int_32_t := "00000000000000001011010100000101";
+ constant xC5S3 : ogg_int_32_t := "00000000000000001000111000111010";
+ constant xC6S2 : ogg_int_32_t := "00000000000000000110000111111000";
+ constant xC7S1 : ogg_int_32_t := "00000000000000000011000111110001";
+
+
+begin
+
+ -- Data matrix 8 x 8 x 16 bits
+ mem : dual_syncram
+ generic map( DEPTH => 64, DATA_WIDTH => 16, ADDR_WIDTH => 6 )
+ port map(clk, mem_we, mem_waddr, mem_wdata, mem_raddr1, mem_rdata1, mem_raddr2, mem_rdata2 );
+
+ in_request <= s_in_request;
+ out_valid <= s_out_valid;
+ out_data <= mem_rdata1;
+
+
+ process(clk)
+
+ procedure ReadIn is
+ begin
+ s_out_valid <= '0'; -- came from WriteOut, out_valid must be 0
+ s_in_request <= '1';
+
+ if( s_in_request = '1' and in_valid = '1' )then
+ mem_waddr <= dezigzag_index( count );
+ mem_wdata <= "*"( in_data, in_quantmat )(15 downto 0);
+ mem_we <= '1';
+
+ if( count = 63 )then
+ state <= idct;
+ s_in_request <= '0';
+ count <= 0;
+ else
+ count <= count + 1;
+ end if;
+
+ end if;
+ end procedure ReadIn;
+
+
+ procedure WriteOut is
+ begin
+ case wout_state is
+ when wout_st1 =>
+ wout_state <= wout_st2;
+ mem_raddr1 <= to_unsigned(count,6);
+
+ when wout_st2 => -- Wait for the memory delay
+ wout_state <= wout_st3;
+ s_out_valid <= '0';
+
+ when wout_st3 =>
+ s_out_valid <= '1';
+
+ if( out_requested = '1' )then
+ if( count = 63 )then
+ wout_state <= wout_st1;
+ state <= readIn; -- on readIn state must set out_valid to 0
+ count <= 0;
+ else
+ wout_state <= wout_st2;
+ mem_raddr1 <= to_unsigned(count + 1,6);
+ count <= count + 1;
+ end if;
+ end if;
+
+ when others => null;
+ end case;
+ end procedure WriteOut;
+
+
+
+ procedure Idct is
+ variable adjust: integer range 0 to 8;
+ variable adjidx : integer range 0 to 8;
+ variable shift : integer range 0 to 4;
+ begin
+ if (row_loop = '1') then
+ adjust := 0;
+ shift := 0;
+ adjidx := 1;
+ else
+ adjust := 8;
+ shift := 4;
+ adjidx := 8;
+ end if;
+
+ case idct_state is
+ when idct_st1 =>
+ idct_state <= idct_st2;
+ mem_raddr1 <= to_unsigned(1*adjidx + count,6);
+ mem_raddr2 <= to_unsigned(7*adjidx + count,6);
+ when idct_st2 =>
+ idct_state <= idct_st3;
+ mem_raddr1 <= to_unsigned(3*adjidx + count,6);
+ mem_raddr2 <= to_unsigned(5*adjidx + count,6);
+ when idct_st3 =>
+ idct_state <= idct_st4;
+ s_A <= "*"(xC1S7,mem_rdata1)(31 downto 16) + "*"(xC7S1,mem_rdata2)(31 downto 16);
+ s_B <= "*"(xC7S1,mem_rdata1)(31 downto 16) - "*"(xC1S7,mem_rdata2)(31 downto 16);
+ mem_raddr1 <= to_unsigned(3*adjidx + count,6);
+ mem_raddr2 <= to_unsigned(5*adjidx + count,6);
+
+ when idct_st4 =>
+ idct_state <= idct_st5;
+ s_C <= "*"(xC3S5,mem_rdata1)(31 downto 16) + "*"(xC5S3,mem_rdata2)(31 downto 16);
+ s_D <= "*"(xC3S5,mem_rdata2)(31 downto 16) - "*"(xC5S3,mem_rdata1)(31 downto 16);
+ mem_raddr1 <= to_unsigned(0*adjidx + count,6);
+ mem_raddr2 <= to_unsigned(4*adjidx + count,6);
+ when idct_st5 =>
+ idct_state <= idct_st6;
+ s_Ad <= "*"(xC4S4,(s_A - s_C))(31 downto 16);
+ s_Bd <= "*"(xC4S4,(s_B - s_D))(31 downto 16);
+ s_Cd <= s_A + s_C;
+ s_Dd <= s_B + s_D;
+ mem_raddr1 <= to_unsigned(2*adjidx + count,6);
+ mem_raddr2 <= to_unsigned(6*adjidx + count,6);
+
+ when idct_st6 =>
+ idct_state <= idct_st7;
+ s_E <= "*"(xC4S4,(mem_rdata1 + mem_rdata2))(31 downto 16);
+ s_F <= "*"(xC4S4,(mem_rdata1 - mem_rdata2))(31 downto 16);
+
+ when idct_st7 =>
+ idct_state <= idct_st8;
+ s_G <= "*"(xC2S6,mem_rdata1)(31 downto 16) + "*"(xC6S2,mem_rdata2)(31 downto 16);
+ s_H <= "*"(xC6S2,mem_rdata1)(31 downto 16) - "*"(xC2S6,mem_rdata2)(31 downto 16);
+
+ when idct_st8 =>
+ idct_state <= idct_st9;
+ s_Ed <= s_E - s_G + adjust;
+ s_Gd <= s_E + s_G + adjust;
+ s_Add <= s_F + s_Ad + adjust;
+ s_Fd <= s_F - s_Ad + adjust;
+ s_Bdd <= s_Bd - s_H;
+ s_Hd <= s_Bd + s_H;
+
+ when idct_st9 =>
+ idct_state <= idct_st10;
+ mem_waddr <= to_unsigned(0*adjidx + count,6);
+ mem_wdata <= shift_right(s_Gd + s_Cd,shift);
+ mem_we <= '1';
+
+ when idct_st10 =>
+ idct_state <= idct_st11;
+ mem_waddr <= to_unsigned(7*adjidx + count,6);
+ mem_wdata <= shift_right(s_Gd - s_Cd,shift);
+ mem_we <= '1';
+
+ when idct_st11 =>
+ idct_state <= idct_st12;
+ mem_waddr <= to_unsigned(1*adjidx + count,6);
+ mem_wdata <= shift_right(s_Add + s_Hd,shift);
+ mem_we <= '1';
+
+ when idct_st12 =>
+ idct_state <= idct_st13;
+ mem_waddr <= to_unsigned(2*adjidx + count,6);
+ mem_wdata <= shift_right(s_Add - s_Hd,shift);
+ mem_we <= '1';
+
+ when idct_st13 =>
+ idct_state <= idct_st14;
+ mem_waddr <= to_unsigned(3*adjidx + count,6);
+ mem_wdata <= shift_right(s_Ed + s_Dd,shift);
+ mem_we <= '1';
+
+ when idct_st14 =>
+ idct_state <= idct_st15;
+ mem_waddr <= to_unsigned(4*adjidx + count,6);
+ mem_wdata <= shift_right(s_Ed - s_Dd,shift);
+ mem_we <= '1';
+
+ when idct_st15 =>
+ idct_state <= idct_st16;
+ mem_waddr <= to_unsigned(5*adjidx + count,6);
+ mem_wdata <= shift_right(s_Fd + s_Bdd,shift);
+ mem_we <= '1';
+
+ when idct_st16 =>
+ idct_state <= idct_st1;
+ mem_waddr <= to_unsigned(6*adjidx + count,6);
+ mem_wdata <= shift_right(s_Fd - s_Bdd,shift);
+ mem_we <= '1';
+
+ if (row_loop = '1') then
+ if ( count = 56 ) then
+ count <= 0;
+ row_loop <= '0';
+ else
+ count <= count + 8;
+ end if;
+ else
+ if ( count = 7 ) then
+ count <= 0;
+ row_loop <= '1';
+ state <= writeOut;
+ else
+ count <= count + 1;
+ end if;
+ end if;
+ when others => null;
+ end case;
+ end procedure Idct;
+
+
+ begin
+
+ if(clk'event and clk = '1') then
+ if( Reset_n = '0' ) then
+ state <= readIn;
+ idct_state <= idct_st1;
+ wout_state <= wout_st1;
+ s_in_request <= '0';
+ count <= 0;
+ s_out_valid <= '0';
+ row_loop <= '1';
+ mem_we <= '0';
+
+ mem_waddr <= "000000";
+ mem_wdata <= "0000000000000000";
+ mem_raddr1 <= "000000";
+ mem_raddr2 <= "000000";
+ else
+ mem_we <= '0';
+ case state is
+ when readIn => ReadIn;
+ when idct => Idct;
+ when writeOut => WriteOut;
+ when others => ReadIn; state <= readIn;
+ end case;
+ end if;
+ end if;
+ end process;
+
+end rtl;
Added: trunk/theora-fpga/reconrefframes/lflimits.vhd
===================================================================
--- trunk/theora-fpga/reconrefframes/lflimits.vhd (rev 0)
+++ trunk/theora-fpga/reconrefframes/lflimits.vhd 2007-09-15 23:10:55 UTC (rev 13820)
@@ -0,0 +1,36 @@
+-------------------------------------------------------------------------------
+-- Description: This file implements a component that calculate
+-- the filtbounding on-the-fly.
+-------------------------------------------------------------------------------
+
+library std;
+library ieee;
+use ieee.std_logic_1164.all;
+use ieee.numeric_std.all;
+
+entity LFLimits is
+
+ port (
+ parameter : in unsigned(8 downto 0);
+ FLimit : in signed(8 downto 0);
+
+ fbv_value : out signed(9 downto 0));
+
+end LFLimits;
+
+architecture a_LFLimits of LFLimits is
+
+begin -- a_LFLimits
+
+ fbv_value <=
+ "0000000000"
+ when ((parameter <= 256 - unsigned(2*('0' & FLimit))) or
+ (parameter >= 256 + unsigned(2*('0' & FLimit)))) else
+ ('0' & signed(parameter)) - "0100000000"
+ when ((parameter > 256 - unsigned(FLimit)) and
+ (parameter < 256 + unsigned(FLimit))) else
+ resize(256 - 2*('0' & FLimit) - ('0' & signed(parameter)), 10)
+ when ((parameter > 256 - unsigned(2*('0' & FLimit))) and
+ (parameter <= 256 - unsigned(FLimit))) else
+ resize(256 + 2*('0' & FLimit) -('0' & signed(parameter)), 10);
+end a_LFLimits;
Added: trunk/theora-fpga/reconrefframes/loopfilter.vhd
===================================================================
--- trunk/theora-fpga/reconrefframes/loopfilter.vhd (rev 0)
+++ trunk/theora-fpga/reconrefframes/loopfilter.vhd 2007-09-15 23:10:55 UTC (rev 13820)
@@ -0,0 +1,1904 @@
+-------------------------------------------------------------------------------
+-- Description: This file implements the loopfilter. A filter that do
+-- a deblocking on the fragments.
+-------------------------------------------------------------------------------
+library std;
+library ieee;
+library work;
+
+use ieee.std_logic_1164.all;
+use ieee.numeric_std.all;
+use work.all;
+
+
+entity LoopFilter is
+
+ port (Clk,
+ Reset_n : in std_logic;
+ Enable : in std_logic;
+
+ in_request : out std_logic;
+ in_valid : in std_logic;
+ in_data : in signed(31 downto 0);
+
+ in_sem_request : out std_logic;
+ in_sem_valid : in std_logic;
+ in_sem_addr : out unsigned(19 downto 0);
+ in_sem_data : in signed(31 downto 0);
+
+ out_sem_requested : in std_logic;
+ out_sem_valid : out std_logic;
+ out_sem_addr : out unsigned(19 downto 0);
+ out_sem_data : out signed(31 downto 0);
+
+ out_done : out std_logic
+ );
+end LoopFilter;
+
+architecture a_LoopFilter of LoopFilter is
+ component syncram
+ generic (
+ DEPTH : positive := 64; -- How many slots
+ DATA_WIDTH : positive := 16; -- How many bits per slot
+ ADDR_WIDTH : positive := 6 -- = ceil(log2(DEPTH))
+ );
+ port (
+ clk : in std_logic;
+ wr_e : in std_logic;
+ wr_addr : in unsigned(ADDR_WIDTH-1 downto 0);
+ wr_data : in signed(DATA_WIDTH-1 downto 0);
+ rd_addr : in unsigned(ADDR_WIDTH-1 downto 0);
+ rd_data : out signed(DATA_WIDTH-1 downto 0)
+ );
+ end component;
+
+ component ReconPixelIndex
+ port (Clk,
+ Reset_n : in std_logic;
+
+ in_request : out std_logic;
+ in_valid : in std_logic;
+ in_data : in signed(31 downto 0);
+
+ out_requested : in std_logic;
+ out_valid : out std_logic;
+ out_data : out signed(31 downto 0)
+ );
+ end component;
+
+ component LFLimits
+ port (
+ parameter : in unsigned(8 downto 0);
+ FLimit : in signed(8 downto 0);
+ fbv_value : out signed(9 downto 0));
+ end component;
+
+
+ -- We are using 1024 as the maximum width and height size
+ -- = ceil(log2(Maximum Size))
+ constant LG_MAX_SIZE : natural := 10;
+ constant MEM_ADDR_WIDTH : natural := 20;
+ constant ZERO_ADDR_MEM : unsigned(LG_MAX_SIZE*2 downto 0) := "000000000000000000000";
+
+ -- This values must not be changed.
+ constant MEM_DATA_WIDTH : natural := 32;
+
+ subtype ogg_int32_t is signed(31 downto 0);
+ subtype uchar_t is unsigned (7 downto 0);
+
+ type mem_64_8bits_t is array (0 to 63) of uchar_t;
+
+-- Fragment Parameters
+ signal HFragments : unsigned(LG_MAX_SIZE-3 downto 0);
+ signal VFragments : unsigned(LG_MAX_SIZE-3 downto 0);
+ signal YStride : unsigned(LG_MAX_SIZE+1 downto 0);
+ signal UVStride : unsigned(LG_MAX_SIZE downto 0);
+ signal YPlaneFragments : unsigned(LG_MAX_SIZE*2 downto 0);
+ signal UVPlaneFragments : unsigned(LG_MAX_SIZE*2-2 downto 0);
+ signal ReconYDataOffset : unsigned(MEM_ADDR_WIDTH-1 downto 0);
+ signal ReconUDataOffset : unsigned(MEM_ADDR_WIDTH-1 downto 0);
+ signal ReconVDataOffset : unsigned(MEM_ADDR_WIDTH-1 downto 0);
+ signal UnitFragmets : unsigned(LG_MAX_SIZE*2 downto 0);
+
+-- FLimits signals
+ signal FLimit : signed(8 downto 0);
+ signal fbv_position : unsigned(8 downto 0);
+ signal fbv_value : signed(9 downto 0);
+
+-- ReconPixelIndex signals and constants
+ constant RPI_DATA_WIDTH : positive := 32;
+ constant RPI_POS_WIDTH : positive := 17;
+ signal rpi_position : unsigned(RPI_POS_WIDTH-1 downto 0);
+ signal rpi_value : signed(RPI_DATA_WIDTH-1 downto 0);
+
+ signal s_rpi_in_request : std_logic;
+ signal s_rpi_in_valid : std_logic;
+ signal s_rpi_in_data : signed(31 downto 0);
+
+ signal s_rpi_out_requested : std_logic;
+ signal s_rpi_out_valid : std_logic;
+ signal s_rpi_out_data : signed(31 downto 0);
+
+
+-- Memories
+ signal LoopFilterLimits : mem_64_8bits_t;
+
+-- Process Signals
+ signal ThisFrameQualityValue : signed(31 downto 0);
+
+ signal QIndex : unsigned(5 downto 0);
+ signal pli : unsigned(1 downto 0);
+
+ signal FragsAcross : unsigned(LG_MAX_SIZE-3 downto 0);
+ signal FragsDown : unsigned(LG_MAX_SIZE-3 downto 0);
+ signal LineLength : unsigned(LG_MAX_SIZE+1 downto 0);
+ signal LineFragments : unsigned(LG_MAX_SIZE-3 downto 0);
+ signal Fragment : unsigned(LG_MAX_SIZE*2 downto 0);
+ signal dpf_position : unsigned(LG_MAX_SIZE*2 downto 0);
+
+ signal MaxDPFCount : unsigned(LG_MAX_SIZE*2 downto 0);
+
+ signal pixelPtr : unsigned(MEM_ADDR_WIDTH-1 downto 0);
+ signal DeltaHorizFilter : signed(3 downto 0);
+
+ signal CountFilter : unsigned(2 downto 0);
+ signal CountColumns : unsigned(2 downto 0);
+
+ signal disp_frag_value : std_logic;
+
+ signal CountMiddles : unsigned(LG_MAX_SIZE*2 downto 0);
+ signal CountMidCols : unsigned(LG_MAX_SIZE*2 downto 0);
+
+-- Memories Signals
+ signal mem_rd_data : signed(31 downto 0);
+ signal mem_rd_valid : std_logic;
+ signal mem_wr_ready : std_logic;
+
+-- FSMs
+ type state_t is (readIn, proc);
+ signal state : state_t;
+
+ type read_state_t is (stt_qTT, stt_lfLim,
+ stt_dispFrag, stt_Others,
+ stt_32bitsData);
+ signal read_state : read_state_t;
+
+
+ type proc_state_t is (stt_ReadMemory, stt_WriteMemory,
+ stt_FindQIndex, stt_CalcFLimit,
+ stt_SelectColor, stt_ApplyFilter,
+ stt_CalcDispFragPos,
+ stt_CallFilterHoriz, stt_CalcFilterHoriz,
+ stt_CallFilterVert, stt_CalcFilterVert,
+ stt_Calc_RPI_Value);
+ signal proc_state : proc_state_t;
+ signal back_proc_state : proc_state_t;
+ signal next_proc_state : proc_state_t;
+
+ type calc_rpi_state_t is (stt_calc_rpi1, stt_calc_rpi2);
+ signal calc_rpi_state : calc_rpi_state_t;
+
+ type set_bound_val_state_t is (stt_SetBVal1, stt_SetBVal2, stt_SetBVal3, stt_SetBVal4);
+ signal set_bound_val_state : set_bound_val_state_t;
+
+ type calc_filter_state_t is (stt_CalcFilter1, stt_CalcFilter2,
+ stt_CalcFilter3);
+ signal calc_filter_state : calc_filter_state_t;
+
+
+ type apply_filter_state_t is (stt_ApplyFilter_1, stt_ApplyFilter_2,
+ stt_ApplyFilter_3, stt_ApplyFilter_4,
+ stt_ApplyFilter_5, stt_ApplyFilter_6,
+ stt_ApplyFilter_7, stt_ApplyFilter_8,
+ stt_ApplyFilter_9, stt_ApplyFilter_10,
+ stt_ApplyFilter_11, stt_ApplyFilter_12,
+ stt_ApplyFilter_13, stt_ApplyFilter_14,
+ stt_ApplyFilter_15, stt_ApplyFilter_16,
+ stt_ApplyFilter_17, stt_ApplyFilter_18,
+ stt_ApplyFilter_19, stt_ApplyFilter_20,
+ stt_ApplyFilter_21, stt_ApplyFilter_22,
+ stt_ApplyFilter_23, stt_ApplyFilter_24,
+ stt_ApplyFilter_25, stt_ApplyFilter_26,
+ stt_ApplyFilter_27, stt_ApplyFilter_28,
+ stt_ApplyFilter_29, stt_ApplyFilter_30,
+ stt_ApplyFilter_31, stt_ApplyFilter_32,
+ stt_ApplyFilter_33, stt_ApplyFilter_34);
+ signal apply_filter_state : apply_filter_state_t;
+ signal next_apply_filter_state : apply_filter_state_t;
+
+
+ type disp_frag_state_t is (stt_DispFrag1, stt_DispFrag2,
+ stt_DispFrag3, stt_DispFrag4,
+ stt_DispFrag5, stt_DispFrag6,
+ stt_DispFrag7, stt_DispFrag8,
+ stt_DispFrag9, stt_DispFrag10,
+ stt_DispFrag11, stt_DispFrag12,
+ stt_DispFrag13, stt_DispFrag14,
+ stt_DispFrag15, stt_DispFrag16,
+ stt_DispFrag17, stt_DispFrag18,
+ stt_DispFrag19, stt_DispFrag20,
+ stt_DispFrag21, stt_DispFrag22);
+
+ signal disp_frag_state : disp_frag_state_t;
+ signal next_disp_frag_state : disp_frag_state_t;
+
+ type calc_disp_frag_state_t is (stt_CalcDispFrag1,
+ stt_CalcDispFrag2,
+ stt_CalcDispFrag3);
+ signal calc_disp_frag_state : calc_disp_frag_state_t;
+
+-- Handshake
+ signal count : integer range 0 to 2097151;
+
+ signal s_in_request : std_logic;
+
+ signal s_in_sem_request : std_logic;
+ signal s_out_sem_valid : std_logic;
+ signal s_out_done : std_logic;
+
+ signal lfr_OffSet : unsigned(MEM_ADDR_WIDTH-1 downto 0);
+
+ constant NULL_24bits : signed(23 downto 0) := "000000000000000000000000";
+ constant NULL_32bits : signed(31 downto 0) := x"00000000";
+ constant MAX_32bits : signed(31 downto 0) := x"11111111";
+
+ constant QTT_DEPTH : positive := 64;
+ constant QTT_DATA_WIDTH : positive := 32;
+ constant QTT_ADDR_WIDTH : positive := 6;
+
+ constant DPF_DEPTH : positive := 57;
+ constant DPF_DATA_WIDTH : positive := 32;
+ constant DPF_ADDR_WIDTH : positive := 6;
+
+-- Memories
+ signal qtt_wr_e : std_logic;
+ signal qtt_wr_addr : unsigned(QTT_ADDR_WIDTH-1 downto 0);
+ signal qtt_wr_data : signed(QTT_DATA_WIDTH-1 downto 0);
+ signal qtt_rd_addr : unsigned(QTT_ADDR_WIDTH-1 downto 0);
+ signal qtt_rd_data : signed(QTT_DATA_WIDTH-1 downto 0);
+
+ type mem4bytes_t is array (0 to 3) of uchar_t;
+ signal Pixel : mem4bytes_t;
+ type lfr_array_2_t is array (0 to 1) of ogg_int32_t;
+ signal lfr_datas : lfr_array_2_t;
+ type lfr_pos_pixels_t is array (0 to 1) of unsigned(1 downto 0);
+ signal lfr_pos_pixels : lfr_pos_pixels_t;
+
+ signal dpf_wr_e : std_logic;
+ signal dpf_wr_addr : unsigned(DPF_ADDR_WIDTH-1 downto 0);
+ signal dpf_wr_data : signed(DPF_DATA_WIDTH-1 downto 0);
+ signal dpf_rd_addr : unsigned(DPF_ADDR_WIDTH-1 downto 0);
+ signal dpf_rd_data : signed(DPF_DATA_WIDTH-1 downto 0);
+
+
+-- signal T_Pixel1 : ogg_int32_t;
+-- signal T_Pixel2 : ogg_int32_t;
+
+-- signal applyfilter_states : integer;
+-- signal dispfragstates_states : integer;
+
+
+begin -- a_LoopFilter
+
+ in_request <= s_in_request;
+ in_sem_request <= s_in_sem_request;
+ out_sem_valid <= s_out_sem_valid;
+ out_done <= s_out_done;
+
+ mem_64_int32: syncram
+ generic map (QTT_DEPTH, QTT_DATA_WIDTH, QTT_ADDR_WIDTH)
+ port map (clk, qtt_wr_e, qtt_wr_addr, qtt_wr_data, qtt_rd_addr, qtt_rd_data);
+
+ mem_512_int32_1: syncram
+ generic map (DPF_DEPTH, DPF_DATA_WIDTH, DPF_ADDR_WIDTH)
+ port map (clk, dpf_wr_e, dpf_wr_addr, dpf_wr_data, dpf_rd_addr, dpf_rd_data);
+
+ lflimits0: lflimits
+ port map (fbv_position, FLimit, fbv_value);
+
+ rpi0: reconpixelindex
+ port map (Clk => Clk,
+ Reset_n => Reset_n,
+ in_request => s_rpi_out_requested,
+ in_valid => s_rpi_out_valid,
+ in_data => s_rpi_out_data,
+
+ out_requested => s_rpi_in_request,
+ out_valid => s_rpi_in_valid,
+ out_data => s_rpi_in_data);
+
+
+ RPI_HandShake: process (count, in_data, in_valid,
+ state, read_state, proc_state,
+ calc_rpi_state, rpi_position,
+ s_in_request)
+ begin -- process RPI_HandShake
+ s_rpi_out_data <= x"00000000";
+ s_rpi_out_valid <= '0';
+ if (s_in_request = '1') then
+ if (state = readIn and read_state = stt_32bitsData) then
+ if (count >=0 and count <=8) then
+ s_rpi_out_data <= in_data;
+ s_rpi_out_valid <= in_valid;
+ end if;
+ end if;
+ else
+ if (state = proc and
+ proc_state = stt_Calc_RPI_Value and
+ calc_rpi_state = stt_calc_rpi1) then
+ s_rpi_out_data <= resize(signed('0'&rpi_position), 32);
+ s_rpi_out_valid <= '1';
+ end if;
+ end if;
+ end process RPI_HandShake;
+
+
+ process (clk)
+-------------------------------------------------------------------------------
+-- Procedures called when state is readIn
+-------------------------------------------------------------------------------
+ procedure Read32bitsData is
+ begin
+-- assert false report "in_data = "&integer'image(to_integer(in_data)) severity note;
+ if (count = 0) then
+ HFragments <= unsigned(in_data(LG_MAX_SIZE-3 downto 0));
+ count <= count + 1;
+ elsif (count = 1) then
+ YPlaneFragments <= unsigned(in_data(LG_MAX_SIZE*2 downto 0));
+ count <= count + 1;
+ elsif (count = 2) then
+ YStride <= unsigned(in_data(LG_MAX_SIZE+1 downto 0));
+ count <= count + 1;
+ elsif (count = 3) then
+ UVPlaneFragments <= unsigned(in_data(LG_MAX_SIZE*2-2 downto 0));
+ count <= count + 1;
+ elsif (count = 4) then
+ UVStride <= unsigned(in_data(LG_MAX_SIZE downto 0));
+ count <= count + 1;
+ elsif (count = 5) then
+ VFragments <= unsigned(in_data(LG_MAX_SIZE-3 downto 0));
+ count <= count + 1;
+ elsif (count = 6) then
+ ReconYDataOffset <= unsigned(in_data(MEM_ADDR_WIDTH-1 downto 0));
+ count <= count + 1;
+ elsif (count = 7) then
+ ReconUDataOffset <= unsigned(in_data(MEM_ADDR_WIDTH-1 downto 0));
+ count <= count + 1;
+ elsif (count = 8) then
+ ReconVDataOffset <= unsigned(in_data(MEM_ADDR_WIDTH-1 downto 0));
+ count <= count + 1;
+ else
+ assert false report "UnitFragments = "&integer'image(to_integer(in_data)) severity note;
+ UnitFragmets <= unsigned(in_data(LG_MAX_SIZE*2 downto 0));
+
+ MaxDPFCount <= SHIFT_RIGHT(
+ unsigned(in_data(LG_MAX_SIZE*2 downto 0)), 5) + 1;
+ if (in_data(4 downto 0) = "00000") then
+ MaxDPFCount <= SHIFT_RIGHT(
+ unsigned(in_data(LG_MAX_SIZE*2 downto 0)), 5);
+ end if;
+ read_state <= stt_qTT;
+ count <= 0;
+ end if;
+ end procedure Read32bitsData;
+
+-------------------------------------------------------------------------------
+-- Procedure that receives the QThreashTable matrice and keep the data
+-- in a SRAM memory
+-------------------------------------------------------------------------------
+ procedure QThreTab is
+ begin
+ qtt_wr_e <= '1';
+ qtt_wr_data <= in_data;
+ qtt_wr_addr <= qtt_wr_addr + 1;
+
+ if (count = 0) then
+ qtt_wr_addr <= "000000";
+ count <= count + 1;
+ elsif (count = 63) then
+ read_state <= stt_lfLim;
+ count <= 0;
+ -- on next state must set qtt_wr_e to 0
+ else
+ count <= count + 1;
+ end if;
+ end procedure QThreTab;
+
+-------------------------------------------------------------------------------
+-- Procedure that receives the loop filter limits values and keep the data
+-- in an internal memory
+-------------------------------------------------------------------------------
+ procedure LfLim is
+ begin
+ qtt_wr_e <= '0';
+
+ LoopFilterLimits(count + 3) <= unsigned(in_data(7 downto 0));
+ LoopFilterLimits(count + 2) <= unsigned(in_data(15 downto 8));
+ LoopFilterLimits(count + 1) <= unsigned(in_data(23 downto 16));
+ LoopFilterLimits(count) <= unsigned(in_data(31 downto 24));
+ if(count = 60)then
+ read_state <= stt_dispFrag;
+ count <= 0;
+ else
+ count <= count + 4;
+ end if;
+ end procedure LfLim;
+
+-------------------------------------------------------------------------------
+-- Procedure that receives the display fragments matrice and keep the data
+-- in a SRAM memory
+-------------------------------------------------------------------------------
+ procedure DispFrag is
+ begin
+ dpf_wr_e <= '1';
+ dpf_wr_data <= in_data;
+ dpf_wr_addr <= dpf_wr_addr + 1;
+ if (count = 0) then
+ dpf_wr_addr <= "000000";
+ count <= 1;
+ elsif (count = MaxDPFCount - 1) then
+ read_state <= stt_Others;
+ count <= 0;
+ else
+ count <= count + 1;
+ end if;
+ end procedure DispFrag;
+
+-------------------------------------------------------------------------------
+-- Procedure that receives the ThisFrameQualityValue and the Last Reconstructed
+-- Frame offset
+-------------------------------------------------------------------------------
+ procedure ReadOthers is
+ begin
+ if (count = 0) then
+ ThisFrameQualityValue <= in_data;
+ count <= count + 1;
+ else
+ lfr_OffSet <= SHIFT_RIGHT(unsigned(in_data(MEM_ADDR_WIDTH-1 downto 0)), 2);
+ state <= proc;
+ count <= 0;
+ read_state <= stt_dispFrag;
+ proc_state <= stt_FindQIndex;
+ s_in_request <= '0';
+ QIndex <= "111111";
+ end if;
+ end procedure ReadOthers;
+
+-------------------------------------------------------------------------------
+-- Procedure that controls the read state machine
+-------------------------------------------------------------------------------
+ procedure ReadIn is
+ begin
+ s_out_done <= '0';
+ s_in_request <= '1';
+
+ s_out_sem_valid <= '0';
+ s_in_sem_request <= '0';
+ if (s_in_request = '1' and in_valid = '1') then
+
+ case read_state is
+ when stt_qTT => QThreTab;
+ when stt_lfLim => LfLim;
+ when stt_dispFrag => DispFrag;
+ when stt_Others => ReadOthers;
+ when others => Read32bitsData;
+ end case;
+ end if;
+ end procedure ReadIn;
+
+-- *****************************************************
+-- Procedures called when state is proc
+-- *****************************************************
+
+ procedure ReadMemory is
+ begin
+ -- After use the data mem_rd_valid must
+ -- be set to '0'
+ mem_rd_valid <= in_sem_valid;
+ s_in_sem_request <= '1';
+ if (s_in_sem_request = '1' and in_sem_valid = '1') then
+ mem_rd_data <= in_sem_data;
+ s_in_sem_request <= '0';
+ proc_state <= back_proc_state;
+ end if;
+ end procedure ReadMemory;
+
+ procedure WriteMemory is
+ begin
+ if (out_sem_requested = '1') then
+ proc_state <= back_proc_state;
+ mem_wr_ready <= '1';
+ s_out_sem_valid <= '0';
+ end if;
+ end procedure WriteMemory;
+
+ procedure CalcRPIValue is
+ begin
+ case calc_rpi_state is
+ when stt_calc_rpi1 =>
+ -- Wait until ReconPixelIndex can receive the data
+ if (s_rpi_out_requested = '1') then
+ calc_rpi_state <= stt_calc_rpi2;
+ end if;
+
+
+ when others =>
+ -- Wait until ReconPixelIndex returns the value
+ s_rpi_in_request <= '1';
+ if (s_rpi_in_request = '1' and s_rpi_in_valid = '1') then
+ rpi_value <= s_rpi_in_data;
+ s_rpi_in_request <= '0';
+ proc_state <= next_proc_state;
+ end if;
+ end case;
+ end procedure CalcRPIValue;
+
+-------------------------------------------------------------------------------
+-- Initialize QIndex with 63.
+-- For each element i of qtt in decreasing order, if i >= ThisFrameQualityValue
+-- then stop, else subtract one of the QIndex and read the i-1 element of qtt,
+-- until QIndex = 0
+-------------------------------------------------------------------------------
+ procedure FindQIndex is
+ begin
+ if (count = 0) then
+ qtt_rd_addr <= QIndex;
+ count <= 1;
+ elsif (count = 1) then
+ qtt_rd_addr <= QIndex - 1;
+ count <= 2;
+ else
+ if ((QIndex = "000000") or
+ (qtt_rd_data >= ThisFrameQualityValue)) then
+ proc_state <= stt_CalcFLimit;
+ count <= 0;
+ else
+ qtt_rd_addr <= QIndex - 2;
+ QIndex <= QIndex - 1;
+ count <= 2;
+ end if;
+ end if;
+ end procedure FindQIndex;
+
+-------------------------------------------------------------------------------
+-- If LoopFilterLimits[QIndex] is not zero do the loopfiltering in the frame.
+-- The next procedure is SelectColor
+-------------------------------------------------------------------------------
+ procedure CalcFLimit is
+ begin
+ if (LoopFilterLimits(to_integer(QIndex)) /= "00000000000000000000000000000000") then
+ proc_state <= stt_SelectColor;
+ FLimit <= '0' & signed(LoopFilterLimits(to_integer(QIndex)));
+ else
+ pli <= "00";
+ count <= 0;
+ s_out_done <= '1';
+
+ state <= readIn;
+ read_state <= stt_dispFrag;
+ proc_state <= stt_FindQIndex;
+ apply_filter_state <= stt_ApplyFilter_1;
+ calc_filter_state <= stt_CalcFilter1;
+ end if;
+ end procedure CalcFLimit;
+
+-------------------------------------------------------------------------------
+-- Adjust some parameters according the plane of color
+-------------------------------------------------------------------------------
+ procedure SelectColor is
+ begin
+ if (pli = "00") then
+ FragsAcross <= HFragments;
+ LineLength <= YStride;
+ LineFragments <= HFragments;
+ FragsDown <= VFragments;
+ Fragment <= "000000000000000000000";
+ proc_state <= stt_ApplyFilter;
+ disp_frag_state <= stt_DispFrag1;
+ pli <= pli + 1;
+
+ elsif (pli = "01") then
+
+ FragsAcross <= SHIFT_RIGHT(HFragments, 1);
+ LineLength <= '0' & UVStride;
+ LineFragments <= SHIFT_RIGHT(HFragments, 1);
+ FragsDown <= SHIFT_RIGHT(VFragments, 1);
+ Fragment <= YPlaneFragments;
+ proc_state <= stt_ApplyFilter;
+ disp_frag_state <= stt_DispFrag1;
+ pli <= pli + 1;
+
+ elsif (pli = "10") then
+
+ FragsAcross <= SHIFT_RIGHT(HFragments, 1);
+ LineLength <= '0' & UVStride;
+ LineFragments <= SHIFT_RIGHT(HFragments, 1);
+ FragsDown <= SHIFT_RIGHT(VFragments, 1);
+ Fragment <= YPlaneFragments + UVPlaneFragments;
+ proc_state <= stt_ApplyFilter;
+ disp_frag_state <= stt_DispFrag1;
+ pli <= pli + 1;
+ else
+ assert false report "SelectColor 4" severity note;
+ pli <= "00";
+ count <= 0;
+ s_out_done <= '1';
+
+ state <= readIn;
+ read_state <= stt_dispFrag;
+ proc_state <= stt_FindQIndex;
+ apply_filter_state <= stt_ApplyFilter_1;
+ calc_filter_state <= stt_CalcFilter1;
+ end if;
+ end procedure SelectColor;
+
+
+ procedure CallFilterHoriz is
+ variable fourPixels : signed(MEM_DATA_WIDTH-1 downto 0);
+ variable memPosPixel : unsigned(1 downto 0);
+ variable numPixel : signed(RPI_DATA_WIDTH-1 downto 0);
+
+ begin
+ numPixel := rpi_value +
+ DeltaHorizFilter +
+ ('0' & signed(pixelPtr) + count);
+ memPosPixel := unsigned(numPixel(1 downto 0));
+
+ -- When use the data mem_rd_valid must
+ -- be set to '0'
+ if (mem_rd_valid = '0') then
+ s_in_sem_request <= '1';
+ in_sem_addr <= lfr_OffSet +
+ resize(
+ SHIFT_RIGHT('0' & unsigned(numPixel), 2)
+ , MEM_ADDR_WIDTH
+ );
+ back_proc_state <= stt_CallFilterHoriz;
+ proc_state <= stt_ReadMemory;
+ else
+ mem_rd_valid <= '0';
+ fourPixels := (SHIFT_RIGHT(
+ mem_rd_data,
+ 24 -
+ to_integer(memPosPixel) * 8));
+ Pixel(count) <= unsigned(fourPixels(7 downto 0));
+
+ if (count = 1 or count = 2) then
+ -- Saves the second or third pixel data slot and
+ -- their positions in the slot
+ lfr_datas(count - 1) <= mem_rd_data;
+ lfr_pos_pixels(count - 1) <= memPosPixel;
+ end if;
+ if (count = 3) then
+ fbv_position <= resize(unsigned(
+ 256 +
+ SHIFT_RIGHT(
+ ("0000" &
+ signed(Pixel(0))) -
+ (("0000" &
+ signed(Pixel(1))) * 3) +
+ (("0000" &
+ signed(Pixel(2))) * 3) -
+ ("0000" &
+ signed(fourPixels(7 downto 0))) + 4
+ , 3)), 9);
+
+ count <= 0;
+ proc_state <= stt_CalcFilterHoriz;
+ else
+ count <= count + 1;
+ end if;
+ end if;
+ end procedure CallFilterHoriz;
+
+ procedure CalcFilterHoriz is
+ variable Pixel1 : ogg_int32_t;
+ variable Pixel2 : ogg_int32_t;
+ variable newPixel : uchar_t;
+
+ begin
+ if (calc_filter_state = stt_CalcFilter1) then
+
+ Pixel1 := NULL_24bits &
+ signed(Pixel(1)) + fbv_value;
+-- T_Pixel1 <= Pixel1;
+
+ out_sem_addr <= lfr_OffSet +
+ resize(
+ SHIFT_RIGHT(
+ '0' &
+ unsigned(
+ rpi_value +
+ DeltaHorizFilter +
+ ('0' & signed(pixelPtr)) + 1)
+ ,2
+ ), MEM_ADDR_WIDTH
+ );
+
+ if (Pixel1 < "00000000000000000000000000000000") then
+ newPixel := "00000000";
+ elsif (Pixel1 > "00000000000000000000000011111111") then
+ newPixel := "11111111";
+ else
+ newPixel := unsigned(Pixel1(7 downto 0));
+ end if;
+
+ case lfr_pos_pixels(0) is
+ when "00" =>
+ out_sem_data <= signed(newPixel) &
+ lfr_datas(0)(23 downto 0);
+ when "01" =>
+ out_sem_data <= lfr_datas(0)(31 downto 24) &
+ signed(newPixel) &
+ lfr_datas(0)(15 downto 0);
+ when "10" =>
+ out_sem_data <= lfr_datas(0)(31 downto 16) &
+ signed(newPixel) &
+ lfr_datas(0)(7 downto 0);
+ when others =>
+ out_sem_data <= lfr_datas(0)(31 downto 8) &
+ signed(newPixel);
+ end case;
+
+ s_out_sem_valid <= '1';
+ calc_filter_state <= stt_CalcFilter2;
+ back_proc_state <= stt_CalcFilterHoriz;
+ proc_state <= stt_WriteMemory;
+
+ elsif (calc_filter_state = stt_CalcFilter2) then
+ Pixel2 := NULL_24bits &
+ signed(Pixel(2)) - fbv_value;
+
+-- T_Pixel2 <= Pixel2;
+
+ out_sem_addr <= lfr_OffSet +
+ resize(
+ SHIFT_RIGHT(
+ '0' &
+ unsigned(
+ rpi_value +
+ DeltaHorizFilter +
+ ('0' & signed(pixelPtr)) + 2)
+ ,2
+ ), MEM_ADDR_WIDTH
+ );
+
+
+ if (Pixel2 < "00000000000000000000000000000000") then
+ newPixel := "00000000";
+ elsif (Pixel2 > "00000000000000000000000011111111") then
+ newPixel := "11111111";
+ else
+ newPixel := unsigned(Pixel2(7 downto 0));
+ end if;
+
+ case lfr_pos_pixels(1) is
+ when "00" =>
+ out_sem_data <= signed(newPixel) &
+ lfr_datas(1)(23 downto 0);
+ when "01" =>
+ out_sem_data <= lfr_datas(1)(31 downto 24) &
+ signed(newPixel) &
+ lfr_datas(1)(15 downto 0);
+ when "10" =>
+ out_sem_data <= lfr_datas(1)(31 downto 16) &
+ signed(newPixel) &
+ lfr_datas(1)(7 downto 0);
+ when others =>
+ out_sem_data <= lfr_datas(1)(31 downto 8) &
+ signed(newPixel);
+ end case;
+
+ s_out_sem_valid <= '1';
+ calc_filter_state <= stt_CalcFilter3;
+ back_proc_state <= stt_CalcFilterHoriz;
+ proc_state <= stt_WriteMemory;
+
+ else
+
+ if (CountFilter = "111") then
+ proc_state <= stt_ApplyFilter;
+ apply_filter_state <= next_apply_filter_state; -- Next state
+ pixelPtr <= "00000000000000000000";
+ CountFilter <= "000";
+ else
+ pixelPtr <= pixelPtr + LineLength; -- Next Row
+ proc_state <= stt_CallFilterHoriz;
+ CountFilter <= CountFilter + 1;
+ end if;
+ calc_filter_state <= stt_CalcFilter1;
+ end if;
+ end procedure CalcFilterHoriz;
+
+
+ procedure CallFilterVert is
+ variable fourPixels : signed(MEM_DATA_WIDTH-1 downto 0);
+ variable memPosPixel : unsigned(1 downto 0);
+ variable numPixel : signed(RPI_DATA_WIDTH-1 downto 0);
+ variable posLine : signed(2 downto 0);
+ begin
+ if (count = 0) then
+ posLine := "110";
+ elsif (count = 1) then
+ posLine := "111";
+ elsif (count = 2) then
+ posLine := "000";
+ else
+ posLine := "001";
+ end if;
+
+ numPixel := rpi_value +
+ (signed('0' & LineLength)*posLine) +
+ ('0' & signed(CountColumns));
+ memPosPixel := unsigned(numPixel(1 downto 0));
+
+ -- When use the data mem_rd_valid must
+ -- be set to '0'
+
+ if (mem_rd_valid = '0') then
+ s_in_sem_request <= '1';
+ in_sem_addr <= lfr_OffSet +
+ resize(
+ SHIFT_RIGHT('0' & unsigned(numPixel), 2)
+ , MEM_ADDR_WIDTH
+ );
+
+ if (to_integer(lfr_OffSet +
+ resize(
+ SHIFT_RIGHT('0' & unsigned(numPixel), 2)
+ , MEM_ADDR_WIDTH
+ )) = 1530) then
+ end if;
+
+
+ back_proc_state <= stt_CallFilterVert;
+ proc_state <= stt_ReadMemory;
+
+ else
+ mem_rd_valid <= '0';
+
+ fourPixels := (SHIFT_RIGHT(
+ mem_rd_data,
+ 24 -
+ to_integer(memPosPixel) * 8));
+
+ Pixel(count) <= unsigned(fourPixels(7 downto 0));
+
+ if (count = 1 or count = 2) then
+ -- Saves the second or third pixel data slot and
+ -- their positions in the slot
+ lfr_datas(count - 1) <= mem_rd_data;
+ lfr_pos_pixels(count - 1) <= memPosPixel;
+ end if;
+ if (count = 3) then
+ fbv_position <= resize(unsigned(
+ 256 +
+ SHIFT_RIGHT(
+ ("0000" &
+ signed(Pixel(0))) -
+ (("0000" &
+ signed(Pixel(1))) * 3) +
+ (("0000" &
+ signed(Pixel(2))) * 3) -
+ ("0000" &
+ signed(fourPixels(7 downto 0))) + 4
+ , 3)), 9);
+ count <= 0;
+ proc_state <= stt_CalcFilterVert;
+ else
+ count <= count + 1;
+ end if;
+ end if;
+ end procedure CallFilterVert;
+
+ procedure CalcFilterVert is
+ variable Pixel1 : ogg_int32_t;
+ variable Pixel2 : ogg_int32_t;
+ variable newPixel : uchar_t;
+
+ begin
+
+ if (calc_filter_state = stt_CalcFilter1) then
+
+ Pixel1 := (NULL_24bits &
+ signed(Pixel(1))) + fbv_value;
+-- T_Pixel1 <= Pixel1;
+ out_sem_addr <= lfr_OffSet +
+ resize(
+ SHIFT_RIGHT(
+ '0' &
+ unsigned(
+ rpi_value -
+ ('0' & signed(LineLength)) +
+ ('0' & signed(CountColumns)))
+ ,2
+ ), MEM_ADDR_WIDTH
+ );
+
+ if (Pixel1 < "00000000000000000000000000000000") then
+ newPixel := "00000000";
+ elsif (Pixel1 > "00000000000000000000000011111111") then
+ newPixel := "11111111";
+ else
+ newPixel := unsigned(Pixel1(7 downto 0));
+ end if;
+
+ case lfr_pos_pixels(0) is
+ when "00" =>
+ out_sem_data <= signed(newPixel) &
+ lfr_datas(0)(23 downto 0);
+ when "01" =>
+ out_sem_data <= lfr_datas(0)(31 downto 24) &
+ signed(newPixel) &
+ lfr_datas(0)(15 downto 0);
+ when "10" =>
+ out_sem_data <= lfr_datas(0)(31 downto 16) &
+ signed(newPixel) &
+ lfr_datas(0)(7 downto 0);
+ when others =>
+ out_sem_data <= lfr_datas(0)(31 downto 8) &
+ signed(newPixel);
+ end case;
+
+ s_out_sem_valid <= '1';
+ calc_filter_state <= stt_CalcFilter2;
+ back_proc_state <= stt_CalcFilterVert;
+ proc_state <= stt_WriteMemory;
+
+ elsif (calc_filter_state = stt_CalcFilter2) then
+
+ Pixel2 := (NULL_24bits &
+ signed(Pixel(2))) - fbv_value;
+-- T_Pixel2 <= Pixel2;
+
+ out_sem_addr <= lfr_OffSet +
+ resize(
+ SHIFT_RIGHT(
+ '0' &
+ unsigned(
+ rpi_value +
+ ('0' & signed(CountColumns)))
+ ,2
+ ), MEM_ADDR_WIDTH
+ );
+
+ if (Pixel2 < "00000000000000000000000000000000") then
+ newPixel := "00000000";
+ elsif (Pixel2 > "00000000000000000000000011111111") then
+ newPixel := "11111111";
+ else
+ newPixel := unsigned(Pixel2(7 downto 0));
+ end if;
+
+ case lfr_pos_pixels(1) is
+ when "00" =>
+ out_sem_data <= signed(newPixel) &
+ lfr_datas(1)(23 downto 0);
+ when "01" =>
+ out_sem_data <= lfr_datas(1)(31 downto 24) &
+ signed(newPixel) &
+ lfr_datas(1)(15 downto 0);
+ when "10" =>
+ out_sem_data <= lfr_datas(1)(31 downto 16) &
+ signed(newPixel) &
+ lfr_datas(1)(7 downto 0);
+ when others =>
+ out_sem_data <= lfr_datas(1)(31 downto 8) &
+ signed(newPixel);
+ end case;
+
+ s_out_sem_valid <= '1';
+ calc_filter_state <= stt_CalcFilter3;
+ back_proc_state <= stt_CalcFilterVert;
+ proc_state <= stt_WriteMemory;
+
+ else
+
+ if (CountFilter = "111") then
+ proc_state <= stt_ApplyFilter;
+ apply_filter_state <= next_apply_filter_state; -- Next state
+ CountFilter <= "000";
+ CountColumns <= "000";
+ else
+ CountColumns <= CountColumns + 1;
+ proc_state <= stt_CallFilterVert;
+ CountFilter <= CountFilter + 1;
+ end if;
+ calc_filter_state <= stt_CalcFilter1;
+ end if;
+ end procedure CalcFilterVert;
+
+
+ procedure CalcDispFragPos is
+ begin
+ if (calc_disp_frag_state = stt_CalcDispFrag1) then
+ -- Wait display_fragments memory
+ calc_disp_frag_state <= stt_CalcDispFrag2;
+
+ else
+ disp_frag_value <= dpf_rd_data(31 - to_integer(dpf_position(4 downto 0)));
+ calc_disp_frag_state <= stt_CalcDispFrag1;
+ proc_state <= stt_ApplyFilter;
+ apply_filter_state <= next_apply_filter_state; -- Next state
+ disp_frag_state <= next_disp_frag_state;
+ end if;
+ end procedure CalcDispFragPos;
+
+
+ procedure ApplyFilter is
+ variable NextFragment : unsigned(LG_MAX_SIZE*2 downto 0);
+ begin
+
+ if (apply_filter_state = stt_ApplyFilter_1) then
+-- applyfilter_states <= 1;
+ -- ******************************************************
+ -- First Row
+ -- ******************************************************
+ -- First column coditions
+ -- only do 2 prediction if fragment coded and on non intra
+ -- or if all fragments are intra
+ if (disp_frag_state = stt_DispFrag1) then
+-- dispfragstates_states <= 1;
+ -- dpf_rd_addr <= resize(SHIFT_RIGHT(Fragment,5), DPF_ADDR_WIDTH);
+ dpf_rd_addr <= Fragment((4+DPF_ADDR_WIDTH) downto 5);
+ dpf_position <= Fragment;
+ proc_state <= stt_CalcDispFragPos;
+ next_apply_filter_state <= stt_ApplyFilter_1;
+ next_disp_frag_state <= stt_DispFrag2;
+ else
+ if (disp_frag_value = '1') then
+ apply_filter_state <= stt_ApplyFilter_34;
+ else
+ apply_filter_state <= stt_ApplyFilter_3;
+ end if;
+ end if;
+
+ elsif (apply_filter_state = stt_ApplyFilter_34) then
+-- applyfilter_states <= 34;
+ -- Filter right hand border only if the block to the right
+ -- is not coded
+ if (disp_frag_state = stt_DispFrag2) then
+-- dispfragstates_states <= 2;
+ NextFragment := Fragment + 1;
+ dpf_rd_addr <= NextFragment((4+DPF_ADDR_WIDTH) downto 5);
+ dpf_position <= Fragment + 1;
+ proc_state <= stt_CalcDispFragPos;
+ next_apply_filter_state <= stt_ApplyFilter_34;
+ next_disp_frag_state <= stt_DispFrag3;
+ else
+ if (disp_frag_value = '0') then
+ rpi_position <= resize(Fragment, RPI_POS_WIDTH);
+ -- Horizontal Filter Parameter
+ DeltaHorizFilter <= x"6";
+
+ -- Calculate RPI_Value before continue
+ proc_state <= stt_Calc_RPI_Value;
+ calc_rpi_state <= stt_calc_rpi1;
+ -- Next state after RPI_Value calculation
+ next_proc_state <= stt_CallFilterHoriz;
+ next_apply_filter_state <= stt_ApplyFilter_2;
+ else
+ apply_filter_state <= stt_ApplyFilter_2;
+ end if;
+ end if;
+
+ elsif (apply_filter_state = stt_ApplyFilter_2) then
+-- applyfilter_states <= 2;
+ -- Bottom done if next row set
+ if (disp_frag_state = stt_DispFrag3) then
+ NextFragment := Fragment + LineFragments;
+ dpf_rd_addr <= NextFragment((4+DPF_ADDR_WIDTH) downto 5);
+ dpf_position <= Fragment + LineFragments;
+ proc_state <= stt_CalcDispFragPos;
+ next_apply_filter_state <= stt_ApplyFilter_2;
+ next_disp_frag_state <= stt_DispFrag4;
+ else
+ if (disp_frag_value = '0') then
+ rpi_position <= resize(Fragment + LineFragments, RPI_POS_WIDTH);
+
+ -- Calculate RPI_Value before continue
+ proc_state <= stt_Calc_RPI_Value;
+ calc_rpi_state <= stt_calc_rpi1;
+ -- Next state after RPI_Value calculation
+ next_proc_state <= stt_CallFilterVert;
+ next_apply_filter_state <= stt_ApplyFilter_3;
+ else
+ apply_filter_state <= stt_ApplyFilter_3;
+ end if;
+ end if;
+
+ elsif (apply_filter_state = stt_ApplyFilter_3) then
+-- applyfilter_states <= 3;
+ Fragment <= Fragment + 1;
+ CountMiddles <= '0' & x"00001";
+ apply_filter_state <= stt_ApplyFilter_4;
+ disp_frag_state <= stt_DispFrag4;
+
+ elsif (apply_filter_state = stt_ApplyFilter_4) then
+
+ if (CountMiddles < FragsAcross - 1) then
+
+ -- Middle Columns
+
+ if (disp_frag_state = stt_DispFrag4) then
+ dpf_rd_addr <= Fragment((4+DPF_ADDR_WIDTH) downto 5);
+ dpf_position <= Fragment;
+ proc_state <= stt_CalcDispFragPos;
+ next_apply_filter_state <= stt_ApplyFilter_4;
+ next_disp_frag_state <= stt_DispFrag5;
+
+ else
+
+ if (disp_frag_value = '1') then
+ -- Filter Left edge always
+ rpi_position <= resize(Fragment, RPI_POS_WIDTH);
+ -- Horizontal Filter Parameter
+ DeltaHorizFilter <= x"E";
+
+ -- Calculate RPI_Value before continue
+ proc_state <= stt_Calc_RPI_Value;
+ calc_rpi_state <= stt_calc_rpi1;
+ -- Next state after RPI_Value calculation
+ next_proc_state <= stt_CallFilterHoriz;
+
+ next_apply_filter_state <= stt_ApplyFilter_5;
+ else
+ apply_filter_state <= stt_ApplyFilter_7; -- Increment CountMiddles
+ end if;
+ end if;
+ else
+ apply_filter_state <= stt_ApplyFilter_8;
+ disp_frag_state <= stt_DispFrag7;
+ end if;
+
+
+
+ elsif (apply_filter_state = stt_ApplyFilter_5) then
+
+ -- Enter here only if (CountMiddles < FragsAcross - 1) is true
+ -- and display_fragments(Fragment) is not zero
+ if (disp_frag_state = stt_DispFrag5) then
+ NextFragment := Fragment + 1;
+ dpf_rd_addr <= NextFragment((4+DPF_ADDR_WIDTH) downto 5);
+
+ dpf_position <= Fragment + 1;
+ proc_state <= stt_CalcDispFragPos;
+ next_apply_filter_state <= stt_ApplyFilter_5;
+ next_disp_frag_state <= stt_DispFrag6;
+
+ else
+
+ if (disp_frag_value = '0') then
+
+ -- Filter right hand border only if the block to the right is
+ -- not coded
+ rpi_position <= resize(Fragment, RPI_POS_WIDTH);
+ -- Horizontal Filter Parameter
+ DeltaHorizFilter <= x"6";
+
+ -- Calculate RPI_Value before continue
+ proc_state <= stt_Calc_RPI_Value;
+ calc_rpi_state <= stt_calc_rpi1;
+ -- Next state after RPI_Value calculation
+ next_proc_state <= stt_CallFilterHoriz;
+ next_apply_filter_state <= stt_ApplyFilter_6;
+
+ else
+ apply_filter_state <= stt_ApplyFilter_6;
+ end if;
+ end if;
+
+ elsif (apply_filter_state = stt_ApplyFilter_6) then
+
+ -- Enter here only if (CountMiddles < FragsAcross - 1) is true
+ -- and display_fragments(Fragment) is not zero
+ if (disp_frag_state = stt_DispFrag6) then
+ NextFragment := Fragment + LineFragments;
+ dpf_rd_addr <= NextFragment((4+DPF_ADDR_WIDTH) downto 5);
+
+ dpf_position <= Fragment + LineFragments;
+ proc_state <= stt_CalcDispFragPos;
+ next_apply_filter_state <= stt_ApplyFilter_6;
+ next_disp_frag_state <= stt_DispFrag7;
+
+ else
+
+ if (disp_frag_value = '0') then
+
+ -- Bottom done if next row set
+ rpi_position <= resize(Fragment + LineFragments, RPI_POS_WIDTH);
+
+ -- Calculate RPI_Value before continue
+ proc_state <= stt_Calc_RPI_Value;
+ calc_rpi_state <= stt_calc_rpi1;
+ -- Next state after RPI_Value calculation
+ next_proc_state <= stt_CallFilterVert;
+ next_apply_filter_state <= stt_ApplyFilter_7;
+ else
+ apply_filter_state <= stt_ApplyFilter_7;
+ end if;
+ end if;
+
+ elsif (apply_filter_state = stt_ApplyFilter_7) then
+
+ CountMiddles <= CountMiddles + 1;
+ Fragment <= Fragment + 1;
+ apply_filter_state <= stt_ApplyFilter_4;
+ disp_frag_state <= stt_DispFrag4;
+
+
+ elsif (apply_filter_state = stt_ApplyFilter_8) then
+
+ -- ******************************************************
+ -- Last Column
+ -- ******************************************************
+ if (disp_frag_state = stt_DispFrag7) then
+ dpf_rd_addr <= Fragment((4+DPF_ADDR_WIDTH) downto 5);
+
+ dpf_position <= Fragment;
+ proc_state <= stt_CalcDispFragPos;
+ next_apply_filter_state <= stt_ApplyFilter_8;
+ next_disp_frag_state <= stt_DispFrag8;
+
+ else
+
+ if (disp_frag_value = '1') then
+ -- Filter Left edge always
+ rpi_position <= resize(Fragment, RPI_POS_WIDTH);
+ -- Horizontal Filter Parameter
+ DeltaHorizFilter <= x"E";
+
+ -- Calculate RPI_Value before continue
+ proc_state <= stt_Calc_RPI_Value;
+ calc_rpi_state <= stt_calc_rpi1;
+ -- Next state after RPI_Value calculation
+ next_proc_state <= stt_CallFilterHoriz;
+ next_apply_filter_state <= stt_ApplyFilter_9;
+ else
+ apply_filter_state <= stt_ApplyFilter_10;
+ end if;
+ end if;
+
+ elsif (apply_filter_state = stt_ApplyFilter_9) then
+
+ if (disp_frag_state = stt_DispFrag8) then
+ NextFragment := Fragment + LineFragments;
+ dpf_rd_addr <= NextFragment((4+DPF_ADDR_WIDTH) downto 5);
+
+ dpf_position <= Fragment + LineFragments;
+ proc_state <= stt_CalcDispFragPos;
+ next_apply_filter_state <= stt_ApplyFilter_9;
+ next_disp_frag_state <= stt_DispFrag9;
+
+ else
+ if (disp_frag_value = '0') then
+ -- Bottom done if next row set
+ rpi_position <= resize(Fragment + LineFragments, RPI_POS_WIDTH);
+
+ -- Calculate RPI_Value before continue
+ proc_state <= stt_Calc_RPI_Value;
+ calc_rpi_state <= stt_calc_rpi1;
+ -- Next state after RPI_Value calculation
+ next_proc_state <= stt_CallFilterVert;
+ next_apply_filter_state <= stt_ApplyFilter_10;
+ else
+ apply_filter_state <= stt_ApplyFilter_10;
+ end if;
+ end if;
+
+ elsif (apply_filter_state = stt_ApplyFilter_10) then
+
+ Fragment <= Fragment + 1;
+ CountMiddles <= '0' & x"00001";
+ apply_filter_state <= stt_ApplyFilter_11;
+ disp_frag_state <= stt_DispFrag9;
+
+ elsif (apply_filter_state = stt_ApplyFilter_11) then
+
+
+ -- ******************************************************
+ -- Middle Rows
+ -- ******************************************************
+ if (CountMiddles < FragsDown - 1) then
+ -- first column conditions
+ -- only do 2 prediction if fragment coded and on non intra or if
+ -- all fragments are intra */
+ if (disp_frag_state = stt_DispFrag9) then
+ dpf_rd_addr <= Fragment((4+DPF_ADDR_WIDTH) downto 5);
+
+ dpf_position <= Fragment;
+ proc_state <= stt_CalcDispFragPos;
+ next_apply_filter_state <= stt_ApplyFilter_11;
+ next_disp_frag_state <= stt_DispFrag10;
+ else
+ if (disp_frag_value = '1') then
+ -- TopRow is always done
+ rpi_position <= resize(Fragment, RPI_POS_WIDTH);
+
+ -- Calculate RPI_Value before continue
+ proc_state <= stt_Calc_RPI_Value;
+ calc_rpi_state <= stt_calc_rpi1;
+ -- Next state after RPI_Value calculation
+ next_proc_state <= stt_CallFilterVert;
+ next_apply_filter_state <= stt_ApplyFilter_12;
+ else
+ apply_filter_state <= stt_ApplyFilter_14; -- Do middle columns
+ end if;
+ end if;
+ else
+ apply_filter_state <= stt_ApplyFilter_24; -- End "Loop"
+ disp_frag_state <= stt_DispFrag17;
+ end if;
+
+
+ elsif (apply_filter_state = stt_ApplyFilter_12) then
+
+ -- Enter here only if (CountMiddles < FragsDown - 1) is true
+ -- and display_fragments(Fragment) is not zero
+ if (disp_frag_state = stt_DispFrag10) then
+ NextFragment := Fragment + 1;
+ dpf_rd_addr <= NextFragment((4+DPF_ADDR_WIDTH) downto 5);
+
+ dpf_position <= Fragment + 1;
+ proc_state <= stt_CalcDispFragPos;
+ next_apply_filter_state <= stt_ApplyFilter_12;
+ next_disp_frag_state <= stt_DispFrag11;
+ else
+
+ if (disp_frag_value = '0') then
+ -- Filter right hand border only if the block to the right is
+ -- not coded
+ rpi_position <= resize(Fragment, RPI_POS_WIDTH);
+ -- Horizontal Filter Parameter
+ DeltaHorizFilter <= x"6";
+
+ -- Calculate RPI_Value before continue
+ proc_state <= stt_Calc_RPI_Value;
+ calc_rpi_state <= stt_calc_rpi1;
+ -- Next state after RPI_Value calculation
+ next_proc_state <= stt_CallFilterHoriz;
+ next_apply_filter_state <= stt_ApplyFilter_13;
+ else
+ apply_filter_state <= stt_ApplyFilter_13;
+ end if;
+ end if;
+
+ elsif (apply_filter_state = stt_ApplyFilter_13) then
+
+ -- Enter here only if (CountMiddles < FragsDown - 1) is true
+ -- and display_fragments(Fragment) is not zero
+ if (disp_frag_state = stt_DispFrag11) then
+ NextFragment := Fragment + LineFragments;
+ dpf_rd_addr <= NextFragment((4+DPF_ADDR_WIDTH) downto 5);
+
+ dpf_position <= Fragment + LineFragments;
+ proc_state <= stt_CalcDispFragPos;
+ next_apply_filter_state <= stt_ApplyFilter_13;
+ next_disp_frag_state <= stt_DispFrag12;
+ else
+
+ if (disp_frag_value = '0') then
+ -- Bottom done if next row set
+ rpi_position <= resize(Fragment + LineFragments, RPI_POS_WIDTH);
+
+ -- Calculate RPI_Value before continue
+ proc_state <= stt_Calc_RPI_Value;
+ calc_rpi_state <= stt_calc_rpi1;
+ -- Next state after RPI_Value calculation
+ next_proc_state <= stt_CallFilterVert;
+ next_apply_filter_state <= stt_ApplyFilter_14;
+ else
+ apply_filter_state <= stt_ApplyFilter_14;
+ end if;
+ end if;
+
+
+ elsif (apply_filter_state = stt_ApplyFilter_14) then
+
+ Fragment <= Fragment + 1; -- Increment position
+ CountMidCols <= '0' & x"00001"; -- Initialize Counter
+ apply_filter_state <= stt_ApplyFilter_15;
+ disp_frag_state <= stt_DispFrag12;
+
+ elsif (apply_filter_state = stt_ApplyFilter_15) then
+
+ -- ******************************************************
+ -- Middle Columns inside Middle Rows
+ -- ******************************************************
+ if (CountMidCols < FragsAcross - 1) then
+
+ if (disp_frag_state = stt_DispFrag12) then
+ dpf_rd_addr <= Fragment((4+DPF_ADDR_WIDTH) downto 5);
+
+ dpf_position <= Fragment;
+ proc_state <= stt_CalcDispFragPos;
+ next_apply_filter_state <= stt_ApplyFilter_15;
+ next_disp_frag_state <= stt_DispFrag13;
+ else
+ if (disp_frag_value = '1') then
+ -- Filter Left edge always
+ rpi_position <= resize(Fragment, RPI_POS_WIDTH);
+ -- Horizontal Filter Parameter
+ DeltaHorizFilter <= x"E";
+
+ -- Calculate RPI_Value before continue
+ proc_state <= stt_Calc_RPI_Value;
+ calc_rpi_state <= stt_calc_rpi1;
+ -- Next state after RPI_Value calculation
+ next_proc_state <= stt_CallFilterHoriz;
+ next_apply_filter_state <= stt_ApplyFilter_16;
+ else
+ apply_filter_state <= stt_ApplyFilter_19; -- Increment CountMidCols
+ end if;
+ end if;
+ else
+
+ apply_filter_state <= stt_ApplyFilter_20; -- End "Loop" and
+ -- do Last Column
+ disp_frag_state <= stt_DispFrag15;
+ end if;
+
+
+ elsif (apply_filter_state = stt_ApplyFilter_16) then
+
+ -- Enter here only if (CountMidCols < FragsAcross - 1) is true
+ -- and display_fragments(Fragment) is not zero
+
+ -- TopRow is always done
+ rpi_position <= resize(Fragment, RPI_POS_WIDTH);
+
+ -- Calculate RPI_Value before continue
+ proc_state <= stt_Calc_RPI_Value;
+ calc_rpi_state <= stt_calc_rpi1;
+ -- Next state after RPI_Value calculation
+ next_proc_state <= stt_CallFilterVert;
+ next_apply_filter_state <= stt_ApplyFilter_17;
+
+
+ elsif (apply_filter_state = stt_ApplyFilter_17) then
+
+ -- Enter here only if (CountMidCols < FragsAcross - 1) is true
+ -- and display_fragments(Fragment) is not zero
+
+ -- Filter right hand border only if the block to the right
+ -- is not coded
+ if (disp_frag_state = stt_DispFrag13) then
+ NextFragment := Fragment + 1;
+ dpf_rd_addr <= NextFragment((4+DPF_ADDR_WIDTH) downto 5);
+
+ dpf_position <= Fragment + 1;
+ proc_state <= stt_CalcDispFragPos;
+ next_apply_filter_state <= stt_ApplyFilter_17;
+ next_disp_frag_state <= stt_DispFrag14;
+ else
+ if (disp_frag_value = '0') then
+ rpi_position <= resize(Fragment, RPI_POS_WIDTH);
+ -- Horizontal Filter Parameter
+ DeltaHorizFilter <= x"6";
+
+ -- Calculate RPI_Value before continue
+ proc_state <= stt_Calc_RPI_Value;
+ calc_rpi_state <= stt_calc_rpi1;
+ -- Next state after RPI_Value calculation
+ next_proc_state <= stt_CallFilterHoriz;
+ next_apply_filter_state <= stt_ApplyFilter_18;
+ else
+ apply_filter_state <= stt_ApplyFilter_18;
+ end if;
+ end if;
+
+ elsif (apply_filter_state = stt_ApplyFilter_18) then
+
+ -- Enter here only if (CountMidCols < FragsAcross - 1) is true
+ -- and display_fragments(Fragment) is not zero
+
+ -- Bottom done if next row set
+ if (disp_frag_state = stt_DispFrag14) then
+ NextFragment := Fragment + LineFragments;
+ dpf_rd_addr <= NextFragment((4+DPF_ADDR_WIDTH) downto 5);
+
+ dpf_position <= Fragment + LineFragments;
+ proc_state <= stt_CalcDispFragPos;
+ next_apply_filter_state <= stt_ApplyFilter_18;
+ next_disp_frag_state <= stt_DispFrag15;
+ else
+ if (disp_frag_value = '0') then
+ rpi_position <= resize(Fragment + LineFragments, RPI_POS_WIDTH);
+
+ -- Calculate RPI_Value before continue
+ proc_state <= stt_Calc_RPI_Value;
+ calc_rpi_state <= stt_calc_rpi1;
+ -- Next state after RPI_Value calculation
+ next_proc_state <= stt_CallFilterVert;
+ next_apply_filter_state <= stt_ApplyFilter_19;
+ else
+ apply_filter_state <= stt_ApplyFilter_19;
+ end if;
+ end if;
+
+ elsif (apply_filter_state = stt_ApplyFilter_19) then
+
+ CountMidCols <= CountMidCols + 1;
+ Fragment <= Fragment + 1;
+ apply_filter_state <= stt_ApplyFilter_15;
+ disp_frag_state <= stt_DispFrag12;
+
+ elsif (apply_filter_state = stt_ApplyFilter_20) then
+
+ -- Last Column
+
+ if (disp_frag_state = stt_DispFrag15) then
+ dpf_rd_addr <= Fragment((4+DPF_ADDR_WIDTH) downto 5);
+
+ dpf_position <= Fragment;
+ proc_state <= stt_CalcDispFragPos;
+ next_apply_filter_state <= stt_ApplyFilter_20;
+ next_disp_frag_state <= stt_DispFrag16;
+ else
+ if (disp_frag_value = '1') then
+ -- Filter Left edge always
+ rpi_position <= resize(Fragment, RPI_POS_WIDTH);
+ -- Horizontal Filter Parameter
+ DeltaHorizFilter <= x"E";
+
+ -- Calculate RPI_Value before continue
+ proc_state <= stt_Calc_RPI_Value;
+ calc_rpi_state <= stt_calc_rpi1;
+ -- Next state after RPI_Value calculation
+ next_proc_state <= stt_CallFilterHoriz;
+ next_apply_filter_state <= stt_ApplyFilter_21;
+ else
+ apply_filter_state <= stt_ApplyFilter_23;
+ end if;
+ end if;
+
+ elsif (apply_filter_state = stt_ApplyFilter_21) then
+
+ -- Enter here only if display_fragments(Fragment) not zero
+
+ -- TopRow is always done
+ rpi_position <= resize(Fragment, RPI_POS_WIDTH);
+
+ -- Calculate RPI_Value before continue
+ proc_state <= stt_Calc_RPI_Value;
+ calc_rpi_state <= stt_calc_rpi1;
+ -- Next state after RPI_Value calculation
+ next_proc_state <= stt_CallFilterVert;
+ next_apply_filter_state <= stt_ApplyFilter_22;
+
+
+ elsif (apply_filter_state = stt_ApplyFilter_22) then
+ -- Enter here only if display_fragments(Fragment) not zero
+
+
+ -- Bottom done if next row set
+ if (disp_frag_state = stt_DispFrag16) then
+ NextFragment := Fragment + LineFragments;
+ dpf_rd_addr <= NextFragment((4+DPF_ADDR_WIDTH) downto 5);
+
+ dpf_position <= Fragment + LineFragments;
+ proc_state <= stt_CalcDispFragPos;
+ next_apply_filter_state <= stt_ApplyFilter_22;
+ next_disp_frag_state <= stt_DispFrag17;
+ else
+
+ if (disp_frag_value = '0') then
+ rpi_position <= resize(Fragment + LineFragments, RPI_POS_WIDTH);
+
+ -- Calculate RPI_Value before continue
+ proc_state <= stt_Calc_RPI_Value;
+ calc_rpi_state <= stt_calc_rpi1;
+ -- Next state after RPI_Value calculation
+ next_proc_state <= stt_CallFilterVert;
+ next_apply_filter_state <= stt_ApplyFilter_23;
+ else
+ apply_filter_state <= stt_ApplyFilter_23;
+ end if;
+ end if;
+
+ elsif (apply_filter_state = stt_ApplyFilter_23) then
+
+ Fragment <= Fragment + 1;
+ CountMiddles <= CountMiddles + 1;
+ apply_filter_state <= stt_ApplyFilter_11;
+ disp_frag_state <= stt_DispFrag9;
+
+ elsif (apply_filter_state = stt_ApplyFilter_24) then
+
+ -- ******************************************************
+ -- Last Row
+ -- ******************************************************
+
+ -- First column conditions
+ -- Only do 2 prediction if fragment coded and on non intra or if
+ -- all fragments are intra */
+ if (disp_frag_state = stt_DispFrag17) then
+ dpf_rd_addr <= Fragment((4+DPF_ADDR_WIDTH) downto 5);
+ dpf_position <= Fragment;
+ proc_state <= stt_CalcDispFragPos;
+ next_apply_filter_state <= stt_ApplyFilter_24;
+ next_disp_frag_state <= stt_DispFrag18;
+ else
+
+ if (disp_frag_value = '1') then
+ -- TopRow is always done
+ rpi_position <= resize(Fragment, RPI_POS_WIDTH);
+
+ -- Calculate RPI_Value before continue
+ proc_state <= stt_Calc_RPI_Value;
+ calc_rpi_state <= stt_calc_rpi1;
+ -- Next state after RPI_Value calculation
+ next_proc_state <= stt_CallFilterVert;
+ next_apply_filter_state <= stt_ApplyFilter_25;
+ else
+ apply_filter_state <= stt_ApplyFilter_26;
+ end if;
+ end if;
+ elsif (apply_filter_state = stt_ApplyFilter_25) then
+
+ -- Enter here only if display_fragments(Fragment) is not zero
+
+ -- Filter right hand border only if the block to the right
+ -- is not coded
+ if (disp_frag_state = stt_DispFrag18) then
+ NextFragment := Fragment + 1;
+ dpf_rd_addr <= NextFragment((4+DPF_ADDR_WIDTH) downto 5);
+
+ dpf_position <= Fragment + 1;
+ proc_state <= stt_CalcDispFragPos;
+ next_apply_filter_state <= stt_ApplyFilter_25;
+ next_disp_frag_state <= stt_DispFrag19;
+ else
+
+ if (disp_frag_value = '0') then
+ rpi_position <= resize(Fragment, RPI_POS_WIDTH);
+ -- Horizontal Filter Parameter
+ DeltaHorizFilter <= x"6";
+
+ -- Calculate RPI_Value before continue
+ proc_state <= stt_Calc_RPI_Value;
+ calc_rpi_state <= stt_calc_rpi1;
+ -- Next state after RPI_Value calculation
+ next_proc_state <= stt_CallFilterHoriz;
+ next_apply_filter_state <= stt_ApplyFilter_26;
+ else
+ apply_filter_state <= stt_ApplyFilter_26;
+ end if;
+ end if;
+
+ elsif (apply_filter_state = stt_ApplyFilter_26) then
+
+ Fragment <= Fragment + 1;
+ CountMiddles <= '0' & x"00001";
+ apply_filter_state <= stt_ApplyFilter_27;
+ disp_frag_state <= stt_DispFrag19;
+
+ elsif (apply_filter_state = stt_ApplyFilter_27) then
+
+ if (CountMiddles < FragsAcross - 1) then
+ -- Middle Columns
+ if (disp_frag_state = stt_DispFrag19) then
+ dpf_rd_addr <= Fragment((4+DPF_ADDR_WIDTH) downto 5);
+
+ dpf_position <= Fragment;
+ proc_state <= stt_CalcDispFragPos;
+ next_apply_filter_state <= stt_ApplyFilter_27;
+ next_disp_frag_state <= stt_DispFrag20;
+ else
+ if (disp_frag_value = '1') then
+ -- Filter Left edge always
+ rpi_position <= resize(Fragment, RPI_POS_WIDTH);
+ -- Horizontal Filter Parameter
+ DeltaHorizFilter <= x"E";
+
+ -- Calculate RPI_Value before continue
+ proc_state <= stt_Calc_RPI_Value;
+ calc_rpi_state <= stt_calc_rpi1;
+ -- Next state after RPI_Value calculation
+ next_proc_state <= stt_CallFilterHoriz;
+ next_apply_filter_state <= stt_ApplyFilter_28;
+ else
+ apply_filter_state <= stt_ApplyFilter_30; -- Increment CountMiddles
+ end if;
+ end if;
+ else
+ apply_filter_state <= stt_ApplyFilter_31; -- End "Loop"
+ disp_frag_state <= stt_DispFrag21;
+ end if;
+
+ elsif (apply_filter_state = stt_ApplyFilter_28) then
+
+ -- Enter here only if display_fragments(Fragment) is not zero
+
+ -- TopRow is always done
+ rpi_position <= resize(Fragment, RPI_POS_WIDTH);
+
+ -- Calculate RPI_Value before continue
+ proc_state <= stt_Calc_RPI_Value;
+ calc_rpi_state <= stt_calc_rpi1;
+ -- Next state after RPI_Value calculation
+ next_proc_state <= stt_CallFilterVert;
+ next_apply_filter_state <= stt_ApplyFilter_29;
+
+ elsif (apply_filter_state = stt_ApplyFilter_29) then
+
+ -- Enter here only if (CountMidCols < FragsAcross - 1) is true
+ -- and display_fragments(Fragment) is not zero
+
+ -- Filter right hand border only if the block to the right
+ -- is not coded
+ if (disp_frag_state = stt_DispFrag20) then
+ NextFragment := Fragment + 1;
+ dpf_rd_addr <= NextFragment((4+DPF_ADDR_WIDTH) downto 5);
+
+ dpf_position <= Fragment + 1;
+ proc_state <= stt_CalcDispFragPos;
+ next_apply_filter_state <= stt_ApplyFilter_29;
+ next_disp_frag_state <= stt_DispFrag21;
+ else
+ if (disp_frag_value = '0') then
+ rpi_position <= resize(Fragment, RPI_POS_WIDTH);
+ --Horizontal Filter Parameter
+ DeltaHorizFilter <= x"6";
+
+ -- Calculate RPI_Value before continue
+ proc_state <= stt_Calc_RPI_Value;
+ calc_rpi_state <= stt_calc_rpi1;
+ -- Next state after RPI_Value calculation
+ next_proc_state <= stt_CallFilterHoriz;
+ next_apply_filter_state <= stt_ApplyFilter_30;
+ else
+ apply_filter_state <= stt_ApplyFilter_30;
+ end if;
+ end if;
+
+
+ elsif (apply_filter_state = stt_ApplyFilter_30) then
+
+ CountMiddles <= CountMiddles +1;
+ Fragment <= Fragment + 1;
+ apply_filter_state <= stt_ApplyFilter_27;
+ disp_frag_state <= stt_DispFrag19;
+
+ elsif (apply_filter_state = stt_ApplyFilter_31) then
+
+ -- ******************************************************
+ -- Last Column
+ -- ******************************************************
+ if (disp_frag_state = stt_DispFrag21) then
+ dpf_rd_addr <= Fragment((4+DPF_ADDR_WIDTH) downto 5);
+
+ dpf_position <= Fragment;
+ proc_state <= stt_CalcDispFragPos;
+ next_apply_filter_state <= stt_ApplyFilter_31;
+ next_disp_frag_state <= stt_DispFrag22;
+ else
+
+ if (disp_frag_value = '1') then
+ -- Filter Left edge always
+ rpi_position <= resize(Fragment, RPI_POS_WIDTH);
+ -- Horizontal Filter Parameter
+ DeltaHorizFilter <= x"E";
+
+ -- Calculate RPI_Value before continue
+ proc_state <= stt_Calc_RPI_Value;
+ calc_rpi_state <= stt_calc_rpi1;
+ -- Next state after RPI_Value calculation
+ next_proc_state <= stt_CallFilterHoriz;
+ next_apply_filter_state <= stt_ApplyFilter_32;
+ else
+ apply_filter_state <= stt_ApplyFilter_33;
+ end if;
+ end if;
+
+ elsif (apply_filter_state = stt_ApplyFilter_32) then
+
+ -- Enter here only if display_fragments(Fragment) is not zero
+
+ -- TopRow is always done
+ rpi_position <= resize(Fragment, RPI_POS_WIDTH);
+
+ -- Calculate RPI_Value before continue
+ proc_state <= stt_Calc_RPI_Value;
+ calc_rpi_state <= stt_calc_rpi1;
+ -- Next state after RPI_Value calculation
+ next_proc_state <= stt_CallFilterVert;
+ next_apply_filter_state <= stt_ApplyFilter_33;
+
+
+ --elsif (apply_filter_state = stt_ApplyFilter_33) then
+ else
+
+ proc_state <= stt_SelectColor;
+ apply_filter_state <= stt_ApplyFilter_1;
+ next_disp_frag_state <= stt_DispFrag1;
+ end if;
+ end procedure ApplyFilter;
+
+
+ procedure Proc is
+ begin
+ case proc_state is
+ when stt_ReadMemory => ReadMemory;
+ when stt_WriteMemory => WriteMemory;
+ when stt_Calc_RPI_Value => CalcRPIValue;
+ when stt_FindQIndex => FindQIndex;
+ when stt_CalcFLimit => CalcFLimit;
+ when stt_SelectColor => SelectColor;
+ when stt_ApplyFilter => ApplyFilter;
+ when stt_CalcDispFragPos => CalcDispFragPos;
+ when stt_CallFilterHoriz => CallFilterHoriz;
+ when stt_CalcFilterHoriz => CalcFilterHoriz;
+ when stt_CallFilterVert => CallFilterVert;
+ -- when stt_CalcFilterVert = other
+ when others => CalcFilterVert;
+ end case;
+ end procedure Proc;
+
+ begin -- process
+
+
+ if (clk'event and clk = '1') then
+ if (Reset_n = '0') then
+ state <= readIn;
+ read_state <= stt_32bitsData;
+ proc_state <= stt_FindQIndex;
+ apply_filter_state <= stt_ApplyFilter_1;
+ calc_filter_state <= stt_CalcFilter1;
+ calc_rpi_state <= stt_calc_rpi1;
+
+ s_in_request <= '0';
+ s_in_sem_request <= '0';
+ count <= 0;
+ pli <= "00";
+ s_out_sem_valid <= '0';
+ s_out_done <= '0';
+
+ mem_rd_valid <= '0';
+
+ CountFilter <= "000";
+ CountColumns <= "000";
+ pixelPtr <= "00000000000000000000";
+
+ rpi_position <= '0' & x"0000";
+ HFragments <= x"11";
+ VFragments <= x"00";
+ YStride <= x"000";
+ UVStride <= "000" & x"00";
+ YPlaneFragments <= '0' & x"00000";
+ UVPlaneFragments <= "000" & x"0000";
+ ReconYDataOffset <= x"00000";
+ ReconUDataOffset <= x"00000";
+ ReconVDataOffset <= x"00000";
+
+-- FLimits signals initialiation
+ fbv_position <= "000000000";
+ FLimit <= "000000000";
+
+
+-- QThreshTable signal memories
+ qtt_wr_e <= '0';
+ qtt_wr_addr <= "000000";
+ qtt_wr_data <= "00000000000000000000000000000000";
+ qtt_rd_addr <= "000000";
+
+
+--display_fragments signal memories
+ dpf_wr_e <= '0';
+ dpf_wr_addr <= to_unsigned(0, DPF_ADDR_WIDTH);
+ dpf_wr_data <= "00000000000000000000000000000000";
+ dpf_rd_addr <= to_unsigned(0, DPF_ADDR_WIDTH);
+ else
+ if (Enable = '1') then
+ case state is
+ when readIn => ReadIn;
+ when proc => Proc;
+ when others => ReadIn; state <= readIn;
+ end case;
+ end if;
+ end if;
+ end if;
+ end process;
+
+
+end a_LoopFilter;
Added: trunk/theora-fpga/reconrefframes/reconframes.vhd
===================================================================
--- trunk/theora-fpga/reconrefframes/reconframes.vhd (rev 0)
+++ trunk/theora-fpga/reconrefframes/reconframes.vhd 2007-09-15 23:10:55 UTC (rev 13820)
@@ -0,0 +1,327 @@
+
+library std;
+library ieee;
+library work;
+
+use ieee.std_logic_1164.all;
+use ieee.numeric_std.all;
+use work.all;
+
+entity ReconFrames is
+ port (
+ Clk,
+ Reset_n : in std_logic;
+ Enable : in std_logic;
+
+ in_request : out std_logic;
+ in_valid : in std_logic;
+ in_data : in signed(31 downto 0);
+
+ in_sem_request : out std_logic;
+ in_sem_valid : in std_logic;
+ in_sem_addr : out unsigned(19 downto 0);
+ in_sem_data : in signed(31 downto 0);
+
+ out_sem_requested : in std_logic;
+ out_sem_valid : out std_logic;
+ out_sem_addr : out unsigned(19 downto 0);
+ out_sem_data : out signed(31 downto 0);
+
+ out_done : out std_logic;
+ out_eb_done : out std_logic);
+end ReconFrames;
+
+architecture a_ReconFrames of ReconFrames is
+ component ExpandBlock
+ port (
+ Clk,
+ Reset_n : in std_logic;
+ Enable : in std_logic;
+
+ in_request : out std_logic;
+ in_valid : in std_logic;
+ in_data : in signed(31 downto 0);
+
+ in_sem_request : out std_logic;
+ in_sem_valid : in std_logic;
+ in_sem_addr : out unsigned(19 downto 0);
+ in_sem_data : in signed(31 downto 0);
+
+ out_sem_requested : in std_logic;
+ out_sem_valid : out std_logic;
+ out_sem_addr : out unsigned(19 downto 0);
+ out_sem_data : out signed(31 downto 0);
+
+ in_newframe : in std_logic;
+ out_done : out std_logic);
+ end component;
+
+ constant LG_MAX_SIZE : natural := 10;
+ constant MEM_ADDR_WIDTH : natural := 20;
+-------------------------------------------------------------------------------
+-- ExpandBlock's signals
+-------------------------------------------------------------------------------
+ signal out_eb_request : std_logic;
+ signal out_eb_valid : std_logic := '0';
+ signal out_eb_data : signed(31 downto 0);
+
+ signal in_eb_DtBuf_request : std_logic;
+ signal in_eb_DtBuf_valid : std_logic;
+ signal in_eb_DtBuf_addr : unsigned(MEM_ADDR_WIDTH-1 downto 0);
+ signal in_eb_DtBuf_data : signed(31 downto 0);
+
+ signal out_eb_DtBuf_request : std_logic;
+ signal out_eb_DtBuf_valid : std_logic;
+ signal out_eb_DtBuf_addr : unsigned(19 downto 0);
+ signal out_eb_DtBuf_data : signed(31 downto 0);
+
+ signal eb_done : std_logic;
+ signal eb_enable : std_logic;
+
+-------------------------------------------------------------------------------
+-- Internal signals
+-------------------------------------------------------------------------------
+ signal QuantDispFrags : unsigned(LG_MAX_SIZE*2-1 downto 0);
+
+ signal count : integer;
+ signal countExpand : unsigned(LG_MAX_SIZE*2-1 downto 0);
+ signal s_in_request : std_logic;
+
+ signal s_out_done : std_logic;
+-------------------------------------------------------------------------------
+-- States and sub-states
+-------------------------------------------------------------------------------
+ type state_t is (stt_Read, stt_Proc);
+ signal state : state_t;
+
+ type read_state_t is (stt_read_HFragments,
+ stt_read_YPlaneFragments,
+ stt_read_YStride,
+ stt_read_UVPlaneFragments,
+ stt_read_UVStride,
+ stt_read_VFragments,
+ stt_read_ReconYDataOffset,
+ stt_read_ReconUDataOffset,
+ stt_read_ReconVDataOffset,
+ stt_read_QuantDispFrags,
+ stt_read_Others);
+ signal read_state : read_state_t;
+
+begin -- a_ReconFrames
+
+ expandblock0: expandblock
+ port map(
+ Clk => clk,
+ Reset_n => reset_n,
+ Enable => eb_enable,
+
+ in_request => out_eb_request,
+ in_valid => out_eb_valid,
+ in_data => out_eb_data,
+
+ in_sem_request => out_eb_DtBuf_request,
+ in_sem_valid => out_eb_DtBuf_valid,
+ in_sem_addr => out_eb_DtBuf_addr,
+ in_sem_data => out_eb_DtBuf_data,
+
+ out_sem_requested => in_eb_DtBuf_request,
+ out_sem_valid => in_eb_DtBuf_valid,
+ out_sem_addr => in_eb_DtBuf_addr,
+ out_sem_data => in_eb_DtBuf_data,
+
+ in_newframe => s_out_done, -- Avoid latch
+ out_done => eb_done
+ );
+
+ in_sem_request <= out_eb_DtBuf_request;
+ out_eb_DtBuf_valid <= in_sem_valid;
+ in_sem_addr <= out_eb_DtBuf_addr;
+ out_eb_DtBuf_data <= in_sem_data;
+
+ in_eb_DtBuf_request <= out_sem_requested;
+ out_sem_valid <= in_eb_DtBuf_valid;
+ out_sem_addr <= in_eb_DtBuf_addr;
+ out_sem_data <= in_eb_DtBuf_data;
+ out_eb_data <= in_data;
+ in_request <= s_in_request;
+
+
+ -----------------------------------------------------------------------------
+ -- Put the s_out_done signal on the output port
+ -----------------------------------------------------------------------------
+ out_done <= s_out_done;
+
+ -----------------------------------------------------------------------------
+ -- Switch the in_request
+ -----------------------------------------------------------------------------
+ process(read_state, out_eb_request, in_valid, Enable)
+ begin
+ s_in_request <= out_eb_request;
+ out_eb_valid <= in_valid;
+ if (read_state = stt_read_QuantDispFrags) then
+ s_in_request <= '1';
+ out_eb_valid <= '0';
+ end if;
+ if (Enable = '0') then
+ s_in_request <= '0';
+ out_eb_valid <= '0';
+ end if;
+ end process;
+
+
+ process(clk)
+ begin
+
+ if (clk'event and clk = '1') then
+ if (Reset_n = '0') then
+ s_out_done <= '0';
+ count <= 0;
+ countExpand <= to_unsigned(0, LG_MAX_SIZE*2);
+ eb_enable <= '1';
+ QuantDispFrags <= to_unsigned(0, LG_MAX_SIZE*2);
+ read_state <= stt_read_HFragments;
+ else
+ s_out_done <= '0';
+ out_eb_done <= '0';
+ if (Enable = '1') then
+ case state is
+
+ when stt_Read =>
+
+-- assert false report "read_state = "&read_state_t'image(read_state) severity note;
+
+ if (s_in_request = '1' and in_valid = '1') then
+-- assert false report "rf.in_data = "&integer'image(to_integer(in_data)) severity note;
+ count <= count + 1;
+ case read_state is
+ when stt_read_HFragments =>
+ -- Count = 0
+ read_state <= stt_read_YPlaneFragments;
+
+ when stt_read_YPlaneFragments =>
+ -- Count = 1
+ read_state <= stt_read_YStride;
+
+ when stt_read_YStride =>
+ -- Count = 2
+ read_state <= stt_read_UVPlaneFragments;
+
+ when stt_read_UVPlaneFragments =>
+ -- Count = 3
+ read_state <= stt_read_UVStride;
+
+ when stt_read_UVStride =>
+ -- Count = 4
+ read_state <= stt_read_VFragments;
+
+ when stt_read_VFragments =>
+ -- Count = 5
+ read_state <= stt_read_ReconYDataOffset;
+
+ when stt_read_ReconYDataOffset =>
+ -- Count = 6
+ read_state <= stt_read_ReconUDataOffset;
+
+ when stt_read_ReconUDataOffset =>
+ -- Count = 7
+ read_state <= stt_read_ReconVDataOffset;
+
+ when stt_read_ReconVDataOffset =>
+ -- Count = 8
+ read_state <= stt_read_QuantDispFrags;
+
+ when stt_read_QuantDispFrags =>
+ -- Count = 9
+ -- One per Frame
+ -- QuantDispFrags is equal to pbi->CodedBlockIndex of the software
+ read_state <= stt_read_Others;
+ QuantDispFrags <= unsigned(in_data(LG_MAX_SIZE*2-1 downto 0));
+
+ when others =>
+ -----------------------------------------------------------
+ -- Forward to ExpandBlock the parameters below that are
+ -- received only one time pre frame
+ -----------------------------------------------------------
+ -- For Count = 10 to Count = 73 receive the
+ -- pbi->dequant_Y_coeffs matrix
+ -----------------------------------------------------------
+ -- For Count = 74 to Count = 137 receive the
+ -- pbi->dequant_U_coeffs matrix
+ -----------------------------------------------------------
+ -- For Count = 138 to Count = 201 receive the
+ -- pbi->dequant_V_coeffs matrix
+ -----------------------------------------------------------
+ -- For Count = 202 to Count = 265 receive the
+ -- dequant_InterY_coeffs matrix
+ -----------------------------------------------------------
+ -- For Count = 266 to Count = 329 receive the
+ -- dequant_InterU_coeffs matrix
+ -----------------------------------------------------------
+ -- For Count = 330 to Count = 393 receive the
+ -- dequant_InterV_coeffs matrix
+ -----------------------------------------------------------
+ -- If Count = 394 receive the pbi->FrameType value
+ -----------------------------------------------------------
+ -- If Count = 395 receive the
+ -- Offset of the GoldenFrame Buffer
+ -----------------------------------------------------------
+ -- If Count = 396 receive the
+ -- Offset of the LastFrame Buffer
+ -----------------------------------------------------------
+ -- If Count = 397 receive the
+ -- Offset of the ThisFrame Buffer
+ -----------------------------------------------------------
+
+ -----------------------------------------------------------
+ -- Forward to ExpandBlock the parameters below that are
+ -- received for all fragments
+ -----------------------------------------------------------
+ -- For Count = 398 to Count = 461 receive the
+ -- pbi->QFragData(number of the fragment to be expanded)
+ -- matrix
+ ------------------------------------------------------------
+ -- If Count = 462 receive the
+ -- pbi->FragCodingMethod(number of the fragment to be expanded)
+ -- value
+ -----------------------------------------------------------
+ -- If Count = 463 receive the
+ -- pbi->FragCoefEOB(number of the fragment to be expanded)
+ -- value
+ -----------------------------------------------------------
+ -- If Count = 464 receive the
+ -- (pbi->FragMVect(number of the fragment to be expanded)).x
+ -- value
+ -----------------------------------------------------------
+ -- If Count = 465 receive the
+ -- (pbi->FragMVect(number of the fragment to be expanded)).y
+ -- value
+ -----------------------------------------------------------
+ -- If Count = 466 receive the
+ -- (number of fragment to be expanded)
+ -----------------------------------------------------------
+ if (count = 466) then
+ state <= stt_Proc;
+ count <= 398;
+ end if;
+ end case;
+ end if;
+
+ when stt_Proc =>
+ if (eb_done = '1') then
+ out_eb_done <= '1';
+ countExpand <= countExpand + 1;
+ state <= stt_Read;
+ if (countExpand = TO_INTEGER(QuantDispFrags-1)) then
+ count <= 9;
+ read_state <= stt_read_QuantDispFrags;
+ countExpand <= to_unsigned(0, LG_MAX_SIZE*2);
+ s_out_done <= '1';
+ end if;
+ end if;
+
+ end case;
+ end if;
+ end if;
+ end if;
+ end process;
+end a_ReconFrames;
Added: trunk/theora-fpga/reconrefframes/reconpixelindex.vhd
===================================================================
--- trunk/theora-fpga/reconrefframes/reconpixelindex.vhd (rev 0)
+++ trunk/theora-fpga/reconrefframes/reconpixelindex.vhd 2007-09-15 23:10:55 UTC (rev 13820)
@@ -0,0 +1,256 @@
+library std;
+library ieee;
+use ieee.std_logic_1164.all;
+use ieee.numeric_std.all;
+
+entity ReconPixelIndex is
+ port (Clk,
+ Reset_n : in std_logic;
+
+ in_request : out std_logic;
+ in_valid : in std_logic;
+ in_data : in signed(31 downto 0);
+
+ out_requested : in std_logic;
+ out_valid : out std_logic;
+ out_data : out signed(31 downto 0)
+ );
+end entity ReconPixelIndex;
+
+architecture a_ReconPixelIndex of ReconPixelIndex is
+ component Divider
+ generic (
+ WIDTH : positive := 32);
+ port (Clk,
+ Reset_n : in std_logic;
+
+ in_request : out std_logic;
+ in_valid : in std_logic;
+ dividend : in unsigned(WIDTH-1 downto 0);
+ divisor : in unsigned(WIDTH-1 downto 0);
+
+ out_requested : in std_logic;
+ out_valid : out std_logic;
+ quotient : out unsigned(WIDTH-1 downto 0);
+ remainder : out unsigned(WIDTH-1 downto 0));
+ end component;
+
+
+
+ constant VFRAGPIXELS : unsigned(3 downto 0) := x"8";
+ constant HFRAGPIXELS : unsigned(3 downto 0) := x"8";
+
+ constant RPI_POS_WIDTH : positive := 17;
+ constant HV_FRAG_WIDTH : positive := 8;
+ constant Y_STRIDE_WIDTH : positive := 12;
+ constant UV_STRIDE_WIDTH : positive := 11;
+ constant Y_PL_FRAG_WIDTH : positive := 21;
+ constant UV_PL_FRAG_WIDTH : positive := 19;
+ constant RECON_Y_DATA_OFS_WIDTH : positive := 20;
+ constant RECON_UV_DATA_OFS_WIDTH : positive := 20;
+
+ -- States machines
+ type state_t is (stt_readIn, stt_Proc, stt_WriteOut);
+ signal state : state_t;
+
+ type read_state_t is (stt_read_HFragments,
+ stt_read_YPlaneFragments,
+ stt_read_YStride,
+ stt_read_UVPlaneFragments,
+ stt_read_UVStride,
+ stt_read_VFragments,
+ stt_read_ReconYDataOffset,
+ stt_read_ReconUDataOffset,
+ stt_read_ReconVDataOffset,
+ stt_read_Position);
+ signal read_state : read_state_t;
+
+ type proc_state_t is (stt_proc_1, stt_proc_2);
+ signal proc_state : proc_state_t;
+
+ -- Signals that will be received
+ signal rpi_position : unsigned(RPI_POS_WIDTH-1 downto 0);
+ signal HFragments : unsigned(HV_FRAG_WIDTH-1 downto 0);
+ signal VFragments : unsigned(HV_FRAG_WIDTH-1 downto 0);
+ signal YStride : unsigned(Y_STRIDE_WIDTH-1 downto 0);
+ signal UVStride : unsigned(UV_STRIDE_WIDTH-1 downto 0);
+ signal YPlaneFragments : unsigned(Y_PL_FRAG_WIDTH-1 downto 0);
+ signal UVPlaneFragments : unsigned(UV_PL_FRAG_WIDTH-1 downto 0);
+ signal ReconYDataOffset : unsigned(RECON_Y_DATA_OFS_WIDTH-1 downto 0);
+ signal ReconUDataOffset : unsigned(RECON_UV_DATA_OFS_WIDTH-1 downto 0);
+ signal ReconVDataOffset : unsigned(RECON_UV_DATA_OFS_WIDTH-1 downto 0);
+
+ -- Calculated value
+ signal rpi_value : signed(31 downto 0);
+
+ -- Handshake signals
+ signal s_in_request : std_logic;
+ signal s_out_valid : std_logic;
+
+ -- Divider signals
+ signal s_divider_in_request : std_logic;
+ signal s_divider_in_valid : std_logic;
+ signal s_divider_dividend : unsigned(RPI_POS_WIDTH-1 downto 0);
+ signal s_divider_divisor : unsigned(RPI_POS_WIDTH-1 downto 0);
+ signal s_divider_out_requested : std_logic;
+ signal s_divider_out_valid : std_logic;
+ signal s_divider_quotient : unsigned(RPI_POS_WIDTH-1 downto 0);
+ signal s_divider_remainder : unsigned(RPI_POS_WIDTH-1 downto 0);
+
+
+begin -- a_ReconPixelIndex
+
+ divider0: divider
+ generic map (WIDTH => RPI_POS_WIDTH)
+ port map(Clk => Clk,
+ Reset_n => Reset_n,
+ in_request => s_divider_out_requested,
+ in_valid => s_divider_out_valid,
+ dividend => s_divider_dividend,
+ divisor => s_divider_divisor,
+ out_requested => s_divider_in_request,
+ out_valid => s_divider_in_valid,
+ quotient => s_divider_quotient,
+ remainder => s_divider_remainder);
+
+ in_request <= s_in_request;
+ out_valid <= s_out_valid;
+ process(clk)
+
+ procedure ReadIn is
+ begin
+ s_in_request <= '1';
+ s_out_valid <= '0';
+
+ if (s_in_request = '1' and in_valid = '1') then
+
+ case read_state is
+ when stt_read_HFragments =>
+ read_state <= stt_read_YPlaneFragments;
+ HFragments <= unsigned(in_data(HV_FRAG_WIDTH-1 downto 0));
+
+ when stt_read_YPlaneFragments =>
+ read_state <= stt_read_YStride;
+ YPlaneFragments <= unsigned(in_data(Y_PL_FRAG_WIDTH-1 downto 0));
+
+ when stt_read_YStride =>
+ read_state <= stt_read_UVPlaneFragments;
+ YStride <= unsigned(in_data(Y_STRIDE_WIDTH-1 downto 0));
+
+ when stt_read_UVPlaneFragments =>
+ read_state <= stt_read_UVStride;
+ UVPlaneFragments <= unsigned(in_data(UV_PL_FRAG_WIDTH-1 downto 0));
+
+ when stt_read_UVStride =>
+ read_state <= stt_read_VFragments;
+ UVStride <= unsigned(in_data(UV_STRIDE_WIDTH-1 downto 0));
+
+ when stt_read_VFragments =>
+ read_state <= stt_read_ReconYDataOffset;
+ VFragments <= unsigned(in_data(HV_FRAG_WIDTH-1 downto 0));
+
+ when stt_read_ReconYDataOffset =>
+ read_state <= stt_read_ReconUDataOffset;
+ ReconYDataOffset <= unsigned(in_data(RECON_Y_DATA_OFS_WIDTH-1 downto 0));
+
+ when stt_read_ReconUDataOffset =>
+ read_state <= stt_read_ReconVDataOffset;
+ ReconUDataOffset <= unsigned(in_data(RECON_UV_DATA_OFS_WIDTH-1 downto 0));
+
+ when stt_read_ReconVDataOffset =>
+ read_state <= stt_read_Position;
+ ReconVDataOffset <= unsigned(in_data(RECON_UV_DATA_OFS_WIDTH-1 downto 0));
+
+ when others => -- stt_read_Position
+ read_state <= stt_read_Position;
+ state <= stt_Proc;
+ proc_state <= stt_proc_1;
+ rpi_position <= unsigned(in_data(RPI_POS_WIDTH-1 downto 0));
+ s_in_request <= '0';
+ end case;
+ end if;
+ end procedure ReadIn;
+
+ procedure Proc is
+ begin
+ s_divider_out_valid <= '0';
+ s_divider_in_request <= '0';
+ case proc_state is
+ when stt_proc_1 =>
+ if (s_divider_out_requested = '1') then
+ s_divider_out_valid <= '1';
+ s_divider_in_request <= '1';
+ proc_state <= stt_proc_2;
+ if (rpi_position < YPlaneFragments) then
+ s_divider_dividend <= rpi_position;
+ s_divider_divisor <= resize(HFragments, RPI_POS_WIDTH);
+ rpi_value <= resize(signed('0' & ReconYDataOffset), 32);
+
+ elsif (rpi_position < YPlaneFragments + UVPlaneFragments) then
+ s_divider_dividend <= resize(rpi_position - YPlaneFragments, RPI_POS_WIDTH);
+ s_divider_divisor <= resize(SHIFT_RIGHT(HFragments, 1), RPI_POS_WIDTH);
+ rpi_value <= resize(signed('0' & ReconUDataOffset) , 32);
+ else
+ s_divider_dividend <= resize(rpi_position - (YPlaneFragments + UVPlaneFragments), RPI_POS_WIDTH);
+ s_divider_divisor <= resize(SHIFT_RIGHT(HFragments, 1), RPI_POS_WIDTH);
+ rpi_value <= resize(signed('0' & ReconVDataOffset), 32);
+ end if;
+ end if;
+
+
+
+ when others =>
+ s_divider_in_request <= '1';
+ if (s_divider_in_request = '1' and s_divider_in_valid = '1') then
+ s_divider_in_request <= '0';
+ proc_state <= stt_proc_1;
+ state <= stt_WriteOut;
+
+ if (rpi_position < YPlaneFragments) then
+ rpi_value <= rpi_value +
+ resize(signed('0' &
+ (s_divider_quotient * VFRAGPIXELS * YStride +
+ s_divider_remainder * HFRAGPIXELS)), 32);
+ else
+ rpi_value <= rpi_value +
+ resize(signed('0' &
+ (s_divider_quotient * VFRAGPIXELS * UVStride +
+ s_divider_remainder * HFRAGPIXELS)), 32);
+
+ end if;
+
+ end if;
+ end case;
+ end procedure Proc;
+
+ procedure WriteOut is
+ begin
+ s_out_valid <= '1';
+ out_data <= rpi_value;
+ if (out_requested = '1') then
+ state <= stt_readIn;
+ end if;
+ end procedure WriteOut;
+
+
+
+ begin
+ if (clk'event and clk = '1') then
+ if (Reset_n = '0') then
+ state <= stt_readIn;
+ read_state <= stt_read_HFragments;
+ proc_state <= stt_proc_1;
+ s_in_request <= '0';
+ s_out_valid <= '0';
+ else
+ case state is
+ when stt_readIn => ReadIn;
+ when stt_Proc => Proc;
+ when others => WriteOut;
+ end case;
+ end if;
+ end if;
+
+ end process;
+
+end a_ReconPixelIndex;
Added: trunk/theora-fpga/reconrefframes/reconrefframes.vhd
===================================================================
--- trunk/theora-fpga/reconrefframes/reconrefframes.vhd (rev 0)
+++ trunk/theora-fpga/reconrefframes/reconrefframes.vhd 2007-09-15 23:10:55 UTC (rev 13820)
@@ -0,0 +1,1054 @@
+library std;
+library ieee;
+library work;
+
+use ieee.std_logic_1164.all;
+use ieee.numeric_std.all;
+use work.all;
+
+
+entity ReconRefFrames is
+ port (Clk,
+ Reset_n : in std_logic;
+
+ in_request : out std_logic;
+ in_valid : in std_logic;
+ in_data : in signed(31 downto 0);
+
+ out_requested : in std_logic;
+ out_valid : out std_logic;
+ out_data : out signed(31 downto 0)
+ );
+end entity ReconRefFrames;
+
+architecture a_ReconRefFrames of ReconRefFrames is
+ component ReconFrames
+ port (
+ Clk,
+ Reset_n : in std_logic;
+ Enable : in std_logic;
+
+ in_request : out std_logic;
+ in_valid : in std_logic;
+ in_data : in signed(31 downto 0);
+
+ in_sem_request : out std_logic;
+ in_sem_valid : in std_logic;
+ in_sem_addr : out unsigned(19 downto 0);
+ in_sem_data : in signed(31 downto 0);
+
+ out_sem_requested : in std_logic;
+ out_sem_valid : out std_logic;
+ out_sem_addr : out unsigned(19 downto 0);
+ out_sem_data : out signed(31 downto 0);
+
+ out_done : out std_logic;
+ out_eb_done : out std_logic);
+ end component;
+
+
+ component LoopFilter
+ port (Clk,
+ Reset_n : in std_logic;
+ Enable : in std_logic;
+
+ in_request : out std_logic;
+ in_valid : in std_logic;
+ in_data : in signed(31 downto 0);
+
+ in_sem_request : out std_logic;
+ in_sem_valid : in std_logic;
+ in_sem_addr : out unsigned(19 downto 0);
+ in_sem_data : in signed(31 downto 0);
+
+ out_sem_requested : in std_logic;
+ out_sem_valid : out std_logic;
+ out_sem_addr : out unsigned(19 downto 0);
+ out_sem_data : out signed(31 downto 0);
+
+ out_done : out std_logic
+ );
+ end component;
+
+ component CopyRecon
+ port (Clk,
+ Reset_n : in std_logic;
+ Enable : in std_logic;
+
+ in_request : out std_logic;
+ in_valid : in std_logic;
+ in_data : in signed(31 downto 0);
+
+ in_sem_request : out std_logic;
+ in_sem_valid : in std_logic;
+ in_sem_addr : out unsigned(19 downto 0);
+ in_sem_data : in signed(31 downto 0);
+
+ out_sem_requested : in std_logic;
+ out_sem_valid : out std_logic;
+ out_sem_addr : out unsigned(19 downto 0);
+ out_sem_data : out signed(31 downto 0);
+
+ out_done : out std_logic
+ );
+ end component;
+
+
+ component UpdateUMV
+ port (Clk,
+ Reset_n : in std_logic;
+ Enable : in std_logic;
+
+ in_request : out std_logic;
+ in_valid : in std_logic;
+ in_data : in signed(31 downto 0);
+
+ in_sem_request : out std_logic;
+ in_sem_valid : in std_logic;
+ in_sem_addr : out unsigned(19 downto 0);
+ in_sem_data : in signed(31 downto 0);
+
+ out_sem_requested : in std_logic;
+ out_sem_valid : out std_logic;
+ out_sem_addr : out unsigned(19 downto 0);
+ out_sem_data : out signed(31 downto 0);
+
+ out_done : out std_logic
+ );
+ end component;
+
+ component DataBuffer
+ port (Clk,
+ Reset_n : in std_logic;
+
+ in_request : out std_logic;
+ in_valid : in std_logic;
+ in_addr : in unsigned(19 downto 0);
+ in_data : in signed(31 downto 0);
+
+
+ out_requested : in std_logic;
+ out_valid : out std_logic;
+ out_addr : in unsigned(19 downto 0);
+ out_data : out signed(31 downto 0)
+ );
+ end component;
+
+ constant LG_MAX_SIZE : natural := 10;
+ constant MEM_ADDR_WIDTH : natural := 20;
+-------------------------------------------------------------------------------
+-- Buffer's signals
+-------------------------------------------------------------------------------
+ signal in_DtBuf_request : std_logic;
+ signal in_DtBuf_valid : std_logic;
+ signal in_DtBuf_addr : unsigned(MEM_ADDR_WIDTH-1 downto 0);
+ signal in_DtBuf_data : signed(31 downto 0);
+
+ signal out_DtBuf_request : std_logic;
+ signal out_DtBuf_valid : std_logic;
+ signal out_DtBuf_addr : unsigned(MEM_ADDR_WIDTH-1 downto 0);
+ signal out_DtBuf_data : signed(31 downto 0);
+
+-------------------------------------------------------------------------------
+-- ReconFrames' signals
+-------------------------------------------------------------------------------
+ signal out_rf_request : std_logic;
+ signal out_rf_valid : std_logic := '0';
+ signal out_rf_data : signed(31 downto 0);
+
+ signal in_rf_DtBuf_request : std_logic;
+ signal in_rf_DtBuf_valid : std_logic;
+ signal in_rf_DtBuf_addr : unsigned(MEM_ADDR_WIDTH-1 downto 0);
+ signal in_rf_DtBuf_data : signed(31 downto 0);
+
+ signal out_rf_DtBuf_request : std_logic;
+ signal out_rf_DtBuf_valid : std_logic;
+ signal out_rf_DtBuf_addr : unsigned(MEM_ADDR_WIDTH-1 downto 0);
+ signal out_rf_DtBuf_data : signed(31 downto 0);
+
+ signal rf_done : std_logic;
+ signal rf_eb_done : std_logic;
+ signal rf_enable : std_logic;
+
+-------------------------------------------------------------------------------
+-- CopyRecon's signals
+-------------------------------------------------------------------------------
+ signal out_cr_request : std_logic;
+ signal out_cr_valid : std_logic := '0';
+ signal out_cr_data : signed(31 downto 0);
+
+ signal in_cr_DtBuf_request : std_logic;
+ signal in_cr_DtBuf_valid : std_logic;
+ signal in_cr_DtBuf_addr : unsigned(MEM_ADDR_WIDTH-1 downto 0);
+ signal in_cr_DtBuf_data : signed(31 downto 0);
+
+ signal out_cr_DtBuf_request : std_logic;
+ signal out_cr_DtBuf_valid : std_logic;
+ signal out_cr_DtBuf_addr : unsigned(MEM_ADDR_WIDTH-1 downto 0);
+ signal out_cr_DtBuf_data : signed(31 downto 0);
+
+ signal cr_done : std_logic;
+ signal cr_enable : std_logic;
+
+-------------------------------------------------------------------------------
+-- LoopFilter's signals
+-------------------------------------------------------------------------------
+ signal out_lf_request : std_logic;
+ signal out_lf_valid : std_logic := '0';
+ signal out_lf_data : signed(31 downto 0);
+
+ signal in_lf_DtBuf_request : std_logic;
+ signal in_lf_DtBuf_valid : std_logic;
+ signal in_lf_DtBuf_addr : unsigned(MEM_ADDR_WIDTH-1 downto 0);
+ signal in_lf_DtBuf_data : signed(31 downto 0);
+
+ signal out_lf_DtBuf_request : std_logic;
+ signal out_lf_DtBuf_valid : std_logic;
+ signal out_lf_DtBuf_addr : unsigned(MEM_ADDR_WIDTH-1 downto 0);
+ signal out_lf_DtBuf_data : signed(31 downto 0);
+
+ signal lf_done : std_logic;
+ signal lf_enable : std_logic;
+
+-------------------------------------------------------------------------------
+-- UpdateUMV's signals
+-------------------------------------------------------------------------------
+ signal out_uu_request : std_logic;
+ signal out_uu_valid : std_logic := '0';
+ signal out_uu_data : signed(31 downto 0);
+
+ signal in_uu_DtBuf_request : std_logic;
+ signal in_uu_DtBuf_valid : std_logic;
+ signal in_uu_DtBuf_addr : unsigned(MEM_ADDR_WIDTH-1 downto 0);
+ signal in_uu_DtBuf_data : signed(31 downto 0);
+
+ signal out_uu_DtBuf_request : std_logic;
+ signal out_uu_DtBuf_valid : std_logic;
+ signal out_uu_DtBuf_addr : unsigned(MEM_ADDR_WIDTH-1 downto 0);
+ signal out_uu_DtBuf_data : signed(31 downto 0);
+
+ signal uu_done : std_logic;
+ signal uu_enable : std_logic;
+
+-------------------------------------------------------------------------------
+ signal in_rr_DtBuf_request : std_logic;
+ signal in_rr_DtBuf_valid : std_logic;
+ signal in_rr_DtBuf_addr : unsigned(MEM_ADDR_WIDTH-1 downto 0);
+
+ signal out_rr_DtBuf_request : std_logic;
+ signal out_rr_DtBuf_valid : std_logic;
+ signal out_rr_DtBuf_addr : unsigned(MEM_ADDR_WIDTH-1 downto 0);
+ signal out_rr_DtBuf_data : signed(31 downto 0);
+
+
+ signal FrameSize : unsigned(MEM_ADDR_WIDTH-1 downto 0);
+ signal GoldenFrameOfs : unsigned(MEM_ADDR_WIDTH-1 downto 0);
+ signal ThisFrameReconOfs : unsigned(MEM_ADDR_WIDTH-1 downto 0);
+ signal LastFrameReconOfs : unsigned(MEM_ADDR_WIDTH-1 downto 0);
+
+ signal FrameOfsAux : unsigned(MEM_ADDR_WIDTH-1 downto 0);
+ signal FrameOfsAuxSrc : unsigned(MEM_ADDR_WIDTH-1 downto 0);
+
+ signal FrameType : unsigned(7 downto 0);
+ signal MaxDPFCount : unsigned(LG_MAX_SIZE*2 downto 0);
+
+ signal s_in_request : std_logic;
+ signal s_in_valid : std_logic;
+
+ signal CountCopies : std_logic;
+ signal CountUpdates : std_logic;
+ signal count : integer range 0 to 2097151;
+
+ constant KEY_FRAME : unsigned(7 downto 0) := "00000000";
+
+ type state_t is (stt_CleanBuffer,
+ stt_Forward, stt_ReconFrames,
+ stt_CopyRecon, stt_LoopFilter,
+ stt_UpdateUMV, stt_WriteOut);
+ signal state : state_t;
+
+
+ type forward_state_t is (stt_rec_framesize,
+ stt_forward_uniq_common,
+ stt_forward_uniq_cr_lf,
+ stt_forward_uniq_lf,
+ stt_forward_uniq_uu,
+ stt_forward_uniqperframe_rf,
+ stt_frametype,
+ stt_forward_golden_ofs_rf,
+ stt_forward_last_ofs_rf,
+ stt_forward_this_ofs_rf,
+ stt_forward_rf,
+ stt_forward_dispfrag,
+ stt_forward_source_ofs_cr,
+ stt_forward_dest_ofs_cr,
+ stt_forward_lf,
+ stt_forward_offset_lf,
+ stt_forward_offset_uu,
+ stt_forward_dispfrag_golden,
+ stt_forward_none);
+ signal forward_state : forward_state_t;
+
+ type write_state_t is (stt_write1, stt_write2, stt_write3);
+ signal write_state : write_state_t;
+
+ signal s_out_valid : std_logic;
+ signal s_out_data : signed(31 downto 0);
+
+
+begin -- a_ReconRefFrames
+
+ reconframes0: reconframes
+ port map(clk, Reset_n, rf_enable,
+ out_rf_request, out_rf_valid, out_rf_data,
+ out_rf_DtBuf_request, out_rf_DtBuf_valid, out_rf_DtBuf_addr, out_rf_DtBuf_data,
+ in_rf_DtBuf_request, in_rf_DtBuf_valid, in_rf_DtBuf_addr, in_rf_DtBuf_data,
+ rf_done, rf_eb_done);
+
+ loopfilter0: loopfilter
+ port map(clk, Reset_n, rf_enable,
+ out_lf_request, out_lf_valid, out_lf_data,
+ out_lf_DtBuf_request, out_lf_DtBuf_valid, out_lf_DtBuf_addr, out_lf_DtBuf_data,
+ in_lf_DtBuf_request, in_lf_DtBuf_valid, in_lf_DtBuf_addr, in_lf_DtBuf_data,
+ lf_done);
+
+ copyrecon0: copyrecon
+ port map(clk, Reset_n, cr_enable,
+ out_cr_request, out_cr_valid, out_cr_data,
+ out_cr_DtBuf_request, out_cr_DtBuf_valid, out_cr_DtBuf_addr, out_cr_DtBuf_data,
+ in_cr_DtBuf_request, in_cr_DtBuf_valid, in_cr_DtBuf_addr, in_cr_DtBuf_data,
+ cr_done);
+
+ updateumv0: UpdateUMV
+ port map(clk, Reset_n, uu_enable,
+ out_uu_request, out_uu_valid, out_uu_data,
+ out_uu_DtBuf_request, out_uu_DtBuf_valid, out_uu_DtBuf_addr, out_uu_DtBuf_data,
+ in_uu_DtBuf_request, in_uu_DtBuf_valid, in_uu_DtBuf_addr, in_uu_DtBuf_data,
+ uu_done);
+
+ databuffer0: databuffer
+ port map(clk, Reset_n,
+ out_DtBuf_request, out_DtBuf_valid, out_DtBuf_addr, out_DtBuf_data,
+ in_DtBuf_request, in_DtBuf_valid, in_DtBuf_addr, in_DtBuf_data);
+
+
+ out_valid <= s_out_valid;
+ -----------------------------------------------------------------------------
+ -- Switch the in_request
+ -----------------------------------------------------------------------------
+ -- If forward_state is a state that doesn't need external data then
+ -- in_request will be turned off
+ with forward_state select in_request <=
+ '0' when stt_forward_golden_ofs_rf,
+ '0' when stt_forward_last_ofs_rf,
+ '0' when stt_forward_this_ofs_rf,
+ '0' when stt_forward_source_ofs_cr,
+ '0' when stt_forward_dest_ofs_cr,
+ '0' when stt_forward_offset_lf,
+ '0' when stt_forward_offset_uu,
+ '0' when stt_forward_dispfrag_golden,
+ '0' when stt_forward_none,
+ s_in_request when others;
+
+ -----------------------------------------------------------------------------
+ -- Switch the signals of the in_data and in_valid of the modules
+ -----------------------------------------------------------------------------
+ process (Reset_n,
+ forward_state,
+ out_rf_request,
+ out_cr_request,
+ out_lf_request,
+ out_uu_request,
+ in_valid,
+ in_data,
+ GoldenFrameOfs,
+ LastFrameReconOfs,
+ ThisFrameReconOfs,
+ FrameOfsAuxSrc,
+ FrameOfsAux)
+
+ begin
+
+ out_rf_valid <= '0';
+ out_rf_data <= in_data;
+ out_cr_valid <= '0';
+ out_cr_data <= in_data;
+ out_lf_valid <= '0';
+ out_lf_data <= in_data;
+ out_uu_valid <= '0';
+ out_uu_data <= in_data;
+
+ s_in_valid <= in_valid;
+ s_in_request <= '0';
+
+ -----------------------------------------------------------------------------
+ -- Unique Parameters
+ -----------------------------------------------------------------------------
+ if (forward_state = stt_rec_framesize) then
+ s_in_request <= '1';
+
+ elsif (forward_state = stt_forward_uniq_common) then
+ s_in_request <= out_rf_request and
+ out_cr_request and
+ out_lf_request and
+ out_uu_request;
+ out_rf_valid <= in_valid;
+ out_cr_valid <= in_valid;
+ out_lf_valid <= in_valid;
+ out_uu_valid <= in_valid;
+
+ elsif (forward_state = stt_forward_uniq_cr_lf) then
+ -------------------------------------------------------------------------
+ -- UnitFragment is sent to CopyRecon and LoopFilter and read internaly
+ -------------------------------------------------------------------------
+ s_in_request <= out_cr_request and
+ out_lf_request;
+
+ out_cr_valid <= in_valid;
+ out_lf_valid <= in_valid;
+
+ elsif (forward_state = stt_forward_uniq_lf) then
+ s_in_request <= out_lf_request;
+ out_lf_valid <= in_valid;
+
+ elsif (forward_state = stt_forward_uniq_uu) then
+ s_in_request <= out_uu_request;
+ out_uu_valid <= in_valid;
+
+
+ -----------------------------------------------------------------------
+ -- ReconFrames Parameters
+ ---------------------------------------------------------------------------
+ elsif (forward_state = stt_forward_uniqperframe_rf) then
+ s_in_request <= out_rf_request;
+ out_rf_valid <= in_valid;
+
+ elsif (forward_state = stt_frametype) then
+ -------------------------------------------------------------------------
+ -- FrameType is sent to ReconFrames and read internaly
+ -------------------------------------------------------------------------
+ s_in_request <= out_rf_request;
+ out_rf_valid <= in_valid;
+
+ elsif (forward_state = stt_forward_golden_ofs_rf) then
+ s_in_request <= out_rf_request;
+ s_in_valid <= '1';
+ out_rf_valid <= '1';
+ out_rf_data <= resize('0' & signed(GoldenFrameOfs), 32);
+
+ elsif (forward_state = stt_forward_last_ofs_rf) then
+ s_in_request <= out_rf_request;
+ s_in_valid <= '1';
+ out_rf_valid <= '1';
+ out_rf_data <= resize('0' & signed(LastFrameReconOfs), 32);
+
+ elsif (forward_state = stt_forward_this_ofs_rf) then
+ s_in_request <= out_rf_request;
+ s_in_valid <= '1';
+ out_rf_valid <= '1';
+ out_rf_data <= resize('0' & signed(ThisFrameReconOfs), 32);
+
+ elsif (forward_state = stt_forward_rf) then
+ s_in_request <= out_rf_request;
+ out_rf_valid <= in_valid;
+
+ elsif (forward_state = stt_forward_dispfrag) then
+ s_in_request <= out_cr_request and
+ out_lf_request;
+ out_cr_valid <= '0';
+ out_lf_valid <= '0';
+ if ((out_cr_request and out_lf_request)= '1') then
+ out_cr_valid <= in_valid;
+ out_lf_valid <= in_valid;
+ else
+ assert false report "Somebody doesn't want read" severity note;
+ end if;
+
+ elsif (forward_state = stt_forward_source_ofs_cr) then
+ s_in_request <= out_cr_request;
+ s_in_valid <= '1';
+ out_cr_valid <= '1';
+ out_cr_data <= resize('0' & signed(FrameOfsAuxSrc), 32);
+
+ elsif (forward_state = stt_forward_dest_ofs_cr) then
+ s_in_request <= out_cr_request;
+ s_in_valid <= '1';
+ out_cr_valid <= '1';
+ out_cr_data <= resize('0' & signed(FrameOfsAux), 32);
+
+ elsif (forward_state = stt_forward_lf) then
+ s_in_request <= out_lf_request;
+ out_lf_valid <= in_valid;
+
+ elsif (forward_state = stt_forward_offset_lf) then
+ s_in_request <= out_lf_request;
+ s_in_valid <= '1';
+ out_lf_valid <= '1';
+ out_lf_data <= resize('0' & signed(LastFrameReconOfs), 32);
+
+ elsif (forward_state = stt_forward_offset_uu) then
+ s_in_request <= out_uu_request;
+ s_in_valid <= '1';
+ out_uu_valid <= '1';
+ out_uu_data <= resize('0' & signed(FrameOfsAux), 32);
+
+ elsif (forward_state = stt_forward_dispfrag_golden) then
+ -------------------------------------------------------------------------
+ -- If it is a key frame then all fragments must be displayed.
+ -- In such case all values of display_fragments is one
+ -------------------------------------------------------------------------
+ s_in_request <= out_cr_request;
+ s_in_valid <= '1';
+ out_cr_valid <= '1';
+ out_cr_data <= x"FFFFFFFF";
+ else
+ null;
+ end if;
+ if (Reset_n = '0') then
+ out_rf_valid <= '0';
+ out_cr_valid <= '0';
+ out_lf_valid <= '0';
+ out_uu_valid <= '0';
+ s_in_request <= '0';
+ end if;
+ end process;
+
+ -----------------------------------------------------------------------------
+ -- Control the module's access to the Data Buffer
+ -- This is just a big multiplexer
+ -----------------------------------------------------------------------------
+ process (Reset_n,
+ state,
+ in_DtBuf_valid,
+ in_DtBuf_data,
+ out_DtBuf_request,
+
+ out_rf_DtBuf_request,
+ out_rf_DtBuf_addr,
+ in_rf_DtBuf_valid,
+ in_rf_DtBuf_addr,
+ in_rf_DtBuf_data,
+
+ out_cr_DtBuf_request,
+ out_cr_DtBuf_addr,
+ in_cr_DtBuf_valid,
+ in_cr_DtBuf_addr,
+ in_cr_DtBuf_data,
+
+ out_lf_DtBuf_request,
+ out_lf_DtBuf_addr,
+ in_lf_DtBuf_valid,
+ in_lf_DtBuf_addr,
+ in_lf_DtBuf_data,
+
+ out_uu_DtBuf_request,
+ out_uu_DtBuf_addr,
+ in_uu_DtBuf_valid,
+ in_uu_DtBuf_addr,
+ in_uu_DtBuf_data,
+
+ out_rr_DtBuf_request,
+ out_rr_DtBuf_addr,
+ in_rr_DtBuf_valid,
+ in_rr_DtBuf_addr
+ )
+ begin -- process state
+ out_rr_DtBuf_data <= x"00000000";
+ out_rr_DtBuf_valid <= '0';
+
+ out_cr_DtBuf_data <= x"00000000";
+ out_cr_DtBuf_valid <= '0';
+
+ out_lf_DtBuf_data <= x"00000000";
+ out_lf_DtBuf_valid <= '0';
+
+ out_rf_DtBuf_data <= x"00000000";
+ out_rf_DtBuf_valid <= '0';
+
+ out_uu_DtBuf_data <= x"00000000";
+ out_uu_DtBuf_valid <= '0';
+
+ in_uu_DtBuf_request <= '0';
+ in_cr_DtBuf_request <= '0';
+ in_lf_DtBuf_request <= '0';
+ in_rf_DtBuf_request <= '0';
+ in_rr_DtBuf_request <= '0';
+
+ if (state = stt_ReconFrames) then
+ in_DtBuf_request <= out_rf_DtBuf_request;
+ out_rf_DtBuf_valid <= in_DtBuf_valid;
+ in_DtBuf_addr <= out_rf_DtBuf_addr;
+ out_rf_DtBuf_data <= in_DtBuf_data;
+
+ in_rf_DtBuf_request <= out_DtBuf_request;
+ out_DtBuf_valid <= in_rf_DtBuf_valid;
+ out_DtBuf_addr <= in_rf_DtBuf_addr;
+ out_DtBuf_data <= in_rf_DtBuf_data;
+
+ elsif (state = stt_CopyRecon) then
+ in_DtBuf_request <= out_cr_DtBuf_request;
+ out_cr_DtBuf_valid <= in_DtBuf_valid;
+ in_DtBuf_addr <= out_cr_DtBuf_addr;
+ out_cr_DtBuf_data <= in_DtBuf_data;
+
+ in_cr_DtBuf_request <= out_DtBuf_request;
+ out_DtBuf_valid <= in_cr_DtBuf_valid;
+ out_DtBuf_addr <= in_cr_DtBuf_addr;
+ out_DtBuf_data <= in_cr_DtBuf_data;
+
+ elsif (state = stt_LoopFilter) then
+ in_DtBuf_request <= out_lf_DtBuf_request;
+ out_lf_DtBuf_valid <= in_DtBuf_valid;
+ in_DtBuf_addr <= out_lf_DtBuf_addr;
+ out_lf_DtBuf_data <= in_DtBuf_data;
+
+ in_lf_DtBuf_request <= out_DtBuf_request;
+ out_DtBuf_valid <= in_lf_DtBuf_valid;
+ out_DtBuf_addr <= in_lf_DtBuf_addr;
+ out_DtBuf_data <= in_lf_DtBuf_data;
+
+ elsif (state = stt_UpdateUMV) then
+ in_DtBuf_request <= out_uu_DtBuf_request;
+ out_uu_DtBuf_valid <= in_DtBuf_valid;
+ in_DtBuf_addr <= out_uu_DtBuf_addr;
+ out_uu_DtBuf_data <= in_DtBuf_data;
+
+ in_uu_DtBuf_request <= out_DtBuf_request;
+ out_DtBuf_valid <= in_uu_DtBuf_valid;
+ out_DtBuf_addr <= in_uu_DtBuf_addr;
+ out_DtBuf_data <= in_uu_DtBuf_data;
+
+ elsif (state = stt_CleanBuffer) then
+
+ in_DtBuf_request <= out_rr_DtBuf_request;
+ out_rr_DtBuf_valid <= in_DtBuf_valid;
+ in_DtBuf_addr <= out_rr_DtBuf_addr;
+ out_rr_DtBuf_data <= in_DtBuf_data;
+
+ in_rr_DtBuf_request <= out_DtBuf_request;
+ out_DtBuf_valid <= in_rr_DtBuf_valid;
+ out_DtBuf_addr <= in_rr_DtBuf_addr;
+ out_DtBuf_data <= x"00000000";
+
+ else
+ in_DtBuf_request <= out_rr_DtBuf_request;
+ out_rr_DtBuf_valid <= in_DtBuf_valid;
+ in_DtBuf_addr <= out_rr_DtBuf_addr;
+ out_rr_DtBuf_data <= in_DtBuf_data;
+
+ out_DtBuf_valid <= '0';
+ out_DtBuf_addr <= x"00000";
+ out_DtBuf_data <= x"00000000";
+ in_rr_DtBuf_request <= '0';
+
+ end if;
+
+ if (Reset_n = '0') then
+ out_rr_DtBuf_data <= x"00000000";
+ out_rr_DtBuf_valid <= '0';
+
+ out_cr_DtBuf_data <= x"00000000";
+ out_cr_DtBuf_valid <= '0';
+
+ out_lf_DtBuf_data <= x"00000000";
+ out_lf_DtBuf_valid <= '0';
+
+ out_rf_DtBuf_data <= x"00000000";
+ out_rf_DtBuf_valid <= '0';
+
+ out_uu_DtBuf_data <= x"00000000";
+ out_uu_DtBuf_valid <= '0';
+
+ in_uu_DtBuf_request <= '0';
+ in_cr_DtBuf_request <= '0';
+ in_lf_DtBuf_request <= '0';
+ in_rf_DtBuf_request <= '0';
+ in_rr_DtBuf_request <= '0';
+ end if;
+ end process;
+
+
+ process(clk)
+
+ ---------------------------------------------------------------------------
+ -- Procedure that write zero in all positions of Data Buffer
+ ---------------------------------------------------------------------------
+ procedure CleanBuffer is
+ begin
+ in_rr_DtBuf_valid <= '1';
+ if (count = 0) then
+ in_rr_DtBuf_addr <= x"00000";
+ else
+ in_rr_DtBuf_addr <= in_rr_DtBuf_addr + 1;
+ end if;
+
+ if (in_rr_DtBuf_request = '1') then
+ count <= count + 1;
+ end if;
+
+ if (count = SHIFT_RIGHT(3*FrameSize,2)) then
+ state <= stt_Forward;
+ forward_state <= stt_forward_uniq_common;
+ in_rr_DtBuf_addr <= x"00000";
+ count <= 0;
+ in_rr_DtBuf_valid <= '0';
+ end if;
+
+ end CleanBuffer;
+
+
+-------------------------------------------------------------------------------
+-- Change the states syncronously
+-------------------------------------------------------------------------------
+ procedure ForwardControl is
+ begin
+ if (s_in_request = '1' and s_in_valid = '1') then
+-- assert false report "forward_state = "&forward_state_t'image(forward_state) severity note;
+ count <= 0;
+
+ if (forward_state = stt_rec_framesize) then
+ -- The first parameter is FrameType
+ FrameSize <= unsigned(in_data(MEM_ADDR_WIDTH-1 downto 0));
+
+ -- This is a hack. On FPGA when reset the module I don't know explain
+ -- why reads the first value as zero.
+ -- Here we are ignoring this zero value. So the first valid value is
+ -- the second one that the module reads. The problem happens on an
+ -- Altera Stratix II.
+ if (count = 0) then
+ count <= 1;
+ else
+ count <= 0;
+ forward_state <= stt_forward_none;
+ state <= stt_CleanBuffer;
+ end if;
+
+
+ elsif (forward_state = stt_forward_uniq_common) then
+ -- Define the offsets
+ GoldenFrameOfs <= x"00000";
+ LastFrameReconOfs <= FrameSize;
+ ThisFrameReconOfs <= SHIFT_LEFT(FrameSize, 1);
+
+
+ ---------------------------------------------------------------------
+ -- Forward and read the unique values common for all modules
+ ---------------------------------------------------------------------
+ -- if count = 0 then and forward the pbi->HFragments value
+ ---------------------------------------------------------------------
+ -- if count = 1 then read and forward the pbi->YPlaneFragments value
+ ---------------------------------------------------------------------
+ -- if count = 2 then read and forward the pbi->YStride value
+ ---------------------------------------------------------------------
+ -- if count = 3 then read and forward the pbi->UVPlaneFragments value
+ ---------------------------------------------------------------------
+ -- if count = 4 then read and forward the pbi->UVStride value
+ ---------------------------------------------------------------------
+ -- if count = 5 then read and forward the pbi->VFragments value
+ ---------------------------------------------------------------------
+ -- if count = 6 then read and forward the pbi->ReconYDataOffset value
+ ---------------------------------------------------------------------
+ -- if count = 7 then read and forward the pbi->ReconUDataOffset value
+ ---------------------------------------------------------------------
+ -- if count = 8 then read and forward the pbi->ReconVDataOffset value
+ ---------------------------------------------------------------------
+ count <= count + 1;
+ if (count = 8) then
+ forward_state <= stt_forward_uniq_cr_lf;
+ count <= 0;
+ end if;
+
+ elsif (forward_state = stt_forward_uniq_cr_lf) then
+ -- Forward the pbi->UnitFragments value to CopyRecon and LoopFilter
+ forward_state <= stt_forward_uniq_lf;
+
+ -- Verify if the pbi-UnitFragments value is some multiple of 32
+ -- because the matrix pbi->display_fragments is package
+ MaxDPFCount <= SHIFT_RIGHT(
+ unsigned(in_data(LG_MAX_SIZE*2 downto 0)), 5) + 1;
+ if (in_data(4 downto 0) = "00000") then
+ MaxDPFCount <= SHIFT_RIGHT(
+ unsigned(in_data(LG_MAX_SIZE*2 downto 0)), 5);
+ end if;
+
+
+ elsif (forward_state = stt_forward_uniq_lf) then
+ ---------------------------------------------------------------------
+ -- Forward the Matrices pbi->QThreshTable and pbi->LoopFilterLimits
+ -- to LoopFilter module
+ ---------------------------------------------------------------------
+ -- For Count = 0 to Count = 63 forward pbi->QThreshTable
+ ---------------------------------------------------------------------
+ -- For Count = 64 to Count = 79 forward pbi->LoopFilterLimits
+ ---------------------------------------------------------------------
+ count <= count + 1;
+ if (count = 79) then
+ forward_state <= stt_forward_uniq_uu;
+ count <= 0;
+ end if;
+
+ elsif (forward_state = stt_forward_uniq_uu) then
+ -- Forward the pbi->info.height value to UpdateUMV module
+ forward_state <= stt_forward_uniqperframe_rf;
+
+ elsif (forward_state = stt_forward_uniqperframe_rf) then
+ ---------------------------------------------------------------------
+ -- If Count = 0 forward to ReconFrame the QuantDispFrags that is
+ -- equal to pbi->CodedBlockIndex of the software
+ ---------------------------------------------------------------------
+ -- For Count = 1 to Count = 64 forward the
+ -- pbi->dequant_Y_coeffs matrix to ReconFrames
+ -----------------------------------------------------------
+ -- For Count = 65 to Count = 128 forward the
+ -- pbi->dequant_U_coeffs matrix to ReconFrames
+ -----------------------------------------------------------
+ -- For Count = 129 to Count = 192 forward the
+ -- pbi->dequant_V_coeffs matrix to ReconFrames
+ -----------------------------------------------------------
+ -- For Count = 193 to Count = 256 forward the
+ -- dequant_InterY_coeffs matrix to ReconFrames
+ -----------------------------------------------------------
+ -- For Count = 257 to Count = 320 forward the
+ -- dequant_InterU_coeffs matrix to ReconFrames
+ -----------------------------------------------------------
+ -- For Count = 321 to Count = 384 forward the
+ -- dequant_InterV_coeffs matrix to ReconFrames
+ count <= count + 1;
+ if (count = 384) then
+ forward_state <= stt_frametype;
+ count <= 0;
+ end if;
+
+ elsif (forward_state = stt_frametype) then
+ -- Forward and read the pbi->FrameType
+ forward_state <= stt_forward_golden_ofs_rf;
+ FrameType <= unsigned(in_data(7 downto 0));
+
+ -----------------------------------------------------------------------
+ -- The three states below is used to forward the three Data Buffer's
+ -- offsets to the modules that need these informations
+ -- The hardware is responsible for the offsets.
+ -----------------------------------------------------------------------
+ elsif (forward_state = stt_forward_golden_ofs_rf) then
+ forward_state <= stt_forward_last_ofs_rf;
+
+ elsif (forward_state = stt_forward_last_ofs_rf) then
+ forward_state <= stt_forward_this_ofs_rf;
+
+ elsif (forward_state = stt_forward_this_ofs_rf) then
+ forward_state <= stt_forward_rf;
+
+ elsif (forward_state = stt_forward_rf) then
+ -----------------------------------------------------------
+ -- Forward to ReconFrames the parameters below that are
+ -- sent for all fragments
+ -----------------------------------------------------------
+ -- For Count = 0 to Count = 63 forward the
+ -- pbi->QFragData(number of the fragment to be expanded)
+ -- matrix
+ ------------------------------------------------------------
+ -- If Count = 64 forward the
+ -- pbi->FragCodingMethod(number of the fragment to be expanded)
+ -- value
+ -----------------------------------------------------------
+ -- If Count = 65 forward the
+ -- pbi->FragCoefEOB(number of the fragment to be expanded)
+ -- value
+ -----------------------------------------------------------
+ -- If Count = 66 forward the
+ -- (pbi->FragMVect(number of the fragment to be expanded)).x
+ -- value
+ -----------------------------------------------------------
+ -- If Count = 67 forward the
+ -- (pbi->FragMVect(number of the fragment to be expanded)).y
+ -- value
+ -----------------------------------------------------------
+ -- If Count = 68 forward the
+ -- (number of fragment to be expanded)
+ -----------------------------------------------------------
+ count <= count + 1;
+ if (count = 68) then
+ forward_state <= stt_forward_none;
+ state <= stt_ReconFrames;
+ count <= 0;
+ end if;
+
+ elsif (forward_state = stt_forward_dispfrag or
+ forward_state = stt_forward_dispfrag_golden) then
+-- assert false report "forward_state = "&forward_state_t'image(forward_state) severity note;
+-- assert false report "Count = "&integer'image(count) severity note;
+-- assert false report "MaxDPFCount = "&integer'image(to_integer(MaxDPFCount)) severity note;
+
+ count <= count + 1;
+ if (count = MaxDPFCount - 1) then
+ forward_state <= stt_forward_source_ofs_cr;
+ count <= 0;
+ end if;
+
+ elsif (forward_state = stt_forward_source_ofs_cr) then
+-- assert false report "forward_state = "&forward_state_t'image(forward_state) severity note;
+ forward_state <= stt_forward_dest_ofs_cr;
+
+ elsif (forward_state = stt_forward_dest_ofs_cr) then
+-- assert false report "forward_state = "&forward_state_t'image(forward_state) severity note;
+ forward_state <= stt_forward_none;
+ state <= stt_CopyRecon;
+
+ elsif (forward_state = stt_forward_lf) then
+ forward_state <= stt_forward_offset_lf;
+
+ elsif (forward_state = stt_forward_offset_lf) then
+ forward_state <= stt_forward_none;
+ state <= stt_LoopFilter;
+
+ elsif (forward_state = stt_forward_offset_uu) then
+ assert false report "Calling UU" severity note;
+ forward_state <= stt_forward_none;
+ state <= stt_UpdateUMV;
+ else
+ null;
+ end if;
+ end if;
+ end procedure ForwardControl;
+
+ procedure ReconFrames is
+ begin
+-- assert false report "out_rf_request = "&std_logic'image(out_rf_request) severity note;
+ if (rf_done = '1' and rf_eb_done = '1') then
+ assert false report "ReconFrames Concluido" severity note;
+ forward_state <= stt_forward_dispfrag;
+ state <= stt_Forward;
+ FrameOfsAux <= LastFrameReconOfs;
+ FrameOfsAuxSrc <= ThisFrameReconOfs;
+ elsif (rf_eb_done = '1') then
+ forward_state <= stt_forward_rf;
+ state <= stt_Forward;
+ count <= 0;
+ else
+ null;
+ end if;
+ end procedure ReconFrames;
+
+ procedure CopyRecon is
+ begin
+ if (cr_done = '1') then
+ assert false report "CopyRecon Concluido" severity note;
+
+ forward_state <= stt_forward_lf;
+ state <= stt_Forward;
+ CountCopies <= '0';
+ if (FrameType = KEY_FRAME and CountCopies = '0') then
+ CountCopies <= '1';
+ elsif (FrameType = KEY_FRAME and CountCopies = '1') then
+ forward_state <= stt_forward_offset_uu;
+ state <= stt_Forward;
+ else
+ null;
+ end if;
+ end if;
+ end procedure CopyRecon;
+
+ procedure LoopFilter is
+ begin
+ if (lf_done = '1') then
+ assert false report "LoopFilter Concluido" severity note;
+ forward_state <= stt_forward_offset_uu;
+ state <= stt_Forward;
+ end if;
+ end procedure LoopFilter;
+
+ procedure UpdateUMV is
+ begin
+ if (uu_done = '1') then
+ assert false report "UpdateUMV Concluido" severity note;
+ count <= 0;
+ state <= stt_WriteOut;
+ write_state <= stt_write1;
+ forward_state <= stt_forward_none;
+ CountUpdates <= '0';
+ if (FrameType = KEY_FRAME and CountUpdates = '0') then
+ FrameOfsAux <= GoldenFrameOfs;
+ FrameOfsAuxSrc <= LastFrameReconOfs;
+ forward_state <= stt_forward_dispfrag_golden;
+ state <= stt_Forward;
+ CountUpdates <= '1';
+ end if;
+ end if;
+ end procedure UpdateUMV;
+
+ procedure WriteOut is
+ begin
+ s_out_valid <= '0';
+ if (write_state = stt_write1) then
+ write_state <= stt_write2;
+ out_rr_DtBuf_request <= '1';
+ out_rr_DtBuf_addr <= out_rr_DtBuf_addr + 1;
+
+ count <= count + 4;
+ if (count = 0) then
+ assert false report "Writing Data" severity note;
+ out_rr_DtBuf_addr <= SHIFT_RIGHT(LastFrameReconOfs, 2);
+ else
+ if (count = FrameSize) then
+ count <= 0;
+ forward_state <= stt_forward_uniqperframe_rf;
+ state <= stt_Forward;
+ write_state <= stt_write1;
+ out_rr_DtBuf_request <= '0';
+ out_rr_DtBuf_addr <= SHIFT_RIGHT(LastFrameReconOfs, 2);
+ end if;
+ end if;
+
+ elsif (write_state = stt_write2) then
+ if (out_rr_DtBuf_valid = '1') then
+ s_out_data <= out_rr_DtBuf_data;
+ out_rr_DtBuf_request <= '0';
+ write_state <= stt_write3;
+ end if;
+ else
+ s_out_valid <= '1';
+ out_data <= s_out_data;
+ if (out_requested = '1') then
+ write_state <= stt_write1;
+ out_rr_DtBuf_request <= '0';
+ end if;
+ end if;
+ end procedure WriteOut;
+
+ begin
+ if (clk'event and clk = '1') then
+ if (Reset_n = '0') then
+ rf_enable <= '1';
+ cr_enable <= '1';
+ lf_enable <= '1';
+ uu_enable <= '1';
+
+ write_state <= stt_write1;
+ forward_state <= stt_rec_framesize;
+ state <= stt_Forward;
+
+
+ CountCopies <= '0';
+ CountUpdates <= '0';
+ count <= 0;
+ out_data <= x"00000000";
+ s_out_data <= x"00000000";
+ s_out_valid <= '0';
+
+ out_rr_DtBuf_request <= '0';
+ else
+ case state is
+ when stt_CleanBuffer => CleanBuffer;
+ when stt_Forward => ForwardControl;
+ when stt_ReconFrames => ReconFrames;
+ when stt_CopyRecon => CopyRecon;
+ when stt_LoopFilter => LoopFilter;
+ when stt_UpdateUMV => UpdateUMV;
+ when others => WriteOut;
+ end case;
+ end if;
+ end if;
+ end process;
+
+
+end a_ReconRefFrames;
Added: trunk/theora-fpga/reconrefframes/syncram.vhd
===================================================================
--- trunk/theora-fpga/reconrefframes/syncram.vhd (rev 0)
+++ trunk/theora-fpga/reconrefframes/syncram.vhd 2007-09-15 23:10:55 UTC (rev 13820)
@@ -0,0 +1,38 @@
+library IEEE;
+use IEEE.std_logic_1164.all;
+use IEEE.numeric_std.all;
+
+entity syncram is
+ generic (
+ DEPTH : positive := 64; -- How many slots
+ DATA_WIDTH : positive := 16; -- How many bits per slot
+ ADDR_WIDTH : positive := 6 -- = ceil(log2(DEPTH))
+ );
+ port (
+ clk : in std_logic;
+ wr_e : in std_logic;
+ wr_addr : in unsigned(ADDR_WIDTH-1 downto 0);
+ wr_data : in signed(DATA_WIDTH-1 downto 0);
+ rd_addr : in unsigned(ADDR_WIDTH-1 downto 0);
+ rd_data : out signed(DATA_WIDTH-1 downto 0)
+ );
+end entity syncram;
+
+architecture rtl of syncram is
+
+ type MEM_TYPE is array(0 to DEPTH-1) of
+ signed(DATA_WIDTH-1 downto 0);
+ signal memory : MEM_TYPE;
+begin
+
+ process( clk )
+ begin
+ if ( rising_edge(clk) ) then
+ if ( wr_e = '1' ) then
+ memory( to_integer(wr_addr) ) <= wr_data;
+ end if;
+ rd_data <= memory( to_integer(rd_addr) );
+ end if;
+ end process;
+
+end rtl;
Added: trunk/theora-fpga/reconrefframes/tb_reconrefframes.vhd
===================================================================
--- trunk/theora-fpga/reconrefframes/tb_reconrefframes.vhd (rev 0)
+++ trunk/theora-fpga/reconrefframes/tb_reconrefframes.vhd 2007-09-15 23:10:55 UTC (rev 13820)
@@ -0,0 +1,113 @@
+library std;
+library ieee;
+
+use ieee.std_logic_1164.all;
+--use ieee.std_logic_arith.all;
+--use ieee.std_logic_unsigned.all;
+--use ieee.std_logic_signed.all;
+use ieee.numeric_std.all;
+--use ieee.std_logic_textio.all;
+use std.textio.all;
+
+
+entity tb_ReconRefFrames is
+
+end tb_ReconRefFrames;
+
+
+architecture behavior of tb_ReconRefFrames is
+
+ constant clk_period : time := 100 ns; -- Clock period
+ constant delta : time := clk_period / 4;
+
+
+ file DataInFile : text open read_mode is "golden/in.tb"; -- Input file
+ file OutFile : text open write_mode is "OUT.DUV"; -- Output file
+-- file FullFile : text open write_mode is "quadratura.full.output"; -- Full output
+
+ signal end_of_file : boolean; -- End of File indicator
+
+ signal clk : std_logic := '0';
+ signal resetn : std_logic;
+
+ signal in_requested : std_logic;
+ signal in_valid : std_logic := '0';
+ signal in_data : signed(31 downto 0);
+
+ signal out_request : std_logic := '0';
+ signal out_valid : std_logic;
+ signal out_data : signed(31 downto 0);
+ signal count_entrada : integer := 0;
+ signal count_saida : integer := 0;
+ signal frames : integer := 0;
+ shared variable flag : std_logic := '0';
+begin -- behavior
+
+ ReconRefFrame0: entity work.reconrefframes
+ port map(clk, resetn, in_requested, in_valid, in_data,
+ out_request, out_valid, out_data);
+
+
+ clk <= not clk after clk_period / 2;
+ resetn <= '0', '1' after 7 * clk_period;
+
+
+ Input : process(clk, resetn)
+
+ variable input_line : line;
+ variable aux : integer;
+ begin -- process ReadInput
+
+ if (resetn = '0') then
+ end_of_file <= false;
+ elsif clk'EVENT and clk = '1' then
+ if ( EndFile(DataInFile) ) then
+ end_of_file <= true;
+ else
+
+ if( in_requested = '1' )then
+ flag := '0';
+-- assert frames < 2 report "2 frames: count_entrada="&integer'image(count_entrada) severity failure;
+ count_entrada <= count_entrada + 1;
+ ReadLine( DataInFile, input_line);
+ Read( input_line, aux );
+-- assert false report "testbench = "&integer'image(aux) severity note;
+ in_data <= to_signed(aux,32) after delta;
+ in_valid <= '1' after delta;
+ end if;
+ end if;
+ end if;
+
+ end process Input;
+
+
+
+ Output : process(clk, resetn)
+
+ variable output_line : line;
+ begin -- process ReadInput
+ if (resetn = '0') then
+ elsif clk'EVENT and clk = '1' then
+ out_request <= '1' after delta;
+ if( out_request = '1' and out_valid = '1' )then
+ if (flag = '0') then
+ flag := '1';
+ frames <= frames + 1;
+ end if;
+ count_saida <= count_saida + 1;
+ --Write(output_line, now, left, 15);
+ Write(output_line, to_integer(out_data));
+ WriteLine(OutFile, output_line);
+
+-- assert false report "count_entrada = "&integer'image(count_entrada) severity failure;
+ end if;
+ end if;
+
+ end process Output;
+
+
+ assert not end_of_file report "End of Simulation: THIS IS NOT AN ERROR! "&
+ "THIS IS JUST A WAY TO STOP THE SIMULATION." severity failure;
+
+
+end behavior;
More information about the commits
mailing list